?? mmimt_numopt_wintab.c
字號(hào):
/*****************************************************************************
** File Name: *
** Author: *
** Date: 2007/06/30 *
** Copyright: 2007 MTONE, Inc. All Rights Reserved. *
** Description: *
******************************************************************************
** Important Edit History *
** --------------------------------------------------------------------------*
** DATE NAME DESCRIPTION *
** 2007/06/30 Create *
*****************************************************************************/
// ref. mmismsapp_wintab.c
#ifdef MMI_MTUNE
#include "mmimt_numopt_wintab.h"
#include "base/mt_ini.h"
#include "base/mt_osapi.h"
#include "base/mmimt_ex.h"
#include "base/mmimt_id.h"
#include "base/mmimt_menutable.h"
#include "base/mmimt_pubwin.h"
#include "base/mmimt_text.h"
#include "mmimt_playinfo.h"
#include "mmimt_wap_app.h"
#include "guilistbox.h"
#include "guieditbox.h"
///#include "mmk_ex.h"
#include "mtdef.h"
#include "mmi_common.h"
#include "mmipub.h"
#include "mmipb.h"
#include "window_parse.h"
#include "mmi_appmsg.h"
////////////////////////////////////////////////////////////////
uint8 g_destno[MMIMT_DESTNO_MAX][MMIMT_NO_LEN_MAX+1];
uint8 g_destno_cnt = 0;
LOCAL MMI_RESULT_E HandleNumOptWinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param );
WINDOW_TABLE(MMIMT_NUMOPT_WIN_TAB) =
{
CLEAR_LCD,
WIN_PRIO(WIN_ONE_LEVEL),
WIN_TITLE_ID(TXT_MT_TITLE_NUMOPT),
WIN_FUNC((uint32)HandleNumOptWinMsg),
WIN_ID(MMIMT_NUMOPT_WIN_ID),
CREATE_LISTBOX_CTRL(MMI_LISTBOX_LEFT,MMI_CLIENT_RECT_TOP,MMI_MAINSCREEN_RIGHT_MAX_PIXEL,MMI_CLIENT_RECT_BOTTOM,
LISTBOX_TEXTLIST_E,LISTBOX_TEXT1_E,MMIMT_NUMOPT_LIST_CTRL_ID),
END_WIN
};
extern WINDOW_TABLE(MMIMT_NUMOPT_WIN_TAB);
void MMIMT_NumOpt_OpenWin( ADD_DATA add_data_ptr )
{
if( !MMK_IsOpenWin( MMIMT_NUMOPT_WIN_ID ) )
{
MMK_CreateWin( (uint32 *)MMIMT_NUMOPT_WIN_TAB, add_data_ptr );
}
}
void MMIMT_NumOpt_HandleSend( ADD_DATA add_data_ptr )
{
uint8 i; static char destno[MMIMT_DESTNO_MAX*(MMIMT_NO_LEN_MAX+1)] = { 0 };
MT_TRACE( "\r\nMMIMT_NumOpt_HandleSend(): g_destno_cnt=%u\r\n", g_destno_cnt );
for( i=0; i<g_destno_cnt; i++ )
{
MT_TRACE( "\r\nMMIMT_NumOpt_HandleSend(): g_destno[%u]=%s\r\n", i, g_destno[i] );
}
*destno = 0;
for( i=0; i<g_destno_cnt-1; i++ ) { strcat( destno, (char *)g_destno[i] ); strcat( destno, "," ); }
if( g_destno_cnt ) { strcat( destno, (char *)g_destno[i] ); }
if( g_destno_cnt )
{
MT_FWD_RING_PRM *fwd_ring_prm_ptr = add_data_ptr;
MMK_CloseWin( MMIMT_NUMOPT_WIN_ID );
g_destno_cnt = 0; // DO CLEAR HERE
if( fwd_ring_prm_ptr )
{
const MMIMT_PLAY_INFO *playinfo_ptr = MMIMT_GetPlayInfo();
MT_BrowserOpenURL_FwdRing2Dest( fwd_ring_prm_ptr->sztitle, fwd_ring_prm_ptr->szartist, fwd_ring_prm_ptr->szalbum, fwd_ring_prm_ptr->szfilename, destno, playinfo_ptr->pk_ver );
}
}
}
extern WINDOW_TABLE(MMIMT_NUMOPTINP_WIN_TAB);
extern WINDOW_TABLE(MMIMT_NUMOPTMENU_WIN_TAB);
LOCAL MMI_RESULT_E HandleNumOptWinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param )
{
MMI_RESULT_E ret = MMI_RESULT_TRUE; MMI_CONTROL_ID_E ctrl_id = MMIMT_NUMOPT_LIST_CTRL_ID;
static ADD_DATA *add_data_ptr = NULL;
switch( msg_id )
{
case MSG_OPEN_WINDOW:
{
uint32 i;
add_data_ptr = MMK_GetWinAddDataPtr( win_id );
GUILISTBOX_SetMaxItem( ctrl_id, MMIMT_DESTNO_MAX+3 );
MMK_SetAtvCtrl( win_id, ctrl_id );
MTGUILISTBOX_AppendListItemByTextId( ctrl_id, TXT_MT_NUMOPT_LIST_INP, TXT_MT_OK, 0 );
MTGUILISTBOX_AppendListItemByTextId( ctrl_id, TXT_MT_NUMOPT_LIST_SEL, TXT_MT_OK, 0 );
if( g_destno_cnt )
{
MTGUILISTBOX_AppendListItemByTextId( ctrl_id, TXT_MT_NUMOPT_LIST_SEND, TXT_MT_OK, 0 );
for( i=0; i<g_destno_cnt; i++ )
{
MTGUILISTBOX_AppendListItem( ctrl_id, g_destno[i], (uint8)strlen((char *)g_destno[i]), FALSE, TXT_MT_OK, 0 );
}
}
MMK_SetWinSoftkeyId(win_id,(MMI_TEXT_ID_T)TXT_MT_OK,(MMI_TEXT_ID_T)TXT_NULL,(MMI_TEXT_ID_T)STXT_RETURN,TRUE);
break;
}
case MSG_CLOSE_WINDOW:
g_destno_cnt = 0; // DO CLEAR HERE
break;
// case MSG_FULL_PAINT:
// break;
case MMI_PB_MULTI_SELECT_LIST_RETURN:
{
uint16 i, n;
for( i=0, n=MMIAPIPB_GetSelectedListCount(); i<n && g_destno_cnt<MMIMT_DESTNO_MAX; i++ )
{
MMIPB_BCD_NUMBER_T pbno = { 0 }; uint8 l; uint8 no[PHONEBOOK_MAX_DN_NUMBER_LEN<<1+2];
MMIAPIPB_GetDetailInSelectedList( NULL, &pbno, NULL, i , PNULL, PNULL);
l = MMI_GenDispNumber( MMIPB_GetNumberTypeFromUint8( pbno.npi_ton ),
(uint8)MIN( MMIMT_NO_LEN_MAX_BCD, pbno.number_len ), pbno.number, no, sizeof(no) );
l = (uint8)MIN( MMIMT_NO_LEN_MAX, l );
MT_MEMSET( g_destno[g_destno_cnt], 0, MMIMT_NO_LEN_MAX+1 );
MT_MEMCPY( g_destno[g_destno_cnt], no, l );
g_destno_cnt++;
if( 1 == g_destno_cnt )
{
MTGUILISTBOX_AppendListItemByTextId( ctrl_id, TXT_MT_NUMOPT_LIST_SEND, TXT_MT_OK, 0 );
}
MTGUILISTBOX_AppendListItem( ctrl_id, no, l, FALSE, TXT_MT_OK, 0 );
}
GUILISTBOX_SetCurItemIndex( ctrl_id, 0 );
MMK_SetWinSoftkeyId(win_id,(MMI_TEXT_ID_T)TXT_MT_OK,(MMI_TEXT_ID_T)TXT_NULL,(MMI_TEXT_ID_T)STXT_RETURN,TRUE);
break;
}
case MSG_MT_NUMOPT_GETNO:
{
STRING_INFO_T *strinfo_ptr; uint16 i;
strinfo_ptr = (STRING_INFO_T *)param;
i = GUILISTBOX_GetCurItemIndex( ctrl_id );
if( strinfo_ptr && strinfo_ptr->str_len )
{
if( i-3 < MMIMT_DESTNO_MAX )
{
uint8 l = (uint8)MIN( MMIMT_NO_LEN_MAX, strinfo_ptr->str_len );
if( i > 2 )
{
MT_MEMSET( g_destno[i-3], 0, MMIMT_NO_LEN_MAX+1 );
MT_MEMCPY( g_destno[i-3], strinfo_ptr->str_ptr, l );
MTGUILISTBOX_ReplaceListItem( ctrl_id, i, strinfo_ptr->str_ptr, l, FALSE, TXT_MT_OK, 0 );
}
else
{
MT_MEMSET( g_destno[g_destno_cnt], 0, MMIMT_NO_LEN_MAX+1 );
MT_MEMCPY( g_destno[g_destno_cnt], strinfo_ptr->str_ptr, l );
g_destno_cnt++;
if( 1 == g_destno_cnt )
{
MTGUILISTBOX_AppendListItemByTextId( ctrl_id, TXT_MT_NUMOPT_LIST_SEND, TXT_MT_OK, 0 );
}
MTGUILISTBOX_AppendListItem( ctrl_id, strinfo_ptr->str_ptr, l, FALSE, TXT_MT_OK, 0 );
}
MMK_SetWinSoftkeyId(win_id,(MMI_TEXT_ID_T)TXT_MT_OK,(MMI_TEXT_ID_T)TXT_NULL,(MMI_TEXT_ID_T)STXT_RETURN,TRUE);
//// GUILIST_UpdateListBox( ctrl_id );
}
}
break;
}
case MSG_MT_NUMOPT_DELNO:
{
uint16 i, j;
i = GUILISTBOX_GetCurItemIndex( ctrl_id );
if( i > 2 )
{
j = (uint16)( i - 3 );
if( j < MMIMT_DESTNO_MAX-1 )
{
MT_MEMCPY( (uint8 *)(g_destno+j), (uint8 *)(g_destno+j+1), (g_destno_cnt-j-1)*(MMIMT_NO_LEN_MAX+1) );
}
g_destno_cnt--;
GUILISTBOX_RemoveItemBasePos( ctrl_id, i );
if( !g_destno_cnt )
{
GUILISTBOX_RemoveItemBasePos( ctrl_id, 2 );
}
GUILISTBOX_SetCurItemIndex( ctrl_id, 0 );
}
break;
}
case MSG_CTL_PENOK:
case MSG_CTL_OK:
switch( GUILISTBOX_GetCurItemIndex( ctrl_id ) )
{
case 0:
if( g_destno_cnt < MMIMT_DESTNO_MAX )
{
MMK_CreateWin( (uint32 *)MMIMT_NUMOPTINP_WIN_TAB, NULL );
}
else
{
MTPUBWIN_OpenPromptAlertWin( MTPROMPT_ALERT, TXT_MT_NUMOPT_ALRT_FULL, MTMMI_3SECONDS, NULL );
}
break;
case 1:
{
uint8 n = (uint8)( MMIMT_DESTNO_MAX - g_destno_cnt );
if( n )
{
MMIAPIPB_OpenNumberList( MMIPB_LIST_FOR_SMS, MMIPB_LIST_TYPE_MUTIPLE, n, NULL );
}
else
{
MTPUBWIN_OpenPromptAlertWin( MTPROMPT_ALERT, TXT_MT_NUMOPT_ALRT_FULL, MTMMI_3SECONDS, NULL );
}
break;
}
case 2: // DO SEND
MMIMT_NumOpt_HandleSend( add_data_ptr );
break;
default:
MMK_CreateWin( (uint32 *)MMIMT_NUMOPTMENU_WIN_TAB, NULL );
break;
}
break;
case MSG_CTL_CANCEL:
MMK_CloseWin( win_id );
g_destno_cnt = 0; // DO CLEAR HERE
break;
default:
ret = MMI_RESULT_FALSE;
break;
}
return ret;
}
////////////////////////////////////////////////////////////////
LOCAL MMI_RESULT_E HandleNumInpWinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param );
WINDOW_TABLE(MMIMT_NUMOPTINP_WIN_TAB) =
{
CLEAR_LCD,
WIN_PRIO(WIN_ONE_LEVEL),
WIN_TITLE_ID(TXT_MT_TITLE_NUMOPTINP),
WIN_FUNC((uint32)HandleNumInpWinMsg),
WIN_ID(MMIMT_NUMINP_WIN_ID),
WIN_STYLE(WS_HAS_SOFTKEY),
CREATE_PHONENUMEDITBOX_CTRL(MMI_CLIENT_LEFT(0),MMI_CLIENT_TOP(0),MMI_CLIENT_RIGHT(0),MMI_CLIENT_BOTTOM(0),
MMIMT_NO_LEN_MAX,MMIMT_NUMINP_EDIT_CTRL_ID),
END_WIN
};
#define MMI_WHITE_COLOR 0xffff
extern WINDOW_TABLE(MMIMT_NUMOPTINP_WIN_TAB);
LOCAL MMI_RESULT_E HandleNumInpWinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param )
{
MMI_RESULT_E ret = MMI_RESULT_TRUE; MMI_CONTROL_ID_E ctrl_id = MMIMT_NUMINP_EDIT_CTRL_ID;
GUI_RECT_T rect; STRING_INFO_T strinfo;
GUI_LCD_DEV_INFO lcd_dev_info = {GUI_LCD_0, GUI_BLOCK_0};
switch( msg_id )
{
case MSG_FULL_PAINT:
MTMMITHEME_GetClientRect( &rect );
GUIEDITBOX_SetEditBoxToSingle( MMIMT_NUMINP_EDIT_CTRL_ID, SINGLE_ALIGN_CENTER );
LCD_FillRect( &lcd_dev_info, rect, MMI_WINDOW_BACKGROUND_COLOR );
break;
case MSG_OPEN_WINDOW:
MTINI_GetProfileRect( INI_MT_RECT_NUMOPT_SINGLE_PHONENUMBE, &rect );
GUIEDITBOX_SetEditBoxRect( ctrl_id, &rect );
MMK_SetAtvCtrl( win_id, ctrl_id );
break;
case MSG_CTL_PENOK:
case MSG_CTL_OK:
MT_MEMSET( &strinfo, 0, sizeof(STRING_INFO_T) );
GUIEDITBOX_GetPhoneNumEditBoxInfo( ctrl_id, &strinfo );
if( strinfo.str_len )
{
MMK_SendMsg( MMIMT_NUMOPT_WIN_ID, MSG_MT_NUMOPT_GETNO, &strinfo );
MMK_CloseWin( win_id );
}
else
{
MTPUBWIN_OpenPromptAlertWin( MTPROMPT_ALERT, TXT_MT_NUMOPTINP_ALRT_NULL, MTMMI_3SECONDS, NULL );
}
break;
case MSG_CTL_CANCEL:
MMK_CloseWin( win_id );
break;
default:
ret = MMI_RESULT_FALSE;
break;
}
return ret;
}
////////////////////////////////////////////////////////////////
LOCAL MMI_RESULT_E HandleNumOptMenuWinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param );
WINDOW_TABLE(MMIMT_NUMOPTMENU_WIN_TAB) =
{
CLEAR_LCD,
WIN_PRIO(WIN_ONE_LEVEL),
WIN_FUNC((uint32)HandleNumOptMenuWinMsg),
WIN_ID(MMIMT_NUMOPT_MENU_WIN_ID),
WIN_TITLE_ID(STXT_OPTION),
CREATE_MENU_CTRL(0,0,MMI_MAINSCREEN_RIGHT_MAX_PIXEL,MMI_MAINSCREEN_BOTTOM_MAX_PIXEL,
MENU_MT_NUMOPT_OPT,MMIMT_NUMOPT_MENU_CTRL_ID),
END_WIN
};
extern WINDOW_TABLE(MMIMT_NUMOPTMENU_WIN_TAB);
LOCAL MMI_RESULT_E HandleNumOptMenuWinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param )
{
MMI_RESULT_E ret = MMI_RESULT_TRUE;
uint32 group_id, menu_id; uint16 i;
switch( msg_id )
{
case MSG_OPEN_WINDOW:
MMK_SetWinTitleExt(win_id,STXT_OPTION,TRUE);
MMK_SetAtvCtrl( win_id, MMIMT_NUMOPT_MENU_CTRL_ID );
break;
case MSG_PROMPTWIN_OK:
MMK_SendMsg( MMIMT_NUMOPT_WIN_ID, MSG_MT_NUMOPT_DELNO, NULL );
MTPUBWIN_OpenPromptAlertWin( MTPROMPT_SUCCESS, TXT_MT_DONE, MTMMI_3SECONDS, NULL );
MMIPUB_CloseQuerytWin(PNULL);
MMK_CloseWin( win_id );
break;
case MSG_PROMPTWIN_CANCEL:
MMIPUB_CloseQuerytWin(PNULL);
break;
case MSG_CTL_PENOK:
case MSG_CTL_OK:
GUIMENU_GetId( MMIMT_NUMOPT_MENU_CTRL_ID, (MMI_MENU_GROUP_ID_T *)&group_id, (MMI_MENU_ID_T *)&menu_id );
switch( menu_id )
{
case ID_MT_MENU_NUMOPT_DEL:
MTPUBWIN_OpenPromptQueryWin( TXT_MT_NUMOPT_QURY_DEL );
break;
case ID_MT_MENU_NUMOPT_EDIT:
MMK_CreateWin( (uint32*)MMIMT_NUMOPTINP_WIN_TAB, NULL );
i = GUILISTBOX_GetCurItemIndex( MMIMT_NUMOPT_LIST_CTRL_ID );
if( i >= 3 && i-3 < MMIMT_DESTNO_MAX )
{
GUIEDITBOX_SetPhoneNumEditBoxStringInfo( MMIMT_NUMINP_EDIT_CTRL_ID, g_destno[i-3], (uint16)strlen((char *)g_destno[i-3]) );
}
MMK_CloseWin( win_id );
break;
default:
SCI_PASSERT( 0, ( " the menu id is error" ) );
break;
}
break;
case MSG_CTL_CANCEL:
MMK_CloseWin( win_id );
break;
default:
ret = MMI_RESULT_FALSE;
break;
}
return ret;
}
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -