evas_object_show(bx);
en = elm_entry_add(win);
- elm_entry_line_wrap_set(en, 0);
+ elm_entry_line_wrap_set(en, ELM_WRAP_NONE);
snprintf(buf, sizeof(buf),
"This is an entry widget in this window that<br>"
"uses markup <b>like this</> for styling and<br>"
evas_object_show(en);
en = elm_entry_add(win);
- elm_entry_line_wrap_set(en, 0);
+ elm_entry_line_wrap_set(en, ELM_WRAP_NONE);
elm_entry_entry_set(en,
"This is an entry widget<br>"
"that uses markup<br>"
evas_object_show(bx);
en = elm_scrolled_entry_add(win);
- elm_scrolled_entry_line_char_wrap_set(en, 1);
+ elm_scrolled_entry_line_wrap_set(en, ELM_WRAP_CHAR);
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_scrolled_entry_entry_set(en,
} Elm_Text_Format;
/**
+ * Line wrapping types.
+ */
+ typedef enum _Elm_Wrap_Type
+ {
+ ELM_WRAP_NONE = 0, /**< No wrap - value is zero */
+ ELM_WRAP_CHAR, /**< Char wrap - wrap between graphmes */
+ ELM_WRAP_WORD, /**< Word wrap - wrap in allowed wrapping points (as defined in the unicode standard) */
+ ELM_WRAP_MIXED, /**< Mixed wrap - Word wrap, and if that fails, char wrap. */
+ ELM_WRAP_LAST = ELM_WRAP_MIXED
+ } Elm_Wrap_Type;
+
+
+ /**
* Called back when a widget's tooltip is activated and needs content.
* @param data user-data given to elm_object_tooltip_content_cb_set()
* @param obj owner widget.
EAPI Evas_Object *elm_label_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
EAPI void elm_label_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
EAPI const char *elm_label_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_label_line_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
- EAPI Eina_Bool elm_label_line_wrap_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EAPI void elm_label_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
+ EAPI Elm_Wrap_Type elm_label_line_wrap_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_label_wrap_width_set(Evas_Object *obj, Evas_Coord w) EINA_ARG_NONNULL(1);
EAPI Evas_Coord elm_label_wrap_width_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_label_wrap_height_set(Evas_Object *obj, Evas_Coord h) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_entry_is_empty(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI const char *elm_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_entry_entry_insert(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
- EAPI void elm_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
- EAPI void elm_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
+ EAPI void elm_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
EAPI void elm_entry_editable_set(Evas_Object *obj, Eina_Bool editable) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_entry_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_entry_select_none(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_is_empty(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI const char *elm_scrolled_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_entry_insert(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
- EAPI void elm_scrolled_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
- EAPI void elm_scrolled_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
+ EAPI void elm_scrolled_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_editable_set(Evas_Object *obj, Eina_Bool editable) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_select_none(Evas_Object *obj) EINA_ARG_NONNULL(1);
elm_widget_mirrored_automatic_set(en, EINA_FALSE);
elm_scrolled_entry_editable_set(en, EINA_FALSE);
elm_scrolled_entry_single_line_set(en, EINA_TRUE);
- elm_scrolled_entry_line_char_wrap_set(en, EINA_TRUE);
+ elm_scrolled_entry_line_wrap_set(en, ELM_WRAP_CHAR);
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_widget_mirrored_automatic_set(en, EINA_FALSE);
elm_scrolled_entry_editable_set(en, EINA_TRUE);
elm_scrolled_entry_single_line_set(en, EINA_TRUE);
- elm_scrolled_entry_line_char_wrap_set(en, EINA_TRUE);
+ elm_scrolled_entry_line_wrap_set(en, ELM_WRAP_CHAR);
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
* See also elm_scrolled_entry_line_char_wrap_set().
*
* @param obj The scrolled entry object
- * @param wrap If true, the scrolled entry will be wrapped once it reaches the end
+ * @param wrap wrap according to Elm_Wrap_Type
* of the object. Wrapping will occur at the end of the word before the end of the
* object.
*
* @ingroup Scrolled_Entry
*/
EAPI void
-elm_scrolled_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap)
+elm_scrolled_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
}
/**
- * This enables character line wrapping in the scrolled entry object. It is the opposite
- * of elm_scrolled_entry_single_line_set(). Additionally, setting this disables
- * word line wrapping.
- * See also elm_scrolled_entry_line_wrap_set().
- *
- * @param obj The scrolled entry object
- * @param wrap If true, the scrolled entry will be wrapped once it reaches the end
- * of the object. Wrapping will occur immediately upon reaching the end of the object.
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
-elm_scrolled_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap)
-{
- ELM_CHECK_WIDTYPE(obj, widtype);
- Widget_Data *wd = elm_widget_data_get(obj);
- if (!wd) return;
- elm_entry_line_char_wrap_set(wd->entry, wrap);
-}
-
-/**
* This sets the editable attribute of the scrolled entry.
*
* @param obj The scrolled entry object
Ecore_Job *hovdeljob;
Mod_Api *api; // module api if supplied
int cursor_pos;
+ Elm_Wrap_Type linewrap;
Eina_Bool changed : 1;
- Eina_Bool linewrap : 1;
- Eina_Bool char_linewrap : 1;
Eina_Bool single_line : 1;
Eina_Bool password : 1;
Eina_Bool editable : 1;
Evas_Coord minw = -1, minh = -1;
Evas_Coord resw, resh;
if (!wd) return;
- if ((wd->linewrap) || (wd->char_linewrap))
+ if (wd->linewrap)
{
evas_object_geometry_get(wd->ent, NULL, NULL, &resw, &resh);
if ((resw == wd->lastw) && (!wd->changed)) return;
{
Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
- if ((wd->linewrap) || (wd->char_linewrap))
+ if (wd->linewrap)
{
_sizing_eval(data);
}
if (wd->single_line) return "base-single";
else
{
- if (wd->linewrap) return "base";
- else if (wd->char_linewrap) return "base-charwrap";
- else return "base-nowrap";
+ switch (wd->linewrap)
+ {
+ case ELM_WRAP_CHAR:
+ return "base-charwrap";
+ case ELM_WRAP_WORD:
+ case ELM_WRAP_MIXED:
+ /* FIXME: separate mixed and word. */
+ return "base";
+ case ELM_WRAP_NONE:
+ default:
+ return "base-nowrap";
+ }
}
}
}
if (wd->single_line) return "base-single-noedit";
else
{
- if (wd->linewrap) return "base-noedit";
- else if (wd->char_linewrap) return "base-noedit-charwrap";
- else return "base-nowrap-noedit";
+ switch (wd->linewrap)
+ {
+ case ELM_WRAP_CHAR:
+ return "base-noedit-charwrap";
+ case ELM_WRAP_WORD:
+ case ELM_WRAP_MIXED:
+ /* FIXME: separate mixed and word. */
+ return "base-noedit";
+ case ELM_WRAP_NONE:
+ default:
+ return "base-nowrap-noedit";
+ }
}
}
}
elm_widget_can_focus_set(obj, EINA_TRUE);
elm_widget_highlight_ignore_set(obj, EINA_TRUE);
- wd->linewrap = EINA_TRUE;
- wd->char_linewrap= EINA_FALSE;
+ wd->linewrap = ELM_WRAP_WORD;
wd->editable = EINA_TRUE;
wd->disabled = EINA_FALSE;
wd->context_menu = EINA_TRUE;
if (!wd) return;
if (wd->single_line == single_line) return;
wd->single_line = single_line;
- wd->linewrap = EINA_FALSE;
- wd->char_linewrap = EINA_FALSE;
+ wd->linewrap = ELM_WRAP_NONE;
elm_entry_cnp_textonly_set(obj, EINA_TRUE);
_theme_hook(obj);
}
if (wd->password == password) return;
wd->password = password;
wd->single_line = EINA_TRUE;
- wd->linewrap = EINA_FALSE;
- wd->char_linewrap = EINA_FALSE;
+ wd->linewrap = ELM_WRAP_NONE;
_theme_hook(obj);
}
* This enables word line wrapping in the entry object. It is the opposite
* of elm_entry_single_line_set(). Additionally, setting this disables
* character line wrapping.
- * See also elm_entry_line_char_wrap_set().
*
* @param obj The entry object
* @param wrap If true, the entry will be wrapped once it reaches the end
* @ingroup Entry
*/
EAPI void
-elm_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap)
+elm_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
if (wd->linewrap == wrap) return;
- wd->linewrap = wrap;
- if(wd->linewrap)
- wd->char_linewrap = EINA_FALSE;
- _theme_hook(obj);
-}
-/**
- * This enables character line wrapping in the entry object. It is the opposite
- * of elm_entry_single_line_set(). Additionally, setting this disables
- * word line wrapping.
- * See also elm_entry_line_wrap_set().
- *
- * @param obj The entry object
- * @param wrap If true, the entry will be wrapped once it reaches the end
- * of the object. Wrapping will occur immediately upon reaching the end of the object.
- *
- * @ingroup Entry
- */
-EAPI void
-elm_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap)
-{
- ELM_CHECK_WIDTYPE(obj, widtype);
- Widget_Data *wd = elm_widget_data_get(obj);
- if (!wd) return;
- if (wd->char_linewrap == wrap) return;
- wd->char_linewrap = wrap;
- if(wd->char_linewrap)
- wd->linewrap = EINA_FALSE;
+ wd->linewrap = wrap;
_theme_hook(obj);
}
/**
* Set the wrapping behavior of the label
*
+ * FIXME: currently all types wrap the same way (as defined in theme).
+ *
* @param obj The label object
* @param wrap To wrap text or not
* @ingroup Label
*/
EAPI void
-elm_label_line_wrap_set(Evas_Object *obj, Eina_Bool wrap)
+elm_label_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
* Get the wrapping behavior of the label
*
* @param obj The label object
- * @return To wrap text or not
+ * @return Wrap type
* @ingroup Label
*/
-EAPI Eina_Bool
+EAPI Elm_Wrap_Type
elm_label_line_wrap_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;