mt2503 横竖屏旋转项目的做法
时间:10-02
整理:3721RD
点击:
[Description]
横竖屏旋转项目的做法,适用于Pluto project
[Solution]
1. 打开宏 __MMI_SCREEN_ROTATE__
2 . 在 custcoordinates.c 文件里确定旋转坐标集。
Ex: category33screen
#if defined(__MMI_SCREEN_ROTATE__)
const S16 rotated_coordinate_set33[] =
{
DM_FULL_SCREEN_COORDINATE_FLAG,
DM_FULL_SCREEN_COORDINATE_FLAG,
0, 0, MMI_ROTATED_LCD_WIDTH - MMI_ROTATED_BUTTON_BAR_HEIGHT,
MMI_ROTATED_LCD_HEIGHT, DM_NO_FLAGS,
#if defined (__MMI_IDLE_FULL_SCREEN__) && (!defined
(__MMI_OP12_CAT533_SUPPORT__))
0,MMI_ROTATED_LCD_HEIGHT-MMI_ROTATED_BUTTON_BAR_HEIGHT,
MMI_ROTATED_LCD_WIDTH, MMI_ROTATED_BUTTON_BAR_HEIGHT,
DM_BUTTON_DISABLE_BACKGROUND, MMI_ROTATED_SOFTKEY_WIDTH
#else /* defined (__MMI_IDLE_FULL_SCREEN__) */
DM_DEFAULT_BUTTON_BAR_FLAG, MMI_ROTATED_SOFTKEY_WIDTH,
#endif /* defined (__MMI_IDLE_FULL_SCREEN__) */
};
#endif
3. 修改 g_categories_controls_map
Ex: category33screen
#if defined(__MMI_SCREEN_ROTATE__)
{MMI_CATEGORY33_ID, (U8 *) category33, (S16 *) coordinate_set33, (S16*)
rotated_coordinate_set33},
#else
{MMI_CATEGORY33_ID, (U8 *) category33, (S16 *) coordinate_set33, NULL},
#endif
在第一步开 __MMI_SCREEN_ROTATE__ 中该宏的依赖条件中可以看出该宏不支持
MAIN_LCD_128*128 以及 MAIN_LCD_128*160
如果这两个小尺寸的屏幕坚持要有屏幕旋转功能,可尝试强制开此宏,
然后依据编译报错信息在 Wgui.h 里为相应的小屏定义一套基本的旋转宏。
4. 在 showcategory 前调用 mmi_frm_screen_rotate(mmi_frm_screen_rotate_enum
rotation) 确定旋转度数
Ex: category33screen
mmi_frm_screen_rotate(mmi_frm_screen_rotate_270);
ShowCategory33Screen(…………………………….);
横竖屏旋转项目的做法,适用于Pluto project
[Solution]
1. 打开宏 __MMI_SCREEN_ROTATE__
2 . 在 custcoordinates.c 文件里确定旋转坐标集。
Ex: category33screen
#if defined(__MMI_SCREEN_ROTATE__)
const S16 rotated_coordinate_set33[] =
{
DM_FULL_SCREEN_COORDINATE_FLAG,
DM_FULL_SCREEN_COORDINATE_FLAG,
0, 0, MMI_ROTATED_LCD_WIDTH - MMI_ROTATED_BUTTON_BAR_HEIGHT,
MMI_ROTATED_LCD_HEIGHT, DM_NO_FLAGS,
#if defined (__MMI_IDLE_FULL_SCREEN__) && (!defined
(__MMI_OP12_CAT533_SUPPORT__))
0,MMI_ROTATED_LCD_HEIGHT-MMI_ROTATED_BUTTON_BAR_HEIGHT,
MMI_ROTATED_LCD_WIDTH, MMI_ROTATED_BUTTON_BAR_HEIGHT,
DM_BUTTON_DISABLE_BACKGROUND, MMI_ROTATED_SOFTKEY_WIDTH
#else /* defined (__MMI_IDLE_FULL_SCREEN__) */
DM_DEFAULT_BUTTON_BAR_FLAG, MMI_ROTATED_SOFTKEY_WIDTH,
#endif /* defined (__MMI_IDLE_FULL_SCREEN__) */
};
#endif
3. 修改 g_categories_controls_map
Ex: category33screen
#if defined(__MMI_SCREEN_ROTATE__)
{MMI_CATEGORY33_ID, (U8 *) category33, (S16 *) coordinate_set33, (S16*)
rotated_coordinate_set33},
#else
{MMI_CATEGORY33_ID, (U8 *) category33, (S16 *) coordinate_set33, NULL},
#endif
在第一步开 __MMI_SCREEN_ROTATE__ 中该宏的依赖条件中可以看出该宏不支持
MAIN_LCD_128*128 以及 MAIN_LCD_128*160
如果这两个小尺寸的屏幕坚持要有屏幕旋转功能,可尝试强制开此宏,
然后依据编译报错信息在 Wgui.h 里为相应的小屏定义一套基本的旋转宏。
4. 在 showcategory 前调用 mmi_frm_screen_rotate(mmi_frm_screen_rotate_enum
rotation) 确定旋转度数
Ex: category33screen
mmi_frm_screen_rotate(mmi_frm_screen_rotate_270);
ShowCategory33Screen(…………………………….);