⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wgui_draw_manager.c

📁 MTK6226修改平台UI的文件介绍
💻 C
📖 第 1 页 / 共 5 页
字号:
void (*dm_category_controlled_area2_callback) (dm_coordinates *coordinate);

#ifdef __MMI_SUBLCD__
void (*dm_sub_category_controlled_area_callback) (dm_coordinates *coordinate);
#endif 
/***************************************************************************** 
* Global Function
*****************************************************************************/
S16 *dm_get_coordinates(S16 *UICtrlAccessPtr_p, dm_coordinates *dm_coordinate_info);

/***************************************************************************** 
* Extern Global Variable
*****************************************************************************/
#ifdef __MMI_STOPWATCH__
extern wtchSkinResStruct wtch_pos;
extern S32 stop_watch_x, stop_watch_y, stop_watch_width;
#endif /* __MMI_STOPWATCH__ */ 
extern S32 wgui_EMS_inputbox_information_bar_height;

extern U8 matrix_main_menu_highlight_bitmap_data[];
extern const U8 dm_base_control_set[];
extern const S16 dm_base_control_set_coordinates[];
extern icontext_button MMI_softkeys[];
extern BOOL r2lMMIFlag;

//extern MMI_ID_TYPE idle_screen_wallpaper_ID;    /* 061705 Calvin added */
//extern S8 *idle_screen_wallpaper_name;
extern MMI_ID_TYPE idle_screen_cache_id;    /* 073106 cache wallpaper */
extern S8 *idle_screen_cache_name;

/* Calendar Extern Variables */
extern S32 cat82_title1_x1;
extern S32 cat82_title1_y1;
extern S32 cat82_title1_x2;
extern S32 cat82_title1_y2;
extern S32 cat82_title2_x1;
extern S32 cat82_title2_y1;
extern S32 cat82_title2_x2;
extern S32 cat82_title2_y2;
extern S32 cat82_title3_x1;
extern S32 cat82_title3_y1;
extern S32 cat82_title3_x2;
extern S32 cat82_title3_y2;
extern pBOOL calendar_show_title2;
extern pBOOL calendar_show_title3;

#ifdef __MMI_UI_CALENDAR_WITH_INFO_BOX__
extern S32 cat82_title1_month_x1;
extern S32 cat82_title1_month_y1;
extern S32 cat82_title1_month_x2;
extern S32 cat82_title1_month_y2;
extern pBOOL calendar_show_title_month;
extern BOOL lunar_calendar_present;
#endif /* __MMI_UI_CALENDAR_WITH_INFO_BOX__ */ 
extern U8 *Cat82_title1;
extern U8 *Cat82_title2;
extern U8 *Cat82_title3;
extern stFontAttribute wgui_dialer_box_f1;
extern UI_font_type calendar_title_font;

#ifdef __MMI_UI_CALENDAR_WITH_INFO_BOX__
extern U8 *Cat82_title1_month;
extern UI_font_type calendar_title_month_font;
#endif /* __MMI_UI_CALENDAR_WITH_INFO_BOX__ */ 

extern UI_filled_area wgui_pop_up_dialog_background;
extern gdi_handle wgui_layer_1;

extern multitap_input MMI_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_lowercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_bpmf_multitaps[MAX_MULTITAPS];

#if defined(__MMI_MULTITAP_SPANISH__)
extern multitap_input MMI_spanish_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_spanish_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_SPANISH__) */ 
#if defined(__MMI_MULTITAP_FRENCH__)
extern multitap_input MMI_french_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_french_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_FRENCH__) */ 
#if defined(__MMI_MULTITAP_GERMAN__)
extern multitap_input MMI_german_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_german_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_GERMAN__) */ 
#if defined(__MMI_MULTITAP_ITALIAN__)
extern multitap_input MMI_italian_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_italian_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_ITALIAN__) */ 
/* PMT CZ_PO_TU START 20050812 */
#if defined(__MMI_MULTITAP_POLISH__)
extern multitap_input MMI_polish_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_polish_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_POLISH__) */ 
//PMT CZ_PO_TU END 20050812     
//PMT CZ_PO_TU START 20050812   
#if defined(__MMI_MULTITAP_CZECH__)
extern multitap_input MMI_czech_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_czech_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_CZECH__) */ 
//PMT CZ_PO_TU END 20050812     
//PMT CZ_PO_TU START 20050812   
#if defined(__MMI_MULTITAP_TURKISH__)
extern multitap_input MMI_turkish_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_turkish_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_TURKISH__) */ 
//PMT CZ_PO_TU END 20050812     
// PMT BHASKAR START 20052907

#if defined(__MMI_MULTITAP_VIETNAMESE__)
extern multitap_input MMI_vietnamese_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_vietnamese_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_VIETNAMESE__) */ 

#if defined(__MMI_MULTITAP_INDONESIAN__)
extern multitap_input MMI_indonesian_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_indonesian_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_INDONESIAN__) */ 

#if defined(__MMI_MULTITAP_DANISH__)
extern multitap_input MMI_danish_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_danish_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_DANISH__) */ 

#if defined(__MMI_MULTITAP_PORTUGUESE__)
extern multitap_input MMI_portuguese_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_portuguese_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_PORTUGUESE__) */ 
/* PMT START HU_FI 20050825 */
#if defined(__MMI_MULTITAP_FINNISH__)
extern multitap_input MMI_finnish_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_finnish_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_FINNISH__) */ 
//PMT END HU_FI 20050825
//PMT NO_AR_SL_DU START 20050909
#if defined(__MMI_MULTITAP_SLOVAK__)
extern multitap_input MMI_slovak_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_slovak_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_SLOVAK__) */ 
/* START DUTCH_T9 20051021 */
#if defined(__MMI_MULTITAP_DUTCH__)
extern multitap_input MMI_dutch_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_dutch_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_DUTCH__) */ 
//END DUTCH_T9 20051021
//PMT BULGARIAN START 20051201
#if defined(__MMI_MULTITAP_BULGARIAN__)
extern multitap_input MMI_bulgarian_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_bulgarian_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_BULGARIAN__) */ 
/* PMT BULGARIAN END 20051201 */
#if defined(__MMI_MULTITAP_ARABIC__)
extern multitap_input MMI_arabic_multitaps[MAX_MULTITAPS];
#endif 
/* PMT START PERSIAN */
#if defined(__MMI_MULTITAP_PERSIAN__)
extern multitap_input MMI_persian_multitaps[MAX_MULTITAPS];
#endif 
//PMT END PERSIAN
/* Norwegian start */
#if defined(__MMI_MULTITAP_NORWEGIAN__)
extern multitap_input MMI_norwegian_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_norwegian_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_NORWEGIAN__) */ 
//Norwegian end
//PMT NO_AR_SL_DU END 20050909
//PMT START SWEDISH 20050916
#if defined(__MMI_MULTITAP_SWEDISH__)
extern multitap_input MMI_swedish_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_swedish_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_SWEDISH__) */ 
//PMT END SWEDISH 20050916
//PMT START CR_ROM_SLO 20050923
#if defined(__MMI_MULTITAP_CROATIAN__)
extern multitap_input MMI_croatian_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_croatian_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_CROATIAN__) */ 
#if defined(__MMI_MULTITAP_ROMANIAN__)
extern multitap_input MMI_romanian_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_romanian_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_ROMANIAN__) */ 
#if defined(__MMI_MULTITAP_SLOVENIAN__)
extern multitap_input MMI_slovenian_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_slovenian_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_SLOVENIAN__) */ 
//PMT END CR_ROM_SLO 20050923
//PMT START GR_HE_CZ_FI_DA_HU 20051007
#if defined(__MMI_MULTITAP_GREEK__)
extern multitap_input MMI_greek_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_greek_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_GREEK__) */ 
#if defined(__MMI_MULTITAP_HUNGARIAN__)
extern multitap_input MMI_hungarian_uppercase_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_hungarian_lowercase_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_MULTITAP_HUNGARIAN__) */ 
/* PMT END GR_HE_CZ_FI_DA_HU 20051007 */
#if defined(__MMI_WCSS_INPUT_FORMAT_SUPPORT__)
extern multitap_input MMI_uppercase_numberless_multitaps[MAX_MULTITAPS];
extern multitap_input MMI_lowercase_numberless_multitaps[MAX_MULTITAPS];
#endif /* defined(__MMI_WCSS_INPUT_FORMAT_SUPPORT__) */ 

/***************************************************************************** 
* Extern Global Function
*****************************************************************************/
extern void (*redraw_current_inline_item) (void);
extern S32 dm_get_coordinate_sets_count(void);
extern S32 dm_get_control_sets_count(void);
extern U8 *dm_get_base_control_set(void);
extern S16 *dm_get_base_coordinate_set(void);
extern U8 *dm_get_base_control_set2(void);
extern S16 *dm_get_base_coordinate_set2(void);

extern void set_calendar_control_background_limits(S32 y1, S32 y2);
extern void set_button_bar_height(S32 height);
extern void wgui_reset_calendar_params(S32 x, S32 y, S32 n_columns, S32 n_rows, S32 cell_width, S32 cell_height);
extern void wgui_show_calendar(void);
extern void ChangeCategory82Title1(U8 *title);
extern void ChangeCategory82Title2(U8 *title);
extern void ChangeCategory82Title3(U8 *title);
extern void category151_keyboard_handler(S32 vkey_code, S32 key_state);
extern void UI_cross_hatch_fill_rectangle(S32 x1, S32 y1, S32 x2, S32 y2, color c);
extern MMI_BOOL get_singleline_inputbox_display_status(void);
extern MMI_BOOL is_multiline_inputbox_in_view_mode(void);
extern MMI_BOOL is_EMS_inputbox_in_view_mode(void);

#ifdef __MMI_UI_CALENDAR_WITH_INFO_BOX__
extern void ChangeCategory82Title1Month(U8 *title);
#endif 
#ifdef __MMI_STOPWATCH__
extern void get_stop_watch_history(U16 history_ID, U8 *history_buffer);
#endif 


/*****************************************************************************
 * FUNCTION
 *  dm_init
 * DESCRIPTION
 *  initialize variables used in draw manager.
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void dm_init(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 idx = 0;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    for (idx = 0; idx < GDI_LAYER_TOTAL_LAYER_COUNT; idx++)
    {
        dm_layers[idx] = GDI_ERROR_HANDLE;
    }

    /* Draw Manager context */
    g_dm_cntx.redraw_screen_main = NORMAL_EXIT;
    g_dm_cntx.redraw_scr_bg_flag = 1;
    g_dm_cntx.lock_redraw_main = 0;
    g_dm_cntx.exit_full_screen_on_exit = 0;
    g_dm_cntx.is_context_reset = 1;
#ifdef __MMI_SUBLCD__
    g_dm_cntx.redraw_screen_sub = NORMAL_EXIT;
    g_dm_cntx.lock_redraw_sub = 0;
#endif /* __MMI_SUBLCD__ */ 

    /* Draw Manager Screen Background Layer Context */
    g_dm_scr_bg_cntx.layer_handle = GDI_ERROR_HANDLE;
    /* g_dm_scr_bg_cntx.animation_handle=GDI_ERROR_HANDLE; */
    g_dm_scr_bg_cntx.image_id = 0;
    g_dm_scr_bg_cntx.image_name = NULL;
    g_dm_scr_bg_cntx.offset_x = -1;
    g_dm_scr_bg_cntx.offset_y = -1;
    g_dm_scr_bg_cntx.layer_opacity = 150;
    g_dm_scr_bg_cntx.flags = 0;//082906 scr_bg

    /* Reset all images */
    for (idx = 0; idx < dm_image_count; idx++)
    {
        dm_image_array[idx].back_fill = NULL;
        dm_image_array[idx].image = NULL;
        dm_image_array[idx].name = NULL;
        if (dm_image_array[idx].image_handle != GDI_ERROR_HANDLE)
        {
            gdi_image_stop_animation(dm_image_array[idx].image_handle);
            dm_image_array[idx].image_handle = GDI_ERROR_HANDLE;
        }
    }
    dm_image_count = 0;

    dm_string_count = 0;
    dm_back_fill_count = 0;
    dm_rectangle_count = 0;
    dm_line_count = 0;
    dm_slide_control_count = 0;
    dm_scroll_text_count = 0;
    dm_current_scroll_text = NULL;
    dm_button_count = 0;

#ifdef __MMI_SUBLCD__
    /* Reset all images */
    for (idx = 0; idx < dm_image_count_sub; idx++)
    {
        dm_image_array_sub[idx].back_fill = NULL;
        dm_image_array_sub[idx].image = NULL;
        dm_image_array_sub[idx].name = NULL;
        if (dm_image_array_sub[idx].image_handle != GDI_ERROR_HANDLE)
        {
            gdi_image_stop_animation(dm_image_array_sub[idx].image_handle);
            dm_image_array_sub[idx].image_handle = GDI_ERROR_HANDLE;
        }
    }
    dm_image_count_sub = 0;
    dm_string_count_sub = 0;
#endif /* __MMI_SUBLCD__ */ 
}


/*****************************************************************************
 * FUNCTION
 *  dm_reset_context
 * DESCRIPTION
 *  reset variables used in draw manager.
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void dm_reset_context(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (g_dm_cntx.is_context_reset == MMI_FALSE)
    {
        U8 idx = 0;

        /* Reset screen background layer */
        dm_set_scr_bg_redraw(MMI_TRUE);
        g_dm_scr_bg_cntx.layer_handle = GDI_ERROR_HANDLE;

        /* Reset Layer information */
        /* MainLCD */
        if (!(g_dm_data.s32flags & DM_SUB_LCD_CONTEXT))
        {
            for (idx = 0; idx < dm_layers_count; idx++)
            {
                if (dm_layers[idx] != GDI_LAYER_MAIN_BASE_LAYER_HANDLE && dm_layers[idx] != wgui_layer_1
                    && dm_layers[idx] != GDI_ERROR_HANDLE && dm_layers[idx] != GDI_LAYER_EMPTY_HANDLE)
                {
                    gdi_layer_free(dm_layers[idx]);
                }
                dm_layers[idx] = GDI_ERROR_HANDLE;
            }
            dm_layers_count = 0;
        }
        dm_wallpaper_layer = GDI_ERROR_HANDLE;

        /* can be removed */
        gdi_layer_push_and_set_active(GDI_LAYER_MAIN_BASE_LAYER_HANDLE);
        /* gdi_layer_set_source_key(FALSE,GDI_COLOR_TRANSPARENT); */
        gdi_layer_pop_and_restore_active();

        if (g_dm_cntx.redraw_screen_main == REDRAW_2_SHOW)
        {
            return;
        }

        /* Reset all images */
        for (idx = 0; idx < dm_image_count; idx++)
        {
            dm_image_array[idx].back_fill = NULL;
            dm_image_array[idx].image = NULL;
            dm_image_array[idx].name = NULL;
            if (dm_image_array[idx].image_handle != GDI_ERROR_HANDLE)
            {
                gdi_image_stop_animation(dm_image_array[idx].image_handle);
                dm_image_array[idx].image_handle = GDI_ERROR_HANDLE;
            }
        }

        for (idx = 0; idx < dm_scroll_text_count; idx++)
        {
            gui_scrolling_text_stop(&(dm_scroll_text[idx]));
        }
        dm_image_count = 0;

        dm_string_count = 0;
        dm_back_fill_count = 0;
        dm_rectangle_count = 0;
        dm_line_count = 0;
        dm_slide_control_count = 0;
        dm_scroll_text_count = 0;
        dm_current_scroll_text = NULL;
        dm_button_count = 0;
        dm_percentage_bar_count = 0;
        dm_panel_count = 0;

        /* Reset default pen handlers */
    #ifdef __MMI_TOUCH_SCREEN__
        wgui_reset_category_screen_control_pen_handler();
        wgui_reset_image_control_pen_handler();
    #endif /* __MMI_TOUCH_SCREEN__ */ 

        dm_reset_category_controlled_callback();
        dm_reset_button_functions();

        /* Can be removed -start */
        dm_reset_title_coordinates();
        dm_reset_fixed_list_coordinates();
        dm_reset_inline_fixed_list_coordinates();
        dm_reset_lsk_coordinates();
        dm_reset_rsk_coordinates();
        dm_reset_button_bar_coordinates();
        /* Can be removed -end */

        dm_show_vkpad_callback = NULL;

    #ifdef __MMI_SCREEN_ROTATE__
        /* Reset the background image set by rotated screen */
        if (mmi_frm_is_screen_width_height_swapped())
        {
            g_dm_scr_bg_cntx.image_id = 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -