当前位置:首页 > MTK开发参考MTK - Dev - Guide
4.4 note
We just read all the titles of messages into list when we browse the message list, but not all the message bodies because the data size may too large.
We read one message body into RAM when we enter the message body screen.
wgui_categories_inputs.c
wgui_EMS_inputbox_input_type
wgui_EMS_inputbox_input_mode_changed ;
wgui.c
S32 MMI_status_bar_height; S32 MMI_content_x; S32 MMI_content_y; S32 MMI_content_width; S32 MMI_content_height;
wgui_categories_util.c
MMI_title_string = (UI_string_type) get_string(title); MMI_title_icon = (PU8) get_image(title_icon);
smscore.c
2个有关ems输入和显示的全局变量: static msg_ems_data_struct bufForDisplay; static msg_ems_data_struct bufForEdit; 这个是这2个全局变量的外部接口:
EMSData *GetEMSDataForEdit(EMSData **p, U8 force)
MMI_current_input_box_type = EDITOR_EMS_INPUT_BOX
test_change_input_mode
gdi_layer.c
GDI_LCD is a global value to control the gdi context gdi_layer_lock_frame_buffer();
wgui_categories_util.c
UI_common_screen_exit? ExitCategoryFunction
13
event.c
U8 EntryNewScreen(U16 newscrnID, FuncPtr newExitHandler, FuncPtr newEntryHandler, void *peerBuf)
static FuncPtr currEntryFuncPtr;
static U16 currExitScrnID, currTopScrnID; /* curr exit func ptr with scrn id */ static FuncPtr currExitFuncPtr;
typedef enum { KEY_0= 0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9,
KEY_LSK, KEY_RSK, KEY_UP_ARROW, KEY_DOWN_ARROW, KEY_LEFT_ARROW, KEY_RIGHT_ARROW, KEY_SEND, KEY_END, KEY_CLEAR, KEY_STAR, KEY_POUND,
KEY_VOL_UP, KEY_VOL_DOWN, KEY_QUICK_ACS, KEY_CAMERA KEY_ENTER, KEY_WAP KEY_IP
MAX_KEYS,
KEY_INVALID
} mmi_keypads_enum;
= KEY_QUICK_ACS,
=KEY_ENTER, =KEY_ENTER,
/* max key codes support */
=0xFE// 255 /* By JL, to sync with driver */
14
typedef enum {
KEY_EVENT_DOWN, KEY_EVENT_UP, KEY_LONG_PRESS, KEY_REPEAT, MAX_KEY_TYPE
} mmi_key_types_enum;
FuncPtr currKeyFuncPtrs[MAX_KEYS][MAX_KEY_TYPE];
#define GDI_ENTER_CRITICAL_SECTION(func) GDI_LOCK; {int gdi_mutex_level = gdi_mutex.cnt;
#define GDI_EXIT_CRITICAL_SECTION(func) GDI_ASSERT(gdi_mutex_level == gdi_mutex.cnt);} GDI_UNLOCK;
wgui_ems.c
wgui_EMS_redraw_input_information_bar wgui_EMS_show_input_mode
wgui_EMS_redraw_remaining_characters_display
use this register function to register control_area_callback dm_register_category_controlled_callback
wgui_categories.c
ShowCategory66Screen
This category is special because it‘s redraw function will be called repeatedly if this category is being on show.
For a category:
ShowCategoryScreen ExitCategoryScreen
dm:draw manager
dm_setup_and_draw_ems_inputbox ?
15
move_EMS_inputbox (0, 120); MMI_multitap_height = 17 resize_EMS_inputbox(176, 63); hide_multitap
gui_show_EMS_input_box_ext
MMI_multitap_height is for the softkeyboard under the input text.
scroll bar:
void gui_set_vertical_scrollbar_scale(vertical_scrollbar *v, S32 scale) : length
void gui_set_vertical_scrollbar_range(vertical_scrollbar *v, S32 range) : total length void gui_set_vertical_scrollbar_value(vertical_scrollbar *v, S32 value) : position
void gui_move_vertical_scrollbar(vertical_scrollbar *v, S32 x, S32 y) void gui_show_vertical_scrollbar(vertical_scrollbar *v)
从ems中取出输入的数据: EMSData *pEMS;
GetEMSDataForEdit(&pEMS, 0);
5 screen管理
5.1 U8 GoBackToHistory(U16 scrnid)
回到history中的某个screen,返回值:0 失败,1 成功
入栈操作为:historyData[++currHistoryIndex] = data;currHistoryIndex 初始值为-1
16
共分享92篇相关文档