ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:107.63KB ,
资源ID:9987648      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9987648.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AMPM设置菜单的添加.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

AMPM设置菜单的添加.docx

1、AMPM设置菜单的添加12小时制下AM/PM设置菜单的添加一、开发背景在karbonn项目zp180b002和zl590d002上,客户强烈要求在所有可进行时间设置的界面在12小时制下都要添加AM/PM的设置菜单,并能进行正确的时间设置。二、涉及界面1、phone settings下的Set time/date界面2、Alarm下的edit界面3、calendar下的Add、Edit界面4、Todolist下的Add、Edit界面5、phone settings下的schedule power on/off的edit界面三、原理介绍该功能主要只做上层显示的变化,而不修改底层原有数据,降低未知风

2、险。要点有以下几点:1、 在12小时下进入上述界面,在add、edit等操作时改变原有界面布局,增加AM/PM设置的caption和select item。2、 显示:从底层获取原有数据转换成12小时显示。3、 存储:将设置的数据转换成24小时存储。4、 select item的值(当前是AM还是PM):定义全局变量,由该全局变量来决定,当前处于AM还是PM。其中需要特别指出的是:calendar和todolist的add、edit界面较为复杂,因为calendar界面包括了stat_time、end_time都需要添加AM/PM设置,此外calendar和todolist下add、edit以

3、及view界面都包括了alarm_time,虽然此项不能对时间进行设置不需要添加AM/PM设置菜单,但是其时间显示在12小时制下仍然显示为24小时制的格式。所以在12小时制下需要对其作出里,这里采取了后缀显示AM/PM的方案(后缀显示AM/PM的方案实现过程详见于项目zl590d002相关代码)。效果示例图如下(以todolist为例): 图3.1 todolist下的无AM/PM 图3.2 todolist下的有AM/PM设置设置add界面 的add界面图3.3 todolist下的无AM/PM 图3.4 todolist下的有AM/PM设置设置view界面 的view界面 图3.3 tod

4、olist下的无AM/PM 图3.4 todolist下的有AM/PM设置设置edit界面 的edit界面四、12小时制下AM/PM设置界面展示 以phone settings下的Set time/date界面为例:图4.1:无AM/PM设置功能 图4.2:有AM/PM设置功能 五:代码实现过程示例:(以phone settings下的Set time/date界面为例,其他界面原理相同,只需增加或修改细节,例如后缀显示AM/PM)1 。 增加一个宏 _MMI_TIME_FORMAT_AMPM_SUPPORT_ ,用于控制修改的所有内容 。 2 。 在DateAndTime.c 文件中,修改如

5、下: 1) 增加 inline显示相关的id的定义 /* Set date and time */#define SET_DATE_AND_TIME_SET_TIME_CAPTION (CUI_INLINE_ITEM_ID_BASE + 1)#define SET_DATE_AND_TIME_SET_TIME (CUI_INLINE_ITEM_ID_BASE + 2)#define SET_DATE_AND_TIME_SET_DATE_CAPTION (CUI_INLINE_ITEM_ID_BASE + 3)#define SET_DATE_AND_TIME_SET_DATE (CUI_INL

6、INE_ITEM_ID_BASE + 4)#define SET_DATE_AND_TIME_DAYLIGHT_SAVING_CAPTION (CUI_INLINE_ITEM_ID_BASE + 5)#define SET_DATE_AND_TIME_DAYLIGHT_SAVING_SELECT (CUI_INLINE_ITEM_ID_BASE + 6)#if defined(_MMI_TIME_FORMAT_AMPM_SUPPORT_)#define SET_DATE_AND_TIME_SET_AMPM_CAPTION (CUI_INLINE_ITEM_ID_BASE + 7)#define

7、 SET_DATE_AND_TIME_SET_AMPM_SELECT (CUI_INLINE_ITEM_ID_BASE + 8)#endif 2)增加存在am pm 的inline 界面相关的全局变量 : #if defined(_MMI_TIME_FORMAT_AMPM_SUPPORT_)static U16 g_phnset_dt_am_pm_str_id = STR_AM, STR_PM; / 字串资源需要自行添加static const cui_inline_item_caption_struct g_phnset_set_date_time_ampm_caption = STR_ID

8、_AMPM;/ 字串资源需要自行添加static cui_inline_item_select_struct g_phnset_set_date_time_ampm_select = 2, /*am and pm */ 0, g_phnset_dt_am_pm_str_id;static cui_inline_set_item_struct g_phnset_set_date_time_with_ampm_data = SET_DATE_AND_TIME_SET_TIME_CAPTION, CUI_INLINE_ITEM_TYPE_CAPTION, IMG_TIME, &g_phnset_se

9、t_date_time_caption1, SET_DATE_AND_TIME_SET_TIME, CUI_INLINE_ITEM_TYPE_TIME | CUI_INLINE_ITEM_DISABLE_LIST_HIGHLIGHT, 0, &g_phnset_date_and_time_common_inline_time, SET_DATE_AND_TIME_SET_AMPM_CAPTION, CUI_INLINE_ITEM_TYPE_CAPTION, IMG_TIME, &g_phnset_set_date_time_ampm_caption, SET_DATE_AND_TIME_SET

10、_AMPM_SELECT, CUI_INLINE_ITEM_TYPE_SELECT, 0, &g_phnset_set_date_time_ampm_select , SET_DATE_AND_TIME_SET_DATE_CAPTION, CUI_INLINE_ITEM_TYPE_CAPTION, IMG_CAL, &g_phnset_set_date_time_caption2, SET_DATE_AND_TIME_SET_DATE, CUI_INLINE_ITEM_TYPE_DATE | CUI_INLINE_ITEM_DISABLE_LIST_HIGHLIGHT, 0, &(g_phns

11、et_date_and_time_common_inline_time.date_time), SET_DATE_AND_TIME_DAYLIGHT_SAVING_CAPTION, CUI_INLINE_ITEM_TYPE_CAPTION, SUN_ICON, &g_phnset_set_date_time_caption3, SET_DATE_AND_TIME_DAYLIGHT_SAVING_SELECT, CUI_INLINE_ITEM_TYPE_SELECT, 0, &g_phnset_set_date_time_select1 ;static const cui_inline_stru

12、ct g_phnset_set_date_time_with_ampm_inline = sizeof(g_phnset_set_date_time_with_ampm_data) / sizeof(cui_inline_set_item_struct), STR_ID_PHNSET_SET_DT, IMG_SCR_SETTING_CAPTION, CUI_INLINE_SCREEN_DEFAULT_TEXT | CUI_INLINE_SCREEN_DISABLE_DONE, NULL, g_phnset_set_date_time_with_ampm_data; static U8 g_ph

13、nset_set_date_time_curr_ampm_flag = 0x00; /0x00 -AM,0x01-PM#endif 3)增加时间转换的两个函数 :#if defined(_MMI_TIME_FORMAT_AMPM_SUPPORT_) /* * FUNCTION * mmi_phnset_date_and_time_convert_to_12_format * DESCRIPTION * convert 24 time format to 12 format time * PARAMETERS * hour_24timeformat IN * RETURNS * 12 forma

14、t time */U16 mmi_phnset_date_and_time_convert_to_12_format(U16 hour_24timeformat) /*-*/ /* Local Variables */ /*-*/ U16 hour_12timeformat=hour_24timeformat; /*-*/ /* Code Body */ /*-*/ if(hour_24timeformat 12) g_phnset_set_date_time_curr_ampm_flag = 0x01; /PM hour_12timeformat -= 12; else if(hour_24

15、timeformat=0) hour_12timeformat= 12; g_phnset_set_date_time_curr_ampm_flag = 0x00; /AM else if(hour_24timeformat = 12) g_phnset_set_date_time_curr_ampm_flag = 0x01; /PM else g_phnset_set_date_time_curr_ampm_flag = 0x00; /AM return hour_12timeformat;/* * FUNCTION * mmi_phnset_date_and_time_convert_to

16、_24_format * DESCRIPTION * convert 12 time format to 24 format time * PARAMETERS * hour_12timeformat IN * RETURNS * 24 format time */U16 mmi_phnset_date_and_time_convert_to_24_format(U16 hour_12timeformat) /*-*/ /* Local Variables */ /*-*/ U16 hour_24timeformat = hour_12timeformat; /*-*/ /* Code Bod

17、y */ /*-*/ if(hour_12timeformat 12) hour_24timeformat = 12; if(g_phnset_set_date_time_curr_ampm_flag = 0x01)& hour_12timeformat date_time.year = g_time_buffer.nYear; inline_time-date_time.month = g_time_buffer.nMonth; inline_time-date_time.day = g_time_buffer.nDay; inline_time-date_time.hour = g_tim

18、e_buffer.nHour; inline_time-date_time.minute = g_time_buffer.nMin; inline_time-date_time.second = g_time_buffer.nSec; inline_time-date_format = 0; #if defined(_MMI_TIME_FORMAT_AMPM_SUPPORT_) if(!PhnsetGetTimeFormat() inline_time-date_time.hour = mmi_phnset_date_and_time_convert_to_12_format( inline_

19、time-date_time.hour) ; #endif 5) 修改mmi_phnset_date_and_time_inline_time_to_mytime函数 如下 :/* * FUNCTION * mmi_phnset_date_and_time_inline_time_to_mytime * DESCRIPTION * Transfer inline time struct data to g_time_buffer * PARAMETERS * * RETURNS * static void */static void mmi_phnset_date_and_time_inlin

20、e_time_to_mytime(cui_inline_item_time_struct *inline_time) /*-*/ /* Local Variables */ /*-*/ /*-*/ /* Code Body */ /*-*/ #if defined(_MMI_TIME_FORMAT_AMPM_SUPPORT_) if(!PhnsetGetTimeFormat() inline_time-date_time.hour = mmi_phnset_date_and_time_convert_to_24_format( inline_time-date_time.hour) ; #en

21、dif g_time_buffer.nYear = (kal_uint16)inline_time-date_time.year; g_time_buffer.nMonth = (kal_uint8)inline_time-date_time.month; g_time_buffer.nDay = (kal_uint8)inline_time-date_time.day; g_time_buffer.nHour = (kal_uint8)inline_time-date_time.hour; g_time_buffer.nMin = (kal_uint8)inline_time-date_ti

22、me.minute; /* Inline cui will not return second */ g_time_buffer.nSec = 0; 6)修改函数 mmi_phnset_entry_set_date_and_time 如下 : /* * FUNCTION * mmi_phnset_entry_set_date_and_time * DESCRIPTION * Internal entry function * PARAMETERS * * RETURNS * static void */static void mmi_phnset_entry_set_date_and_time(MMI_ID parent_gid) /*-*/ /* Local Variables */ /*-*/ MMI_ID *inlinecui_gid; cui_inline_item_time_struct inline_time; /*-*/ /* Code Body */ /*-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1