版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上函数1.设置字体颜色#if defined(UI_WATCH_STYLE_128X128BAR) GUIEDIT_SetFontColor(MMISET_SET_DIVERT_NUMBER_CTRL_ID,MMI_BLACK_COLOR);#endif2.显示输入法#if defined(UI_WATCH_STYLE_128X128BAR)GUIEDIT_SetDispImIcon(MMIBT_PIN_EDITBOX_CTRL_ID,&is_display_im,&is_display_num);#endif3.idleHandleIdleMsg(idle入口函数)
2、IdleWin_HandleMsg(idle按键注册)4. MMK_RunWinProc(窗口跟踪函数) MMK_RunCtrlProc(控件跟踪函数)5. MMITHEME_GetMenuProc 菜单回调函数6. MMITHEME_GetCommonMenuTheme设置菜单tiemer7. MMITHEME_GetSecondMenuTheme设置二级菜单的风格数据8.6. MMK_DispatchToHandle mmk消息分配函数7. MMITHEME_GetMenuProc设置各种style风格的控件的回调函数GUIMENU_PROCESS_T结构typedef struct vo
3、id (*InitMenu)(GUIMENU_CTRL_T*); /init menu void (*DestoryMenu)(GUIMENU_CTRL_T*); /destory menu void (*DisplayMenu)(GUIMENU_CTRL_T*); /display menu(必须实现) void (*DisplaySpecialMenu)(GUIMENU_CTRL_T*); /display menu(处理主菜单震动拖选效果) void (*ShowScrollItemStr)(GUIMENU_CTRL_T*); /display scroll item string MM
4、I_RESULT_E (*HandleMenuUpKey)(GUIMENU_CTRL_T*); /handle menu up key(必须实现) MMI_RESULT_E (*HandleMenuDownKey)(GUIMENU_CTRL_T*); /handle menu down key(必须实现) BOOLEAN (*HandleMenuLeftKey)(GUIMENU_CTRL_T*,MMI_MESSAGE_ID_E); /handle menu left key,return is handle cancel(返回是否需要处理) BOOLEAN (*HandleMenuRightK
5、ey)(GUIMENU_CTRL_T*,MMI_MESSAGE_ID_E); /handle menu right key,return is handle ok(返回是否需要处理) BOOLEAN (*HandleMenuNumKey)(uint16,GUIMENU_CTRL_T*); /handle menu number key(返回是否需要处理) void (*HandleMenuTpDown)(GUI_POINT_T*,GUIMENU_CTRL_T*); /handle menu tp down(必须实现) BOOLEAN (*HandleMenuTpUp)(GUI_POINT_T*
6、,GUIMENU_CTRL_T*); /handle menu tp up(必须实现)(返回是否需要处理) void (*HandleMenuTpMove)(GUI_POINT_T*,GUIMENU_CTRL_T*); /handle menu tp move(必须实现) void (*HandleMenuTpScroll)(uint16,GUIMENU_CTRL_T*); /handle menu scroll bar tp void (*AdjustFirstAndDisplay)(GUIMENU_CTRL_T*, BOOLEAN); /调整first_item_index索引并重新显示(
7、非主菜单,实现) uint16 (*GetCurItemTop)(GUIMENU_CTRL_T*); /获得当前Item的Top值(POP风格弹出二级时,实现) BOOLEAN (*MoveInit)(GUIMENU_CTRL_T*); /移动信息初始化 BOOLEAN (*MoveDestory)(GUIMENU_CTRL_T*); /移动信息销毁 BOOLEAN (*HandleMenuOk)(GUIMENU_CTRL_T*, MMI_MESSAGE_ID_E); /handle menu ok(返回mmimenu是否已经处理) MMI_RESULT_E (*HandleMenuTimer
8、)(GUIMENU_CTRL_T*, MMI_MESSAGE_ID_E, DPARAM); /handle menu timer BOOLEAN (*HandleMenuCancelKey)(GUIMENU_CTRL_T*, MMI_MESSAGE_ID_E); /handle menu cancel(返回mmimenu是否已经处理) BOOLEAN (*HandleMenuEndKey)(GUIMENU_CTRL_T*); /handle menu end BOOLEAN (*SearchMenuId)(GUIMENU_CTRL_T*, MMI_MENU_ID_T); / 判断指定的item
9、 id是否存在(已无用,可删) void (*HandleMenuModifyRect)(GUIMENU_CTRL_T*); /handle menu modify rect(必须实现) MMI_RESULT_E (*HandleSpecialMsg)(GUIMENU_CTRL_T*, MMI_MESSAGE_ID_E, DPARAM); /display menu void (*GetItemPtr)(GUIMENU_CTRL_T*, uint16, uint16, GUIMENU_MAINMENU_INFO_T* ); / 获取指定页指定索引的静态item内容信息(用于主菜单) GUIME
10、NULIST_ITEM_INFO_T* (*GetItemInfoPtr)(GUIMENU_CTRL_T*, uint16, uint16);/ 获取指定页指定索引的静态item信息(用于主菜单) uint16 (*GetTotalItemNum)(GUIMENU_CTRL_T*, uint16); / 获取指定页的总item数(用于分页型的风格) uint16 (*GetLineNumPage)(GUIMENU_CTRL_T *); / 获取一个有多少行(非主菜单实现) BOOLEAN (*ResetDisplayItem)(GUIMENU_CTRL_T *, int16*, BOOLEAN
11、); / 修正显示位置,获取相对于现在的偏移量 void (*CalculateRect)(GUIMENU_CTRL_T *, uint16); / 计算menu的区域 BOOLEAN (*U_SetPageInfo)(GUIMENU_CTRL_T *, uint16, void *); / 设置U动画信息 GUIMENU_PROCESS_T;窗口风格Guimenu控件把一种风格对应的消息处理函数封装成一个结构,开放给应用使用。该结构只封装了消息处理的接口,以下每一个函数都对应了某个消息的处理,通常一种风格对应的是一组这样的消息处理函数。codeMENU_DEF( MENU_MAINMENU_
12、ICON, menu_mainmenu_icon, GUIMENU_STYLE_ICON, TXT_NULL, IMAGE_NULL, IMAGE_NULL, IMAGE_NULL, GUIMENU_ITEM_NUM(menu_mainmenu_icon)endcodeMENU_DEF宏的参数从前往后依次为:- 菜单组ID- 菜单数组地址- 菜单类型(可以看到为GUIMENU_STYLE_ICON,)- 四个空的文本或图片(NULL表示不需要)- 菜单数组的项数如果修改位置信息,那么只需要修改mmitheme_menu.h文件中的宏定义即可,有横竖屏的,应该兼顾。如果修改选项数据信息,只需要修
13、改菜单的静态数组,例如menu_mainmenu_icon。弹出式菜单和其它菜单不同,在创建的时候,弹出式菜单不需要使用CREATE_MENU_CTRL宏,也不需要依赖于窗口Table,无论是动态创建还是静态创建都是通过接口来实现的。-# MMIPOPMENU_CreateStatic 静态创建弹出式菜单-# MMIPOPMENU_CreateDynamic 动态创建弹出式菜单弹出试菜单的风格如下:-# 菜单显示的最大项数,该值使用一个宏定义的常量,常量名称MMIMENU_POPUP_LINE_NUM_PAGE,定义在mmimenu_position.h文件中,目前我们对于240x320以及1
14、76x220的屏幕,弹出式菜单的最大显示项数为8,而240x400的最大显示数为10。-# 菜单的背景修改,弹出式菜单的背景分为上下两个部分,上半部分为半透的效果,使用图片IMAGE_PUBWIN_UP_BG,这是一张固定资源图片,图片的大小可以自行修改。窗口的下半部分为背景色,颜色值为MMITHEME_POPUPMENU_BG_COLOR,在创建菜单控件的时候,调用MMITHEME_GetPopupMenuTheme(mmitheme_menu.c实现)获取。-# 菜单的其他风格信息都可以在MMITHEME_GetPopupMenuTheme接口中修改。菜单控件分为两大类:- 静态菜单n 静
15、态菜单的数据事先通过菜单表的形式已经确定,菜单控件分析这张菜单表解析出菜单项, 用户不能够再动态添加和删除菜单项。ntypedef void*PWND;/*! window struct pointer type */typedef void*DPARAM;/*! param data pointer type */typedef void*ADD_DATA;/*! additional data pointer type */typedef uint16MMI_SOFT_ICON;/*! soft icon type */typedef uint32MMI_TEXT_ID_T;/*! tex
16、t id type */typedef uint32MMI_IMAGE_ID_T;/*! image id type */typedef uint32MMI_ANIM_ID_T;/*! animation id type */typedef uint32MMI_RING_ID_T;/*! ring id type */typedef uint32MMI_COLOR_ID_T;/*! color id type */typedef uint32MMI_RECT_ID_T;/*! rect id type */typedef uint32MMI_DATA_ID_T;/*! data id type
17、 */typedef uint32MMI_MENU_GROUP_ID_T;/*! menu group id type */typedef uint32MMI_MENU_ID_T;/*! menu id type */typedef uint16MMI_MENU_TIP_T;/*! menu tip type */typedef uint32MMI_MESSAGE_ID_E;/*! message id type */typedef uint32MMI_WIN_ID_T;/*! window id type */typedef uint32MMI_CTRL_ID_T;/*! control i
18、d type */typedef uint32MMI_NV_ID_T;/*! nv id type */typedef uint32MMI_HANDLE_T;/*! handle type */typedef uint32 MMI_RESULT_E; 现在link #GUIMENU_STYLE_ICON endlink、link #GUIMENU_STYLE_OPTION_PAGE endlink、 link #GUIMENU_STYLE_TITLE_ICON endlink、link #GUIMENU_STYLE_SLIDE_PAGE endlink、 link #GUIMENU_STYLE
19、_CUBE endlink必须是静态菜单。- 动态菜单n 动态菜单的数据是用户通过控件提供的方法来插入的。n 现在主要弹出式的菜单用动态菜单。弹出式菜单和其它菜单不同,在创建的时候,弹出式菜单不需要使用CREATE_MENU_CTRL宏,也不需要依赖于窗口Table,无论是动态创建还是静态创建都是通过接口来实现的。-# MMIPOPMENU_CreateStatic 静态创建弹出式菜单-# MMIPOPMENU_CreateDynamic 动态创建弹出式菜单typedef struct guimenu_ctrl_tag CAF_VTBL_T(IGUICTRL_T) *vtbl_ptr; GUI
20、CTRL_DATA_MEMBER; MMI_HANDLE_T win_handle; /window handle GUIMENU_STATE_T menu_state; BOOLEAN is_static; /is static menu BOOLEAN is_focus_title; /title is focus for option page BOOLEAN is_set_font_color; /is set font color BOOLEAN is_transparent; /是否半透背景 BOOLEAN is_need_reset_rect; /是否需要重设区域 BOOLEAN
21、 is_active; / is active uint8 item_timer_id; /item timer id uint16 item_str_index; /item string start index uint16 menu_level; /menu level uint16 cur_page_index; /default 0,from 0 to max-1 uint16 cur_item_index; /current selected menu index. in option page style, it is also item index uint16 first_i
22、tem_index; /item index at the top uint16 end_item_index; /item index at the top int16 offset_y; /offset y int16 offset_x; /offset x uint16 pre_cur_item_index; /previous current index uint16 item_total_num; /current total visible item number. in option page style, it is page count. wchar title_wstrGU
23、IMENU_TITLE_MAX_LEN + 1; /for dynamic menu or volatile static menu title uint16 title_len; /for dynamic menu or volatile static menu title GUI_COLOR_T font_color; /font color GUIMENU_STYLE_E cur_style; /menu style GUIMENU_GROUP_T *cur_group_ptr; /current menu group info MMI_MENU_GROUP_ID_T cur_group
24、_id; /current menu group id GUIMENU_GROUP_INFO_T *cur_group_info_ptr; /current additional menu group info GUIMENU_GROUP_INFO_T *root_group_info_ptr; /additional menu group info memory GUIMENU_STATIC_ITEM_T *static_item_ptr; /text and image for static item GUIMENU_NODE_MEMORY_T node_memory; /dynamic
25、menu,node memory GUIMENU_NODE_T *root_node_ptr; /dynamic menu,root node pointer GUIMENU_NODE_T *cur_parent_node_ptr; /dynamic menu,current parent node pointer MMI_TEXT_ID_T dyna_softkey_idGUIMENU_BUTTON_MAX_NUM;/dynamic menu,softkey text id GUIMENU_STACK_T menu_stackGUIMENU_STACK_MAX_LEVEL; /menu st
26、ack info GUIMENU_POP_SELECT_LIST_T selected_list; /all selected item info only for pop-up radio/check menu BOOLEAN is_need_prgbox; /is need prgbox or not BOOLEAN is_revise_rect; /is need revise rect or not,当增加滚动条的时候,需要重新调整区域 GUIPRGBOX_CTRL_T *prgbox_ctrl_ptr; /progress box control pointer void *proc
27、ess_funcGUIMENU_STYLE_MAX; /menu process function MMITHEME_MENU_COMMON_T common_theme; /menu common theme MMITHEME_MAINMENU_T main_menu_theme; /main menu theme MMITHEME_SECONDMENU_T second_menu_theme; /second menu theme MMITHEME_POPMENU_T pop_menu_theme; /pop-up menu theme MMITHEME_OPTIONSMENU_T opt
28、ions_menu_theme; / options menu theme GUIMENU_MAINMENU_U main_menu_data; /主菜单的信息 GUIMENULIST_ITEM_T menu_list_info; /menu list information GUIMENULIST_ITEM_T menu_bar_info; /menu bar information BOOLEAN is_delete_state; /item是否在抖动 BOOLEAN is_move_state; /item是否在抖动 BOOLEAN is_moving; /item是否被拖动 BOOLE
29、AN is_empty_space; /tp up时,是否在item上 BOOLEAN is_item_pressed; /tp down时,是否在item上 BOOLEAN is_tp_pressed; /is tp down? BOOLEAN is_bar_item; /is bar item /BOOLEAN is_open_folder; /is open folder/#ifndef RUNTIME_DRAW_SUPPORT BOOLEAN is_press_without_moving;/ for compiler BOOLEAN is_press_in_folder_rect;
30、BOOLEAN is_opened_folder_from_bar; BOOLEAN is_temp_filefold_create; /是否建立了临时文件夹icon BOOLEAN opened_folder_is_bar_item; uint16 cur_folder_idx; /当前文件夹 int16 temp_filefold_index; / 文件夹形成时代index uint16 opened_folder_page_index; uint16 opened_folder_item_index; MMI_HANDLE_Tctrl_foldername_handle; GUIMENU
31、LIST_ITEM_INFO_T* cur_folder_ptr;/#endif /for istyle search BOOLEAN is_search_display; /search page data already exist BOOLEAN is_cur_pagesearch; /搜索页是不是当前页 BOOLEAN is_search_entry; /enter search page BOOLEAN is_search_listslide; /record list slide vertical or menu slide horizontalGUI_LCD_DEV_INFOtm
32、p_layer_handle;/temp layer handle uint16 tmp_cur_item_index; /移动的时候使用 uint16 tmp_first_item_index; /移动的时候使用 uint16 tmp_page_item_index; /移动到时候使用 BOOLEAN tmp_is_bar_item; /移动的时候使用 uint16 move_item_index; /移动的item项,用于给idle和删除用 uint16 tmp_width; /移动的时候使用 uint16 tmp_height; /移动的时候使用 GUI_RECT_T move_rect
33、; CONTINUE_MOVE_TYPE_E continue_move_type; / 连续移动的类型 uint8 tp_timer_id; / 为支持TP连续移动而加的timer uint8 start_move_timer_id; / 进入抖动状态的定时器 uint8 shake_icon_timer_id; / 进入抖动状态时,每次抖动的间隔 uint8 titleidx_timer_id; / title index显示的timer ID uint8 redrew_timer_id; / 滑动时,slide和fling状态下,画图的timer uint8 user_timer_id;
34、 / 应用自定义的timer BOOLEAN is_display_title; / 是否显示title BOOLEAN is_display_item_layer; / 是否画item layer的数据 GUI_LCD_DEV_INFO highlight_layer_handle; /高亮层 GUI_LCD_DEV_INFO icon_move_layer_handle; /图标移动层 MMK_TP_SLIDE_E slide_state; /current slide state MMK_TP_SLIDE_E tpdown_slide_state; /slide state when t
35、p down MMI_MENU_ID_T delete_menu_id; /组织状态下使用,要删除的menu_id GUI_POINT_T slide_start_point; /Slide时候使用 GUI_POINT_T slide_pre_point; /Slide时候使用 GUI_POINT_T pre_tp_point; /上一次tp move的坐标 GUI_LCD_DEV_INFO page_layer_handleGUIMENU_SLIDE_PAGE_NUM; /页面移动层1 GUI_LCD_DEV_INFO titleidx_layer_handle; / 页面索引层GUI_LC
36、D_DEV_INFOto_idle_layer_handle; /到主菜单图层 GUI_LCD_DEV_INFOdelete_layer_handle; /删除图层 GUIMENU_SOFTKEY_STATE_T softkey_state; /softkey的状态,目前只有主菜单使用 GUIMENU_ITEM_POS_INFO_T *item_pos_info_ptr; / 记录Item位置信息 GUI_LCD_DEV_INFO item_layer; / 二级菜单画item的层信息 / end / auto popup menu uint16 max_horz_width; / 菜单的横向
37、最大宽度,用于popupmenu_auto动态计算宽度时用 uint16 max_vert_width; / 菜单的纵向最大宽度,用于popupmenu_auto动态计算宽度时用 GUIMENU_EP_E effective_point; / 弹出的基点,用于popup_auto风格的菜单 / end / cube menu uint8 cube_back_timer_id; / 触笔按下时启动timer,时间到才启动移动状态 int16 cur_angle; / 当前角度 CUBEMENU_MODE_E cube_mode; / 立方体当前的模式 GUI_LCD_DEV_INFO cube_
38、layer_handle; / 立方体层 BOOLEAN is_page_scaled; / 页面是否被缩放缓存 GUI_RECT_T pre_cube_rect; / 上次立方体的区域 MMIMENU_SCALED_PAGE_T scaled_pageMMITHEME_MENUMAIN_SLIDE_PAGE_NUM; / 页面缩放缓存内存 MMIMENU_SCALED_PAGE_T *scaled_page_ptr2; / 指向当前显示的页面 /end float fling_velocity; /滑动速度 BOOLEAN is_first_disp; /是否第一次显示,在特效时使用;防止重新获得焦点时再次显示特效 GUIMENU_ENTER_ANIM_TYPE_E enter_anim_type; / 进入时的动画类型 uint16 pre_msg_loop_page_index; / 每次消息循环后,focus page index uint16 pre_msg_loop_item_index; / 每次消息循环后,focus项index uint16 pre_msg_loop_menu_level; / 每次
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024双人合伙商业店铺协议模板
- 2024年企业工程承包详细协议细则
- 德邦物流2024年专项快递服务协议
- 2024年度供应商保密义务协议
- 2023-2024学年浙江省嘉兴市高考数学试题考前三个月(江苏专版)
- 2024年战略采购合作协议模板
- 2024房屋权属更名补充协议
- 2024年产品委托加工协议文本
- 6.1圆周运动(含答案)-2022-2023学年高一物理同步精讲义(人教2019必修第二册 )
- 2024年制造业劳务承包基本协议格式
- 绵阳市高中2022级(2025届)高三第一次诊断性考试(一诊)语文试卷(含答案)
- 自然资源调查监测劳动和技能竞赛
- 2 0 2 4 年 7 月 国开专科《法理学》期末纸质考试 试题及答案
- 6.1 我对谁负责 谁对我负责 课件-2024-2025学年统编版道德与法治八年级上册
- 2023-2024学年天津市经开区国际学校八年级(上)期末物理试卷
- DB23T 3842-2024 一般化工企业安全生产标准化评定规范
- 期中模拟押题卷(1-3单元)(试题)-2024-2025学年苏教版数学六年级上册
- 环氧树脂项目可行性研究报告项目报告
- 公共政策分析第一章
- 2024-2025学年人教版数学三年级上册 第三单元 测量 单元测试卷(含答案)
- 2024新信息科技三年级第四单元:创作数字作品大单元整体教学设计
评论
0/150
提交评论