forked from enlightenment/efl
Evas textblock: Added "password" tag - toggle password mode.
This lets you toggle the password mode inside the text. Especially useful for implementing "show last char" in password entries. Patch by Shilpaonkar Singh SVN revision: 59000
This commit is contained in:
parent
368a77aea0
commit
ff0bcef2db
|
@ -24,4 +24,5 @@ Sung W. Park <sungwoo@gmail.com>
|
|||
Jiyoun Park <jy0703.park@samsung.com>
|
||||
Myoungwoon Roy Kim(roy_kim) <myoungwoon.kim@samsung.com> <myoungwoon@gmail.com>
|
||||
Thierry el Borgi <thierry@substantiel.fr>
|
||||
Shilpa Singh <shilpa.singh@samsung.com> <shilpasingh.o@gmail.com>
|
||||
|
||||
|
|
|
@ -285,3 +285,8 @@
|
|||
evas_image_loader.extension e.g. evas_image_loader.pdf or
|
||||
evas_image_loader.xcf or evas_image_loader.xcf.gz etc. etc.
|
||||
|
||||
2011-04-28 Shilpaonkar Singh
|
||||
|
||||
* Textblock: Add "password" tag to turn on/off password in the middle
|
||||
of the textblok. Especially useful for implementing "show last char"
|
||||
for password entries.
|
||||
|
|
|
@ -342,6 +342,7 @@ struct _Evas_Object_Textblock_Format
|
|||
unsigned char underline2 : 1;
|
||||
unsigned char strikethrough : 1;
|
||||
unsigned char backing : 1;
|
||||
unsigned char password : 1;
|
||||
};
|
||||
|
||||
struct _Evas_Textblock_Style
|
||||
|
@ -1026,6 +1027,7 @@ static const char *linerelgapstr = NULL;
|
|||
static const char *itemstr = NULL;
|
||||
static const char *linefillstr = NULL;
|
||||
static const char *ellipsisstr = NULL;
|
||||
static const char *passwordstr = NULL;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
|
@ -1066,6 +1068,7 @@ _format_command_init(void)
|
|||
itemstr = eina_stringshare_add("item");
|
||||
linefillstr = eina_stringshare_add("linefill");
|
||||
ellipsisstr = eina_stringshare_add("ellipsis");
|
||||
passwordstr = eina_stringshare_add("password");
|
||||
}
|
||||
format_refcount++;
|
||||
}
|
||||
|
@ -1109,6 +1112,7 @@ _format_command_shutdown(void)
|
|||
eina_stringshare_del(itemstr);
|
||||
eina_stringshare_del(linefillstr);
|
||||
eina_stringshare_del(ellipsisstr);
|
||||
eina_stringshare_del(passwordstr);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1510,6 +1514,13 @@ _format_command(Evas_Object *obj, Evas_Object_Textblock_Format *fmt, const char
|
|||
o->have_ellipsis = 1;
|
||||
}
|
||||
}
|
||||
else if (cmd == passwordstr)
|
||||
{
|
||||
if (!strcmp(tmp_param, "off"))
|
||||
fmt->password = 0;
|
||||
else if (!strcmp(tmp_param, "on"))
|
||||
fmt->password = 1;
|
||||
}
|
||||
|
||||
if (new_font)
|
||||
{
|
||||
|
@ -1993,6 +2004,7 @@ _layout_format_push(Ctxt *c, Evas_Object_Textblock_Format *fmt)
|
|||
fmt->linerelsize = 0.0;
|
||||
fmt->linegap = 0;
|
||||
fmt->linerelgap = 0.0;
|
||||
fmt->password = 1;
|
||||
}
|
||||
return fmt;
|
||||
}
|
||||
|
@ -2770,7 +2782,7 @@ _layout_text_append(Ctxt *c, Evas_Object_Textblock_Format *fmt, Evas_Object_Text
|
|||
|
||||
/* If we work with a replacement char, create a string which is the same
|
||||
* but with replacement chars instead of regular chars. */
|
||||
if ((repch) && (eina_ustrbuf_length_get(n->unicode)))
|
||||
if ((fmt->password) && (repch) && (eina_ustrbuf_length_get(n->unicode)))
|
||||
{
|
||||
int i, ind;
|
||||
Eina_Unicode *ptr;
|
||||
|
|
Loading…
Reference in New Issue