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

📄 mmimt_pubwin.c

📁 展讯平台的mtue源代码, 全面,精简,仅供学习, 商用后果自负
💻 C
字号:
/*****************************************************************************
** File Name:                                                                *
** Author:                                                                   *
** Date:           2007/07/08                                                *
** Copyright:      2007 MTONE, Inc. All Rights Reserved.                     *
** Description:                                                              *
******************************************************************************
**                         Important Edit History                            *
** --------------------------------------------------------------------------*
** DATE           NAME             DESCRIPTION                               *
** 2007/07/08                      Create                                    *
*****************************************************************************/
#ifdef MMI_MTUNE
#include "mmipub.h"
#include "mmk_type.h"
#include "guianim.h"
#include "guitextbox.h"
#include "mmk_timer.h"
#include "guicommon.h"
#include "guilabel.h"  
#include "guilcd.h"
#include "mmidisplay_data.h"
#include "guilcd.h"
#include "guisoftkey.h"

#include "mmimt_pubwin.h"

#include "mtune_text.h"

#include "mmimt_id.h"

#include "../mtdef.h"

#define MTVAR_REF
#include "../mt_var.h"
#include "../mt_var.def"


////////////////////////////////////////////////////////////////
///-----Local
#ifdef MTUNE_LCD_176_220
#define ALERT_TEXT_AREA_RECT     {80,140,172,160}//{14,90,104,105}
#else
#define ALERT_TEXT_AREA_RECT   MMI_PROMPT_TEXT_RECT
#endif

#define QUERY_TEXT_AREA_RECT    ALERT_TEXT_AREA_RECT

extern MMI_APPLICATION_T   g_main_app;


LOCAL void SetSoftkey(
                    MMIPUB_INFO_T      *win_param_ptr
                    )
{
    MMI_TEXT_ID_T left_sk_text_id;
    MMI_TEXT_ID_T right_sk_text_id;
    MMIPUB_SOFTKEY_STYLE_E softkey_type;
    GUI_RECT_T softkey_rect = {0, MMI_MAINSCREEN_HEIGHT - MMI_FULLSCREEN_SOFTKEY_BAR_HEIGHT, 
                                 MMI_MAINSCREEN_RIGHT_MAX_PIXEL,MMI_MAINSCREEN_BOTTOM_MAX_PIXEL};

    SCI_ASSERT(PNULL != win_param_ptr);
    softkey_type = win_param_ptr->softkey_style;

    SCI_ASSERT(softkey_type < MMIPUB_SOFTKEY_MAX);
    if ((softkey_type != MMIPUB_SOFTKEY_CUSTOMER) && (softkey_type != MMIPUB_SOFTKEY_NONE))
    {
        switch (softkey_type)
        {
        case MMIPUB_SOFTKEY_OKCANCEL:
            left_sk_text_id = STXT_OK;
            right_sk_text_id = STXT_EXIT;
            break;

        case MMIPUB_SOFTKEY_OKEXIT:
            left_sk_text_id = STXT_OK;
            right_sk_text_id = STXT_CANCEL;
            break;

        case MMIPUB_SOFTKEY_ONE:
            left_sk_text_id = 0;
            right_sk_text_id = STXT_EXIT;
            break;

        default:
            SCI_ASSERT(FALSE);            
        }    

        win_param_ptr->softkey_id[0] = left_sk_text_id;
        win_param_ptr->softkey_id[1] = right_sk_text_id;
    }

}

LOCAL  BOOLEAN CreateLabelCtrl(
						MMI_COMMON_WINDOW_ID_E     win_id,
						MMI_COMMON_CTRL_ID_T    ctrl_id,
						GUI_RECT_T*         rect_ptr,
                        MMI_STRING_T*       text_ptr,
                        GUI_COLOR_T         back_color
						)
{
    BOOLEAN   recode = FALSE;
    GUI_LABEL_CTRL_T* label_ptr = PNULL;

    label_ptr = GUILABEL_Init(rect_ptr, GUILABEL_CENTER, text_ptr, 0, win_id);
    SCI_ASSERT(PNULL != label_ptr);

    recode = MMK_CreateDynaCtrl(ctrl_id, TYPE_LABEL,  win_id, label_ptr);

    // @Great.Tian, CR17294
    if (recode)
    {
        GUILABEL_SetBackgroundColorByPtr(label_ptr, back_color);
    }
    else
    {
        GUILABEL_Destroy((void*)label_ptr);
    }
 //   GUILABEL_SetBackgroundColor(ctrl_id, back_color);
    return recode; 
}




///-----------


BOOLEAN MTPUBWIN_OpenPromptAlertWin( MT_PROMPT_TYPE prompt, MMI_TEXT_ID_T text_id, uint32 time_out, MMIPUB_HANDLE_FUNC func )
{
	MMI_IMAGE_ID_T image_id[3];

	image_id[MTPROMPT_ALERT]	= _V(IMAGE_PUBWIN_WARNING);
	image_id[MTPROMPT_SUCCESS]	= _V(IMAGE_PUBWIN_SUCCESS);
	image_id[MTPROMPT_WRONG]	= _V(IMAGE_PUBWIN_FAIL);


//	return PUBWIN_OpenPromptAlertWin( MMIPUB_SOFTKEY_ONE, text_id, image_id[prompt], time_out, func );
	 MMIPUB_OpenAlertWinByTextId(&time_out,text_id,NULL,image_id[prompt],PNULL,PNULL,MMIPUB_SOFTKEY_ONE,func);
	return TRUE;

}

BOOLEAN MTPUBWIN_OpenPromptQueryWin( MMI_TEXT_ID_T text_id )
{
//	return PUBWIN_OpenPromptQueryWin( text_id, _V(IMAGE_PROMPT_ICON_QUERY) );
	 MMIPUB_OpenQueryWinByTextId(text_id, _V(IMAGE_PUBWIN_QUERY), PNULL, PNULL);
	return TRUE;
}
/*
BOOLEAN MTPUBWIN_OpenPromptQueryWinExtWithText( MMI_STRING_T *text_ptr, MMIPUB_HANDLE_FUNC  func )
{
	return PUBWIN_OpenPromptQueryWinExtWithText( text_ptr, _V(IMAGE_PUBWIN_QUERY), func );
}
*/
BOOLEAN MTPUBWIN_OpenPromptQueryWinExt2( MMI_TEXT_ID_T text_id, MMIPUB_HANDLE_FUNC func )
{
//   return PUBWIN_OpenPromptQueryWinExt2( _V(MAIN_PROMPTQUERY_WIN_ID), text_id, _V(IMAGE_PUBWIN_QUERY), func );
        MMIPUB_OpenQueryWinByTextId(text_id, _V(IMAGE_PUBWIN_QUERY), PNULL, func);
	return TRUE;

}

BOOLEAN MT_PROMPT_GPRS_INAVAILABLE( void )
{
	if ((!MMIPHONE_IsSimOk(MN_DUAL_SYS_1)) && (!MMIPHONE_IsSimOk(MN_DUAL_SYS_2)))
	  	{
	  		MMIPUB_OpenAlertWinByTextId(PNULL,TXT_NO_SIM,TXT_NULL,IMAGE_PUBWIN_WARNING,PNULL,PNULL,MMIPUB_SOFTKEY_ONE,PNULL);
			return TRUE;
		}
	else if (!MT_IsCMCC_Network())
		{
			MMIPUB_OpenAlertWinByTextId(PNULL,TXT_MT_CMCC_ONLY,TXT_NULL,IMAGE_PUBWIN_WARNING,PNULL,PNULL,MMIPUB_SOFTKEY_ONE,PNULL);
			return TRUE;
		}
       else
		return MTPUBWIN_OpenPromptAlertWin( MTPROMPT_ALERT, TXT_MT_GPRS_INAVAILABLE, (3*MTMMI_5SECONDS), NULL );
}

BOOLEAN MT_PROMPT_Charge_Fail( void )
{
	return MTPUBWIN_OpenPromptAlertWin( MTPROMPT_ALERT, TXT_MMI_MTUNE_PAY_FAIL, MTMMI_5SECONDS, NULL );

}
BOOLEAN MT_OpenPromptQueryWinWithText(
							MMI_STRING_T*    string,    // text string
							MMIPUB_HANDLE_FUNC       func        // call function
							)
{
	    BOOLEAN			recode = TRUE;    // return value
    GUI_RECT_T		text_rect =  QUERY_TEXT_AREA_RECT;
    COMMON_MMI_IMAGE_ID_E         image_id=  _V(IMAGE_PUBWIN_WARNING);  // image ptr

    MMIPUB_INFO_T*   win_param_ptr;

    if (MMK_IsOpenWin(MMIMT_PROMPT_WIN_ID))
    {
        SCI_TRACE_LOW("PUBWIN_OpenPromptQueryWin: query window is opened already!");
        return FALSE;
    }

    win_param_ptr = (MMIPUB_INFO_T*)SCI_ALLOC(sizeof(MMIPUB_INFO_T));
    SCI_ASSERT(PNULL != win_param_ptr);
    SCI_MEMSET(win_param_ptr, 0, sizeof(MMIPUB_INFO_T));

    win_param_ptr->prompt_image_id = image_id;

    win_param_ptr->softkey_style= MMIPUB_SOFTKEY_OKEXIT;

     SetSoftkey(win_param_ptr);

    MMITHEME_GetPubTheme(&win_param_ptr->pubwin_theme);

	  
	  
    // 确定窗口的Function
    if (PNULL != func)
    {
    #ifdef MMI_ENABLE_DUAL_SYS
        recode = MMK_CreateDynaWin( 
                                   MMIMT_PROMPT_WIN_ID,
                                   (PROCESSMSG_FUNC)func,
                                   &g_main_app,
                                   win_param_ptr,
                                   WIN_ONE_LEVEL,
                                   NULL,
                                   WS_HAS_PROMPT_SOFTKEY,
                                   NULL
                                  );
#else
	       recode = MMK_CreateDynaWin( 
                                   MMIMT_PROMPT_WIN_ID,
                                   (PROCESSMSG_FUNC)func,
                                   &g_main_app,
                                   win_param_ptr,
                                   WIN_ONE_LEVEL,
                                   NULL,
                                   WS_HAS_PROMPT_SOFTKEY
                                  );
#endif
    }
    else
    {
#ifdef MMI_ENABLE_DUAL_SYS
        recode = MMK_CreateDynaWin( 
                                   MMIMT_PROMPT_WIN_ID,
                                   (PROCESSMSG_FUNC)MMIPUB_HandleQueryWinMsg,
                                   &g_main_app,
                                   win_param_ptr,
                                   WIN_ONE_LEVEL,
                                   NULL,
                                   WS_HAS_PROMPT_SOFTKEY,
                                   NULL
                                  );
#else
	        recode = MMK_CreateDynaWin( 
                                   MMIMT_PROMPT_WIN_ID,
                                   (PROCESSMSG_FUNC)MMIPUB_HandleQueryWinMsg,
                                   &g_main_app,
                                   win_param_ptr,
                                   WIN_ONE_LEVEL,
                                   NULL,
                                   WS_HAS_PROMPT_SOFTKEY
                                  );
#endif
    }

    CreateLabelCtrl(MMIMT_PROMPT_WIN_ID, MMIPUB_QUERY_LABEL_CTRL_ID, &text_rect, string, MMI_TRANSPARENCE_COLOR);
    GUILABEL_SetFontParam(MMIPUB_QUERY_LABEL_CTRL_ID, MMI_DEFAULT_TEXT_FONT, MMI_DEFAULT_TEXT_COLOR, 0);//shormin
    
    return recode;

}

#endif

⌨️ 快捷键说明

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