3. TextInput –Feature phone
2012-11-05 10:36 lee++ 阅读(237) 评论(0) 收藏 举报1. SapWidgetFtInputRom.c 定义常量等宏
SapWidgetFtInput.h/.c 是输入法给App调用的接口
SapWidgetTextInput –> 对外App的接口 TextInputWidget 外部统一接口
FtInput –> 对内的
模式:笔画、BPMF(台湾输入法)、英语、拼音、韩语(Hangul)、符号
2. T9 是源文件;XT9 是库
3. Hw: 手写 HG: 韩文 EG: 英文(联想) AB: 字母(单字母输入) Sb: 滚动条 SB: 符号 Kp: 全键盘
Keyboard: 定义区域 Keypad: 真正处理的代码
4. 窗口句柄 + widgetId –> SapWidgetTextInput
5. T9.c XT9.c T9Ex1.c FtInput.c FtKeyInputEx.c Ti.c Udb.c
6. App –> SapWidgetFtInput –> SapWidgetFtInputEx –> SapWidgetFtInputPY –> T9 T9Ex1–> T9库
7. Ti 管理编辑界面(文本显示)
Ti 会调SapWidgetFtInput 的draw 函数画文本
Udb:也是调那几种输入法 <-> Ex
Exit : 内存释放
PopupS: 输入非法字符
ExS: ****
Rom.c -> Enter,Exit,Handler
8. 输入单个字母 AB.c
-> FtKey Input StartTimer 有timerID
Ex.c App将某一个Widget激活,输入法收到ActiveEvent,将输入法由standby –> execute 状态
添加单词:Udb状态
添加新短语
9. 所有事件都必须经过SapWidgetFtInput.c 的SapWidgetHandlerFtInput函数
A. 确定App是否将事件给到输入法,就在此打断点
B. 根据输入法状态进入相应状态的Handler
10.SapWidgetFtInput CreateDefaultInput
11.XT9 支持Qwerty 键盘输入
CBP8.0 用的是XT9
sendEvent2App 是同步,需等App的返回,才继续执行
PostEvent2App 是异步
PostEventTop2App 更优先得到处理
12. FtKeyInputEx.c KeyHandler 是按键Handler
各种输入法的Handler,再事件分发到各输入法
IFtKeyInputPYHandlerEvent –> PY 的主Handler
-》PY 里还有一些子状态的Handler
库文件位置 2_SapMid /Cai /T9
PY 回调Ex的PYBrf 的CM(ChangeMode) Ct:Context control
ModeSwitch
13. _FeatureTextInputNewKeypadConcept 主要是两个
(1)long press # 号键 可以选择 PY/STR、Eng/ENG/eng、ABC/Abc/abc
(2)长按* 号键,弹出writing options 框(根据当前不同模式,有不同的选项菜单)
14. Feature_Hangul 韩文
15. 输入法为Active状态,输入法先收到Event,如果输入法不处理,再传给App,App收到事件后,对事件做处理,Deactive 一个框,Active下一个框
16. PY:拼音 stroke:笔画 EG:英语 NB:数字(NS) AB:字母 HG:朝鲜文 SB:符号 SS:笔画 NA:未定义 Iniword:Indonesia word Decimal:十进制
handwriting Keypad:键盘 keyboard
#:Pound *:star 返回:sto ;:semicolon BPMF:注音 coordinate:坐标
17. SapWidgetInputModeType = SapWidgetFtInputModeType
_eTextInputModeNone = _eFtInputModeNA;
ModePinYin= ModePY .....
InputType: 手写,键盘,虚拟键盘
InputMode: 拼音,英语,数字....
18. 每个控件都有大量的属性,事件和方法,供程序人员使用
生命周期四个状态:standby 非激活,execute: 执行,UDB:添加单词,exit:退出
每个状态都有CT/TI 子控件
ct:主管控制 Ti:专职显示
Ct 和 Ti 分别有各自的一套数据结构和事件处理函数,有一套各自的事件处理流程
每个状态由enter/handler/exit 组成(exit除外)
enter:状态入口函数
handler: 状态事件处理函数
exit: 状态出口函数
19.控件的三项主要内容:属性,事件和方法
FtInputStandbyEnter ,Exit,Handler
FtKeyInputExEnter,Exit,Handler
FtKeyInputExUdbEnter,Exit,Handler
FtInputExitProc
widgetFtInputRom.c ->sFtInputStateData()
20. SB
SapWidgetHandlerFtInput ->FtKeyInputExHandler -> FtKeyInputExKeyHandler ->FtKeyInputExEGKeyHandler -> FtInputSendEvent -> IFtKeyInputEGHandlerEvent -> FtKeyInputEGHandlerKeyEvents -> FtKeyInputExEGBrf -> FtKeyInputExCtInit -> FtKeyInputExSBInit
浙公网安备 33010602011771号