summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/elementary/elc_fileselector_button.c40
-rw-r--r--src/lib/elementary/elc_fileselector_button_legacy.h91
-rw-r--r--src/lib/elementary/elm_fileselector_button.eo82
3 files changed, 117 insertions, 96 deletions
diff --git a/src/lib/elementary/elc_fileselector_button.c b/src/lib/elementary/elc_fileselector_button.c
index 75cee4d1d9..3f726a70cf 100644
--- a/src/lib/elementary/elc_fileselector_button.c
+++ b/src/lib/elementary/elc_fileselector_button.c
@@ -232,32 +232,40 @@ _elm_fileselector_button_eo_base_constructor(Eo *obj, Elm_Fileselector_Button_Da
return obj;
}
-EOLIAN static void
-_elm_fileselector_button_window_title_set(Eo *obj EINA_UNUSED, Elm_Fileselector_Button_Data *sd, const char *title)
+EAPI void
+elm_fileselector_button_window_title_set(Eo *obj, const char *title)
{
+ ELM_FILESELECTOR_BUTTON_CHECK(obj);
+ ELM_FILESELECTOR_BUTTON_DATA_GET_OR_RETURN(obj, sd);
eina_stringshare_replace(&sd->window_title, title);
-
if (sd->fsw) elm_win_title_set(sd->fsw, sd->window_title);
}
-EOLIAN static const char *
-_elm_fileselector_button_window_title_get(Eo *obj EINA_UNUSED, Elm_Fileselector_Button_Data *sd)
+EAPI const char *
+elm_fileselector_button_window_title_get(const Eo *obj)
{
+ ELM_FILESELECTOR_BUTTON_CHECK(obj) NULL;
+ ELM_FILESELECTOR_BUTTON_DATA_GET_OR_RETURN_VAL(obj, sd, NULL);
return sd->window_title;
}
-EOLIAN static void
-_elm_fileselector_button_window_size_set(Eo *obj EINA_UNUSED, Elm_Fileselector_Button_Data *sd, Evas_Coord width, Evas_Coord height)
+EAPI void
+elm_fileselector_button_window_size_set(Eo *obj, Evas_Coord width, Evas_Coord height)
{
+ ELM_FILESELECTOR_BUTTON_CHECK(obj);
+ ELM_FILESELECTOR_BUTTON_DATA_GET_OR_RETURN(obj, sd);
sd->w = width;
sd->h = height;
-
if (sd->fsw) evas_object_resize(sd->fsw, sd->w, sd->h);
}
-EOLIAN static void
-_elm_fileselector_button_window_size_get(Eo *obj EINA_UNUSED, Elm_Fileselector_Button_Data *sd, Evas_Coord *width, Evas_Coord *height)
+EAPI void
+elm_fileselector_button_window_size_get(const Eo *obj, Evas_Coord *width, Evas_Coord *height)
{
+ if (width) *width = 0;
+ if (height) *height = 0;
+ ELM_FILESELECTOR_BUTTON_CHECK(obj);
+ ELM_FILESELECTOR_BUTTON_DATA_GET_OR_RETURN(obj, sd);
if (width) *width = sd->w;
if (height) *height = sd->h;
}
@@ -502,15 +510,19 @@ _elm_fileselector_button_elm_interface_fileselector_hidden_visible_get(Eo *obj E
return sd->fsd.hidden_visible;
}
-EOLIAN static void
-_elm_fileselector_button_inwin_mode_set(Eo *obj EINA_UNUSED, Elm_Fileselector_Button_Data *sd, Eina_Bool value)
+EAPI void
+elm_fileselector_button_inwin_mode_set(Eo *obj, Eina_Bool value)
{
+ ELM_FILESELECTOR_BUTTON_CHECK(obj);
+ ELM_FILESELECTOR_BUTTON_DATA_GET_OR_RETURN(obj, sd);
sd->inwin_mode = value;
}
-EOLIAN static Eina_Bool
-_elm_fileselector_button_inwin_mode_get(Eo *obj EINA_UNUSED, Elm_Fileselector_Button_Data *sd)
+EAPI Eina_Bool
+elm_fileselector_button_inwin_mode_get(const Eo *obj)
{
+ ELM_FILESELECTOR_BUTTON_CHECK(obj) EINA_FALSE;
+ ELM_FILESELECTOR_BUTTON_DATA_GET_OR_RETURN_VAL(obj, sd, EINA_FALSE);
return sd->inwin_mode;
}
diff --git a/src/lib/elementary/elc_fileselector_button_legacy.h b/src/lib/elementary/elc_fileselector_button_legacy.h
index 54c2bac92e..0b74a9117f 100644
--- a/src/lib/elementary/elc_fileselector_button_legacy.h
+++ b/src/lib/elementary/elc_fileselector_button_legacy.h
@@ -11,3 +11,94 @@
EAPI Evas_Object *elm_fileselector_button_add(Evas_Object *parent);
#include "elm_fileselector_button.eo.legacy.h"
+
+/**
+ * @brief Set whether a given file selector button widget's internal file
+ * selector will raise an Elementary "inner window", instead of a dedicated
+ * Elementary window. By default, it depends on the current profile.
+ *
+ * See @ref elm_win_inwin_add for more information on inner windows. See also
+ * @ref elm_fileselector_button_inwin_mode_get.
+ *
+ * @param[in] value true to make it use an inner window, false to make it use a
+ * dedicated window
+ *
+ * @ingroup Elm_Fileselector_Button
+ */
+EAPI void elm_fileselector_button_inwin_mode_set(Elm_Fileselector_Button *obj, Eina_Bool value);
+
+/**
+ * @brief Get whether a given file selector button widget's internal file
+ * selector will raise an Elementary "inner window", instead of a dedicated
+ * Elementary window.
+ *
+ * See also @ref elm_fileselector_button_inwin_mode_set for more details.
+ *
+ * @return true to make it use an inner window, false to make it use a
+ * dedicated window
+ *
+ * @ingroup Elm_Fileselector_Button
+ */
+EAPI Eina_Bool elm_fileselector_button_inwin_mode_get(const Elm_Fileselector_Button *obj);
+
+/**
+ * @brief Set the size of a given file selector button widget's window, holding
+ * the file selector itself.
+ *
+ * @note it will only take any effect if the file selector button widget is not
+ * under "inwin mode". The default size for the window (when applicable) is
+ * 400x400 pixels.
+ *
+ * See also @ref elm_fileselector_button_window_size_get.
+ *
+ * @param[in] width The window's width
+ * @param[in] height The window's height
+ *
+ * @ingroup Elm_Fileselector_Button
+ */
+EAPI void elm_fileselector_button_window_size_set(Elm_Fileselector_Button *obj, Evas_Coord width, Evas_Coord height);
+
+/**
+ * @brief Get the size of a given file selector button widget's window, holding
+ * the file selector itself.
+ *
+ * @note Use null pointers on the size values you're not interested in: they'll
+ * be ignored by the function.
+ *
+ * See also @ref elm_fileselector_button_window_size_set for more details.
+ *
+ * @param[out] width The window's width
+ * @param[out] height The window's height
+ *
+ * @ingroup Elm_Fileselector_Button
+ */
+EAPI void elm_fileselector_button_window_size_get(const Elm_Fileselector_Button *obj, Evas_Coord *width, Evas_Coord *height);
+
+/**
+ * @brief Set the title for a given file selector button widget's window
+ *
+ * This will change the popup window's title, when the file selector pops out
+ * after a click on the button. Those windows have the default (unlocalized)
+ * value of "Select a file" as titles.
+ *
+ * @note It will only take effect if the file selector button widget is not
+ * under "inwin mode".
+ *
+ * See also @ref elm_fileselector_button_window_title_get.
+ *
+ * @param[in] title The title string.
+ *
+ * @ingroup Elm_Fileselector_Button
+ */
+EAPI void elm_fileselector_button_window_title_set(Elm_Fileselector_Button *obj, const char *title);
+
+/**
+ * @brief Get the title for a given file selector button widget's window
+ *
+ * See also @ref elm_fileselector_button_window_title_set for more details.
+ *
+ * @return The title string.
+ *
+ * @ingroup Elm_Fileselector_Button
+ */
+EAPI const char *elm_fileselector_button_window_title_get(const Elm_Fileselector_Button *obj);
diff --git a/src/lib/elementary/elm_fileselector_button.eo b/src/lib/elementary/elm_fileselector_button.eo
index a025ee2a5e..dc81ec0696 100644
--- a/src/lib/elementary/elm_fileselector_button.eo
+++ b/src/lib/elementary/elm_fileselector_button.eo
@@ -1,88 +1,6 @@
class Elm.Fileselector_Button (Elm.Button, Elm.Interface.Fileselector)
{
- legacy_prefix: elm_fileselector_button;
- eo_prefix: elm_obj_fileselector_button;
event_prefix: elm_fileselector_button;
- methods {
- @property inwin_mode {
- set {
- [[Set whether a given file selector button widget's internal file
- selector will raise an Elementary "inner window", instead of a
- dedicated Elementary window. By default, it depends on the
- current profile.
-
- See \@ref elm_win_inwin_add for more information on inner windows.
- See also @.inwin_mode.get.
- ]]
- }
- get {
- [[Get whether a given file selector button widget's internal file
- selector will raise an Elementary "inner window", instead of a
- dedicated Elementary window.
-
- See also @.inwin_mode.set for more details.
- ]]
- }
- values {
- value: bool; [[true to make it use an inner window, false to make
- it use a dedicated window]]
- }
- }
- @property window_size {
- set {
- [[Set the size of a given file selector button widget's window,
- holding the file selector itself.
-
- Note: it will only take any effect if the file selector button
- widget is not under "inwin mode". The default size for the
- window (when applicable) is 400x400 pixels.
-
- See also @.window_size.get.
- ]]
- }
- get {
- [[Get the size of a given file selector button widget's window,
- holding the file selector itself.
-
- Note: Use null pointers on the size values you're not
- interested in: they'll be ignored by the function.
-
- See also @.window_size.set for more
- details.
- ]]
- }
- values {
- width: Evas.Coord; [[The window's width]]
- height: Evas.Coord; [[The window's height]]
- }
- }
- @property window_title {
- set {
- [[Set the title for a given file selector button widget's window
-
- This will change the popup window's title, when the file selector
- pops out after a click on the button. Those windows have the
- default (unlocalized) value of "Select a file" as titles.
-
- Note: It will only take effect if the file selector
- button widget is not under "inwin mode".
-
- See also @.window_title.get.
- ]]
- }
- get {
- [[Get the title for a given file selector button widget's
- window
-
- See also @.window_title.set for more
- details.
- ]]
- }
- values {
- title: const(char)*; [[The title string.]]
- }
- }
- }
implements {
Eo.Base.constructor;
Evas.Object.Smart.add;