Example #1
0
/*****************************************************************************
 * FUNCTION
 *  wgui_show_mini_tab_bar
 * DESCRIPTION
 *  Display the mini tab bar
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void wgui_show_mini_tab_bar(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 idx = 0;
    S32 x1, x2, y1, y2;
    color_t bg_color, selected_color, normal_color;
    U16 bar_width, bar_height;
    U16 cell_width, cell_pad = 2, cell_count;
    U16 left_pad;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    x1 = wgui_mini_tab_bar.x;
    x2 = wgui_mini_tab_bar.x + wgui_mini_tab_bar.width - 1;
    y1 = wgui_mini_tab_bar.y;
    y2 = wgui_mini_tab_bar.y + wgui_mini_tab_bar.height - 1;
    cell_count = wgui_mini_tab_bar.num_of_items;
    bar_width = wgui_mini_tab_bar.width;
    bar_height = wgui_mini_tab_bar.height;
    bg_color = wgui_mini_tab_bar.bg_color;
    selected_color = wgui_mini_tab_bar.selected_item_color;
    normal_color = wgui_mini_tab_bar.normal_item_color;

    cell_width = (bar_width - cell_pad * (cell_count + 1)) / cell_count;
    left_pad = (bar_width - (cell_width * cell_count) - (cell_pad * (cell_count - 1))) >> 1;

    gdi_draw_solid_rect(x1, y1, x2, y2, GDI_COLOR_BLACK);//bg_color);

    for (idx = 0; idx < cell_count; idx++)
    {
        if (idx == wgui_mini_tab_bar.curr_index)    /* selected item */
        {
            gdi_draw_solid_rect(
                left_pad + (cell_pad + cell_width) * idx,
                y1 + 1,
                left_pad + cell_pad * idx + cell_width * (idx + 1),
                y2 - 1,
                GDI_COLOR_BLUE);//selected_color);
        }
        else    /* normal item */
        {
            gdi_draw_solid_rect(
                left_pad + (cell_pad + cell_width) * idx,
                y1 + 1,
                left_pad + cell_pad * idx + cell_width * (idx + 1),
                y2 - 1,
               GDI_COLOR_GREEN);// normal_color);
        }
    }

}
/*****************************************************************************
 * FUNCTION
 *  vs_tfw_draw_softkey
 * DESCRIPTION
 *  find the first case
 * PARAMETERS
 *  key_type        [IN]        
 *  key_content     [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void avk_framework_draw_softkey(U16 key_type, U16 key_content)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S32 x =0 , y, str_w, str_h;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    gui_set_font(&MMI_medium_font);
    gui_set_text_color(gui_color(255, 255, 255));
    gui_measure_string((PU16) GetString(key_content), &str_w, &str_h);
    y = LCD_HEIGHT - (AVK_FRAMEWORK_SOFTKEY_HEIGHT - str_h/2);
    if (key_type == KEY_LSK)
    {
        x = (AVK_FRAMEWORK_SOFTKEY_WIDTH - str_w)/2;
        gdi_draw_solid_rect(0, LCD_HEIGHT - AVK_FRAMEWORK_SOFTKEY_HEIGHT, AVK_FRAMEWORK_SOFTKEY_WIDTH, LCD_HEIGHT, GDI_COLOR_BLACK);
    }
    else if (key_type == KEY_RSK)
    {
        x = LCD_WIDTH - (AVK_FRAMEWORK_SOFTKEY_WIDTH + str_w)/2;
        gdi_draw_solid_rect(
            LCD_WIDTH - AVK_FRAMEWORK_SOFTKEY_WIDTH,
            LCD_HEIGHT - AVK_FRAMEWORK_SOFTKEY_HEIGHT,
            LCD_WIDTH,
            LCD_HEIGHT,
            GDI_COLOR_BLACK);
    }
    
    gui_move_text_cursor(x, y);
    gui_print_bordered_text((PU16) GetString(key_content));
#ifdef __MMI_TOUCH_SCREEN__    
	mmi_pen_register_down_handler(avk_framework_pen_down_hdlr);
#endif	    
}
void avk_framework_draw_title(WCHAR* title)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S32 x, y, str_w, str_h;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    gdi_draw_solid_rect(0, 0, LCD_WIDTH, AVK_FRAMEWORK_SOFTKEY_HEIGHT, GDI_COLOR_BLACK);

    gui_set_font(&MMI_medium_font);
    gui_set_text_color(gui_color(255, 255, 255));
    gui_measure_string((PU16)title, &str_w, &str_h);
    x = (LCD_WIDTH - str_w)/2;
    y = (AVK_FRAMEWORK_SOFTKEY_HEIGHT - str_h)/2;
    gui_move_text_cursor(x, y);
    gui_print_text((PU16)title);

}
static S32 mmi_em_profiling_gdi_misc_speed_sw_fill_rect(void *v_param)
{
    static const U32 PROFILING_MS = 4000;
    gdi_handle layer;
    S32 i;
    U32 start_time, duration;
    mmi_em_profiling_gdi_misc_speec_fill_rect_param *param =
        (mmi_em_profiling_gdi_misc_speec_fill_rect_param*)v_param;
    kal_int32 fill_x, fill_y, fill_width, fill_height;
    gdi_color fill_color;

    layer = mmi_em_profiling_gdi_create_layer(
        param->layer.cf, param->layer.x, param->layer.y, param->layer.width, param->layer.height);
    if (layer == 0)
    {
        return -1;
    }
    
    gdi_layer_push_and_set_active(layer);
    gdi_layer_clear(GDI_COLOR_BLACK);
    gdi_layer_pop_and_restore_active();

    fill_x = param->fill.x;
    fill_y = param->fill.y;
    fill_width = param->fill.width;
    fill_height = param->fill.height;
    fill_color = gdi_cf_get_color(param->layer.cf, 255, 255, 255, 255);

    gdi_layer_push_and_set_active(layer);

    MMI_TRACE(MMI_COMMON_TRC_INFO, TRC_APP_EM_PROFILING_GDI_FRECT_START);

    start_time = drv_get_current_time();
    i = 0;
    do
    {
        do 
        {
            gdi_draw_solid_rect(
                fill_x, fill_y, fill_width, fill_height, fill_color);
            i++;
        }
        while ((i & 0xf) != 0); /* Calculate duration every 16 iterations */

        duration = drv_get_duration_ms(start_time);
    }
#ifdef __MTK_TARGET__
    while (duration < PROFILING_MS);
#else
    while (0);
#endif

    MMI_TRACE(MMI_COMMON_TRC_INFO, TRC_APP_EM_PROFILING_GDI_FRECT_END, param->id, i, duration);

    gdi_layer_pop_and_restore_active();

    gdi_layer_blt(
        layer,
        0,
        0,
        0,
        0,
        0,
        GDI_LCD_WIDTH - 1,
        GDI_LCD_HEIGHT - 1);

    mmi_em_profiling_gdi_free_layer(layer);

    return 0;
}