微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > mt2503自动首字母大写遇到结束符后自动切换的原理

mt2503自动首字母大写遇到结束符后自动切换的原理

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
自动首字母大写遇到结束符(如:“?”、“!”、“.+空格”)后实现自动切换为首字母大写的原理。
[SOLUTION]
在Editor有新的内容输入时,Imc.c文件中的函数MMI_imc_get_candidate_case_by_text_buffer会被执行,此函数会自动查找当前输入的内容是否符
合首字母大写转换的条件(条件存放于数组g_imc_sentence_ending_markers中),最终会根据查找结果切换相应的状态(小写或者首字母大写)。
g_imc_sentence_ending_markers数组内容为:
g_imc_sentence_ending_markers=
{
{0x0020,'.','\0'},//句号+空格
{0x0020,'!','\0'},//叹号+空格
{0x0020,'?','\0'},
{'!','\0'},//单独一个叹号
{'?','\0'},
{0x0020,0X3002,'\0'},
{0x0020,0xff1f,'\0'},
{0x0020,0xff0e,'\0'},
{0x0020,0X2026,'\0'},
{0x0020,0xff01,'\0'},
{0x3002,'\0'},
{0xff1f,'\0'},
{0xff0e,'\0'},
{0x2026,'\0'},
{0xff01,'\0'},
{0x0020,0x000A,0x000D,'\0'},
{0x000A,0x000D,'\0'},
{0x0020,0x000A,'\0'},
{0x000A,'\0'},
{0x0020,0x000D,'\0'},
{0x000D,'\0'},
{'\0'}
};
{0x0020,'.','\0'}遇到句号+空格时会切为首字母大写,{'!','\0'}表示遇到 ! 会切为首字母大写。在查找的过程中数组中的内容会被依次比对
,若有一致的就返回首字母大写状态,若没有则还是返回小写状态。因为在英文输入中,一点可以是句号,也可以是缩写字符的标志,所以句号后面
加空格才会被转换。若对转换的条件有特别的需求可以通过修改数组中的内容来实现。

顶顶顶

頂.....

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top