From c8861ab54b5dd620ad7c88e60a25c74a12bfeeec Mon Sep 17 00:00:00 2001 From: woohyun Date: Wed, 8 Feb 2012 07:23:08 +0000 Subject: [PATCH] [elementary/entry] Add elm_entry_markup_filter_append/prepend/remove and make elm_entry_text_filter_append/prepend/remove be deprecated. In a filter function appended by elm_entry_text_filter_append, the type of text can be format, text, or markup. So correct filtering is impossible. But with elm_entry_markup_filter_append, the type is always markup. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@67747 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/bin/test_entry.c | 8 ++++---- src/lib/elc_scrolled_entry.c | 6 +++--- src/lib/elm_deprecated.h | 45 ++++++++++++++++++++++++++++++++++++++++++++ src/lib/elm_entry.h | 33 ++++++++++++++++---------------- 4 files changed, 69 insertions(+), 23 deletions(-) diff --git a/src/bin/test_entry.c b/src/bin/test_entry.c index f26ddd5..e297d62 100644 --- a/src/bin/test_entry.c +++ b/src/bin/test_entry.c @@ -366,7 +366,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev digits_filter_data.accepted = "0123456789"; digits_filter_data.rejected = NULL; - elm_entry_text_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data); + elm_entry_markup_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data); /* No digits entry */ en = elm_entry_add(win); @@ -381,7 +381,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev digits_filter_data2.accepted = NULL; digits_filter_data2.rejected = "0123456789"; - elm_entry_text_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data2); + elm_entry_markup_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data2); /* Size limited entry */ en = elm_entry_add(win); @@ -396,7 +396,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev limit_filter_data.max_char_count = 20; limit_filter_data.max_byte_count = 0; - elm_entry_text_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data); + elm_entry_markup_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data); /* Byte size limited entry */ en = elm_entry_add(win); @@ -411,7 +411,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev limit_filter_data2.max_char_count = 0; limit_filter_data2.max_byte_count = 30; - elm_entry_text_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data2); + elm_entry_markup_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data2); /* Single line password entry */ en_p = elm_entry_add(win); diff --git a/src/lib/elc_scrolled_entry.c b/src/lib/elc_scrolled_entry.c index b6cdd5a..18cc752 100644 --- a/src/lib/elc_scrolled_entry.c +++ b/src/lib/elc_scrolled_entry.c @@ -163,13 +163,13 @@ elm_scrolled_entry_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) ( {elm_entry_item_provider_remove(obj, func, data);} EINA_DEPRECATED EAPI void elm_scrolled_entry_text_filter_append(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) -{elm_entry_text_filter_append(obj, func, data);} +{elm_entry_markup_filter_append(obj, func, data);} EINA_DEPRECATED EAPI void elm_scrolled_entry_text_filter_prepend(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) -{elm_entry_text_filter_prepend(obj, func, data);} +{elm_entry_markup_filter_prepend(obj, func, data);} EINA_DEPRECATED EAPI void elm_scrolled_entry_text_filter_remove(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) -{elm_entry_text_filter_remove(obj, func, data);} +{elm_entry_markup_filter_remove(obj, func, data);} EINA_DEPRECATED EAPI void elm_scrolled_entry_file_set(Evas_Object *obj, const char *file, Elm_Text_Format format) {elm_entry_file_set(obj, file, format);} diff --git a/src/lib/elm_deprecated.h b/src/lib/elm_deprecated.h index 74ec0ff..ed14e9c 100644 --- a/src/lib/elm_deprecated.h +++ b/src/lib/elm_deprecated.h @@ -4211,4 +4211,49 @@ EINA_DEPRECATED EAPI Eina_Bool elm_gengrid_item_disabled_get */ EINA_DEPRECATED EAPI void elm_gengrid_item_del(Elm_Object_Item *it); +/** + * Append a filter function for text inserted in the entry + * + * Append the given callback to the list. This functions will be called + * whenever any text is inserted into the entry, with the text to be inserted + * as a parameter. The callback function is free to alter the text in any way + * it wants, but it must remember to free the given pointer and update it. + * If the new text is to be discarded, the function can free it and set its + * text parameter to NULL. This will also prevent any following filters from + * being called. + * + * @param obj The entry object + * @param func The function to use as text filter + * @param data User data to pass to @p func + * @deprecated use elm_entry_markup_filter_append() instead + * @ingroup Entry + */ +EINA_DEPRECATED EAPI void elm_entry_text_filter_append(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data); +/** + * Prepend a filter function for text inserted in the entry + * + * Prepend the given callback to the list. See elm_entry_text_filter_append() + * for more information + * + * @param obj The entry object + * @param func The function to use as text filter + * @param data User data to pass to @p func + * @deprecated use elm_entry_markup_filter_prepend() instead + * @ingroup Entry + */ +EINA_DEPRECATED EAPI void elm_entry_text_filter_prepend(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data); + +/** + * Remove a filter from the list + * + * Removes the given callback from the filter list. See + * elm_entry_text_filter_append() for more information. + * + * @param obj The entry object + * @param func The filter function to remove + * @param data The user data passed when adding the function + * @deprecated use elm_entry_markup_filter_remove() instead + * @ingroup Entry + */ +EINA_DEPRECATED EAPI void elm_entry_text_filter_remove(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data); diff --git a/src/lib/elm_entry.h b/src/lib/elm_entry.h index 4cb3fec..21fabf2 100644 --- a/src/lib/elm_entry.h +++ b/src/lib/elm_entry.h @@ -62,7 +62,7 @@ typedef enum * indicated by Elm_Wrap_Type. * * Other features include password mode, filtering of inserted text with - * elm_entry_text_filter_append() and related functions, inline "items" and + * elm_entry_markup_filter_append() and related functions, inline "items" and * formatted markup text. * * @section entry-markup Formatted text @@ -310,10 +310,10 @@ struct _Elm_Entry_Anchor_Info * This callback type is used by entry filters to modify text. * @param data The data specified as the last param when adding the filter * @param entry The entry object - * @param text A pointer to the location of the text being filtered. This data can be modified, + * @param text A pointer to the location of the text being filtered. The type of text is always markup. This data can be modified, * but any additional allocations must be managed by the user. - * @see elm_entry_text_filter_append - * @see elm_entry_text_filter_prepend + * @see elm_entry_markup_filter_append + * @see elm_entry_markup_filter_prepend */ typedef void (*Elm_Entry_Filter_Cb)(void *data, Evas_Object *entry, char **text); @@ -418,7 +418,7 @@ EAPI const char *elm_entry_entry_get(const Evas_Object *obj); * @param obj The entry object * @param entry The text to be displayed * - * @see elm_entry_text_filter_append() + * @see elm_entry_markup_filter_append() */ EAPI void elm_entry_entry_append(Evas_Object *obj, const char *entry); @@ -507,7 +507,7 @@ EAPI void elm_entry_calc_force(Evas_Object *obj); * @param obj The entry object * @param entry The text to insert * - * @see elm_entry_text_filter_append() + * @see elm_entry_markup_filter_append() */ EAPI void elm_entry_entry_insert(Evas_Object *obj, const char *entry); @@ -844,12 +844,13 @@ EAPI void elm_entry_item_provider_prepend(Evas_Object *obj, Evas_O EAPI void elm_entry_item_provider_remove(Evas_Object *obj, Evas_Object * (*func)(void *data, Evas_Object * entry, const char *item), void *data); /** - * Append a filter function for text inserted in the entry + * Append a markup filter function for text inserted in the entry * * Append the given callback to the list. This functions will be called * whenever any text is inserted into the entry, with the text to be inserted - * as a parameter. The callback function is free to alter the text in any way - * it wants, but it must remember to free the given pointer and update it. + * as a parameter. The type of given text is always markup. + * The callback function is free to alter the text in any way it wants, but + * it must remember to free the given pointer and update it. * If the new text is to be discarded, the function can free it and set its * text parameter to NULL. This will also prevent any following filters from * being called. @@ -858,31 +859,31 @@ EAPI void elm_entry_item_provider_remove(Evas_Object *obj, Evas_Ob * @param func The function to use as text filter * @param data User data to pass to @p func */ -EAPI void elm_entry_text_filter_append(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data); +EAPI void elm_entry_markup_filter_append(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data); /** - * Prepend a filter function for text insdrted in the entry + * Prepend a markup filter function for text insdrted in the entry * - * Prepend the given callback to the list. See elm_entry_text_filter_append() + * Prepend the given callback to the list. See elm_entry_markup_filter_append() * for more information * * @param obj The entry object * @param func The function to use as text filter * @param data User data to pass to @p func */ -EAPI void elm_entry_text_filter_prepend(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data); +EAPI void elm_entry_markup_filter_prepend(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data); /** - * Remove a filter from the list + * Remove a markup filter from the list * * Removes the given callback from the filter list. See - * elm_entry_text_filter_append() for more information. + * elm_entry_markup_filter_append() for more information. * * @param obj The entry object * @param func The filter function to remove * @param data The user data passed when adding the function */ -EAPI void elm_entry_text_filter_remove(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data); +EAPI void elm_entry_markup_filter_remove(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data); /** * This converts a markup (HTML-like) string into UTF-8. -- 2.7.4