#endif
#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#include <Elementary.h>
#include "elm_priv.h"
ELM_PART_OVERRIDE_TEXT_GET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_SET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
+EOLIAN static const char *
+_efl_ui_layout_part_text_efl_ui_translatable_translatable_text_get(Eo *obj, void *_pd EINA_UNUSED, const char **domain)
+{
+ Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
+ return elm_widget_part_translatable_text_get(pd->obj, pd->part, domain);
+}
+
+EOLIAN static void
+_efl_ui_layout_part_text_efl_ui_translatable_translatable_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *label, const char *domain)
+{
+ Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
+ elm_widget_part_translatable_text_set(pd->obj, pd->part, label, domain);
+}
+
/* Efl.Ui.Layout.Part_Legacy */
ELM_PART_OVERRIDE_CONTENT_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_CONTENT_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
+EOLIAN static const char *
+_efl_ui_layout_part_legacy_efl_ui_translatable_translatable_text_get(Eo *obj, void *_pd EINA_UNUSED, const char **domain)
+{
+ Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
+ return elm_widget_part_translatable_text_get(pd->obj, pd->part, domain);
+}
+
+EOLIAN static void
+_efl_ui_layout_part_legacy_efl_ui_translatable_translatable_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *label, const char *domain)
+{
+ Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
+ elm_widget_part_translatable_text_set(pd->obj, pd->part, label, domain);
+}
+
+/* Efl.Ui.Layout.Part_Xxx includes */
#include "efl_ui_layout_part.eo.c"
#include "efl_ui_layout_part_content.eo.c"
#include "efl_ui_layout_part_text.eo.c"
-class Efl.Ui.Layout.Part_Legacy (Efl.Ui.Layout.Part, Efl.Container, Efl.Text)
+class Efl.Ui.Layout.Part_Legacy (Efl.Ui.Layout.Part, Efl.Container, Efl.Text,
+ Efl.Ui.Translatable)
{
[[Elementary layout internal part class]]
data: null;
Efl.Container.content { get; set; }
Efl.Container.content_unset;
Efl.Text.text { set; get; }
+ Efl.Ui.Translatable.translatable_text { get; set; }
}
}
-class Efl.Ui.Layout.Part_Text (Efl.Ui.Layout.Part, Efl.Text)
+class Efl.Ui.Layout.Part_Text (Efl.Ui.Layout.Part, Efl.Text,
+ Efl.Ui.Translatable)
{
[[Elementary layout internal part class]]
data: null;
implements {
Efl.Text.text { set; get; }
+ Efl.Ui.Translatable.translatable_text { get; set; }
}
}
#define EFL_GFX_SIZE_HINT_PROTECTED
#define EFL_CANVAS_OBJECT_BETA
#define EFL_CANVAS_OBJECT_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#define EFL_UI_WIN_INLINED_PROTECTED
#define EFL_UI_WIN_BETA
#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
#define ELM_WIDGET_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#include <Elementary.h>
#include "elm_priv.h"
#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
-
#define ELM_WIDGET_PROTECTED
#define ELM_WIDGET_ITEM_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#include <Elementary.h>
#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
-
#define ELM_WIDGET_PROTECTED
#define ELM_WIDGET_ITEM_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
+
#include <Elementary.h>
#include "elm_priv.h"
#include "elm_hoversel.eo.h"
#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
#define ELM_WIDGET_ITEM_PROTECTED
#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#include <Elementary.h>
#include "elm_priv.h"
#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
#define ELM_WIDGET_ITEM_PROTECTED
#define ELM_WIDGET_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#include <Elementary.h>
#include "elm_priv.h"
#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
#define ELM_WIDGET_PROTECTED
#define ELM_WIDGET_ITEM_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#include <Elementary.h>
#include "elm_priv.h"
#endif
#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#include <Elementary.h>
#include "elm_priv.h"
#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
#define ELM_WIDGET_ITEM_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#include <Elementary.h>
#include "elm_priv.h"
#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
#define EFL_ACCESS_SELECTION_PROTECTED
#define ELM_WIDGET_ITEM_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#include <Elementary.h>
elm_object_domain_translatable_part_text_set(Evas_Object *obj, const char *part, const char *domain, const char *text)
{
EINA_SAFETY_ON_NULL_RETURN(obj);
- elm_widget_domain_translatable_part_text_set(obj, part, domain, text);
+ if (!part)
+ efl_ui_translatable_text_set(obj, text, domain);
+ else
+ efl_ui_translatable_text_set(efl_part(obj, part), text, domain);
}
EAPI const char *
elm_object_translatable_part_text_get(const Evas_Object *obj, const char *part)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
- return elm_widget_translatable_part_text_get(obj, part);
+ if (!part)
+ return efl_ui_translatable_text_get(obj, NULL);
+ else
+ return efl_ui_translatable_text_get(efl_part(obj, part), NULL);
}
EAPI void
#define ELM_WIDGET_PROTECTED
#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
#define EFL_ACCESS_SELECTION_PROTECTED
-
#define ELM_WIDGET_ITEM_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
+
#include <Elementary.h>
#include "elm_priv.h"
#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
#define ELM_WIDGET_ITEM_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#include <Elementary.h>
#define EFL_ACCESS_SELECTION_PROTECTED
#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
#define ELM_WIDGET_ITEM_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#include <Elementary.h>
#define ELM_WIDGET_ITEM_PROTECTED
#define EFL_CANVAS_OBJECT_BETA
#define EFL_INPUT_EVENT_PROTECTED
+#define EFL_UI_TRANSLATABLE_PROTECTED
#include <Elementary.h>
return ts;
}
-EOLIAN static void
-_elm_widget_domain_translatable_part_text_set(Eo *obj, Elm_Widget_Smart_Data *sd, const char *part, const char *domain, const char *label)
+/* internal */
+void
+elm_widget_part_translatable_text_set(Eo *obj, const char *part, const char *label, const char *domain)
{
-
Elm_Translate_String_Data *ts;
+ Elm_Widget_Smart_Data *sd;
+
+ sd = efl_data_scope_safe_get(obj, MY_CLASS);
+ if (!sd) return;
if (!label)
{
sd->on_translate = EINA_FALSE;
}
-EOLIAN static const char*
-_elm_widget_translatable_part_text_get(const Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd, const char *part)
-{
- Elm_Translate_String_Data *ts;
-
- ts = _translate_string_data_get(sd->translate_strings, part);
- if (ts) return ts->string;
- else return NULL;
-}
-
EOLIAN static void
_elm_widget_domain_part_text_translatable_set(Eo *obj, Elm_Widget_Smart_Data *sd, const char *part, const char *domain, Eina_Bool translatable)
{
sd->on_translate = EINA_FALSE;
}
-static const char*
-_part_text_translate(Eina_Inlist *translate_strings,
- const char *part,
- const char *text)
+/* internal */
+const char *
+elm_widget_part_translatable_text_get(const Eo *obj, const char *part, const char **domain)
{
+ Elm_Widget_Smart_Data *sd;
Elm_Translate_String_Data *ts;
- ts = _translate_string_data_get(translate_strings, part);
- if (!ts) return text;
- if (!ts->string) ts->string = eina_stringshare_add(text);
- else eina_stringshare_replace(&ts->string, text);
-#ifdef HAVE_GETTEXT
- if (text && text[0])
- text = dgettext(ts->domain, text);
-#endif
- return text;
-}
+ if (domain) *domain = NULL;
-EAPI const char*
-elm_widget_part_text_translate(Eo *obj, const char *part, const char *text)
-{
- Elm_Widget_Smart_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS);
+ sd = efl_data_scope_safe_get(obj, MY_CLASS);
+ if (!sd) return NULL;
+
+ ts = _translate_string_data_get(sd->translate_strings, part);
+ if (!ts) return NULL;
- if (!sd) return text;
- if (!sd->translate_strings || sd->on_translate) return text;
- return _part_text_translate(sd->translate_strings, part, text);
+ if (domain) *domain = ts->domain;
+ return ts->string;
}
EOLIAN static void
translatable: bool; [[$true if translatable, $false otherwise]]
}
}
- translatable_part_text_get @const {
- [[Get translatable part text]]
- return: string; [[Part text]]
- params {
- @in part: string; [[Part name]]
- }
- }
- @property domain_translatable_part_text {
- [[Domain translatable text part property]]
- set {
- }
- values {
- part: string; [[Part name]]
- domain: string; [[Domain name]]
- label: string; [[Label]]
- }
- }
/* Internal hooks. */
widget_sub_object_add @protected {
EAPI Eina_Bool elm_widget_access(Evas_Object *obj, Eina_Bool is_access);
EAPI Efl_Ui_Theme_Apply elm_widget_theme(Evas_Object *obj);
EAPI void elm_widget_theme_specific(Evas_Object *obj, Elm_Theme *th, Eina_Bool force);
-EAPI void efl_ui_translatable_translation_update(Evas_Object *obj);
EAPI void elm_widget_on_show_region_hook_set(Evas_Object *obj, void *data, Efl_Ui_Scrollable_On_Show_Region func, Eina_Free_Cb data_free);
EAPI Eina_Bool elm_widget_sub_object_parent_add(Evas_Object *sobj);
EAPI Eina_Bool elm_widget_sub_object_add(Evas_Object *obj, Evas_Object *sobj);
EAPI void elm_widget_activate(Evas_Object *obj, Elm_Activate act);
EAPI void elm_widget_part_text_set(Evas_Object *obj, const char *part, const char *label);
EAPI const char *elm_widget_part_text_get(const Evas_Object *obj, const char *part);
-EAPI void elm_widget_domain_translatable_part_text_set(Evas_Object *obj, const char *part, const char *domain, const char *text);
EAPI const char *elm_widget_translatable_part_text_get(const Evas_Object *obj, const char *part);
EAPI void elm_widget_domain_part_text_translatable_set(Evas_Object *obj, const char *part, const char *domain, Eina_Bool translatable);
-EAPI const char * elm_widget_part_text_translate(Evas_Object *obj, const char *part, const char *text);
EAPI void elm_widget_content_part_set(Evas_Object *obj, const char *part, Evas_Object *content);
EAPI Evas_Object *elm_widget_content_part_get(const Evas_Object *obj, const char *part);
EAPI Evas_Object *elm_widget_content_part_unset(Evas_Object *obj, const char *part);
void _elm_widget_item_highlight_in_theme(Evas_Object *obj, Elm_Object_Item *it);
EAPI void elm_widget_focus_region_show_mode_set(Evas_Object *obj, Elm_Focus_Region_Show_Mode mode);
EAPI Elm_Focus_Region_Show_Mode elm_widget_focus_region_show_mode_get(const Evas_Object *obj);
+const char *elm_widget_part_translatable_text_get(const Eo *obj, const char *part, const char **domain);
+void elm_widget_part_translatable_text_set(Eo *obj, const char *part, const char *label, const char *domain);
/* debug function. don't use it unless you are tracking parenting issues */
EAPI void elm_widget_tree_dump(const Evas_Object *top);