📄 mmibooksearchwindow.c
字号:
static int GetIndex(T_SearchResult *SortData,int RecordLen,char * Inputchr,int *Index);
static T_MFW_HND bookSearchCreate(MfwHnd parent);
static int bookSearchWindowCB(MfwEvt e, MfwWin *w);
static void bookSearchDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter);
static void bookSearchRead_cb(T_MFW_HND * Parent, ListMenuData * ListData);
static void bookCopyRecordCB(T_MFW_HND win, USHORT id, UBYTE reason);
static void bookDeleteRecordCB(T_MFW_HND win, USHORT id, UBYTE reason);
static T_MFW_HND bookGroupingCreate( MfwHnd parent );
static int bookGroupingWindowCB( MfwEvt e, MfwWin *w);
static void bookGroupingDialog(T_MFW_HND win, USHORT event, SHORT value, void *parameter);
static void bookGroupingRead_cb(T_MFW_HND * Parent, ListMenuData * ListData);
static T_MFW_HND bookShortCutDialCreate( MfwHnd parent);
static int bookShortCutDialWindowCB( MfwEvt e,MfwWin *w);
static void bookShortCutDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter);
static void bookShortCutItemRead_cb(T_MFW_HND * Parent, ListMenuData * ListData);
static void bookShortCutBrowserRead_cb(T_MFW_HND * Parent, ListMenuData * ListData);
static T_MFW_HND bookGroupingAddCreate( MfwHnd parent );
static void bookGroupingAddDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter );
static int bookGroupingAddWindowCB( MfwEvt e, MfwWin *w );
static void bookGroupingAddRead_cb(T_MFW_HND * Parent, ListMenuData * ListData);
static T_MFW_HND bookGroupingBrowserCreate(MfwHnd parent);
static void bookGroupingBrowserDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter );
static int bookGroupingBrowserWindowCB( MfwEvt e, MfwWin *w );
static void bookGroupingBrowserRead_cb(T_MFW_HND * Parent, ListMenuData * ListData);
static T_MFW_HND bookGroupingRenameCreate( MfwHnd parent );
static int bookGroupingRenameKbdCB( MfwEvt e, MfwKbd *k );
static void bookGroupingRenameDialog(T_MFW_HND win, USHORT event, SHORT value, void *parameter);
static int bookGroupingRenameWindowCB( MfwEvt e, MfwWin *w );
static void bookMultiCopyNvmToSimCB(T_MFW_HND win, USHORT id, UBYTE reason );
static void bookMultiCopySimToNvmCB(T_MFW_HND win, USHORT id, UBYTE reason );
static T_MFW_HND bookChoiceCopyCreate( MfwHnd parent );
static int bookChoiceCopyWindowCB( MfwEvt e, MfwWin *w);
static void bookChoiceCopyDialog(T_MFW_HND win, USHORT event, SHORT value, void *parameter);
static void bookChoiceCopyRead_cb(T_MFW_HND * Parent, ListMenuData * ListData);
static T_MFW_HND bookOwnNumberCreate( MfwHnd parent );
static void bookOwnNumberDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter );
static int bookOwnNumberWindowCB( MfwEvt e, MfwWin *w );
static void bookOwnNumberRead_cb(T_MFW_HND * Parent, ListMenuData * ListData);
static void bookInputDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter );
static T_MFW_HND bookInputCreate( MfwHnd parent );
static int bookInputWindowCB( MfwEvt e, MfwWin *w );
static T_MFW_HND bookCopyAllCreate( MfwHnd parent );
static int bookCopyAllWindowCB( MfwEvt e, MfwWin *w);
static void bookCopyAllDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter );
static void book_Inofrmation_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason);
static void book_AddMember_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason);
static void book_DelMember_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason);
static void book_CopyRecord_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason);
static T_MFW_CB book_copytim_cb (T_MFW_EVENT event, T_MFW_TIM *tc);
static void book_copytim_information(T_MFW_HND win, UBYTE identifier, UBYTE reason);
static T_MFW_CB book_choicecopytim_cb (T_MFW_EVENT event, T_MFW_TIM *tc);
static void book_choicecopy_information(T_MFW_HND win, UBYTE identifier, UBYTE reason);
static void book_choicecopytim_information(T_MFW_HND win, UBYTE identifier, UBYTE reason);
void ShowPhoneBookNumber(int Index,T_BrowserWay way);//
void ShortCutLocation(ListWinInfo * dataInfo, char * NewKey,TABLE_TYPE table,int *BufferIndex,int flag);
static unsigned char SwitchChar(unsigned char InputChar);
static void book_DeleteRecord_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason);
static void bookCopyAllSimToNvmStart( T_MFW_HND Window,USHORT TxtContent);
static void bookCopyAllNvmToSimStart( T_MFW_HND Window,USHORT TxtContent);
void ClearWindowHandle();
static void bookDeleteAllNVMRecordCB( T_MFW_HND win, USHORT id, UBYTE reason );
static void bookDeleteAllSIMRecordCB( T_MFW_HND win, USHORT id, UBYTE reason );
static int iconselect_win_cb (T_MFW_EVENT event, T_MFW_WIN * win);
static void iconSelect_DialogCB(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static int iconselect_kbd_cb(T_MFW_EVENT event, T_MFW_KBD *keyboard);
void iconSelect_destroy(T_MFW_HND own_window);
//yq added
static void show_number(void);
static T_MFW_CB show_timercb (T_MFW_EVENT event, T_MFW_TIM *tc);
static void yq_edtchar(T_MFW_HND edt,unsigned char code);
static T_MFW_CB edt_timer_cb (T_MFW_EVENT event, T_MFW_TIM *tc);
//end yq added
//yq add for voicedial
static void bookVoiceAddCB(T_MFW_HND win, USHORT id, UBYTE reason );
static T_MFW_CB Recognize_Dial_CB (T_MFW_EVENT event, T_MFW_TIM *tc);
MfwHnd VdRecordStart( MfwHnd parent);
static T_MFW_HND VdRecordCreate( MfwHnd parent );
static void voice_record( T_MFW_HND win, USHORT event, SHORT value, void *parameter );
void VdRecordDestroy( MfwHnd window );
static T_MFW_CB voice_tim_cb (T_MFW_EVENT event, T_MFW_TIM *tc);
static int voice_kbd_cb (T_MFW_EVENT event, T_MFW_KBD *keyboard);
void VdRecordPlayCB (void* parameter);
void VdUpdatePlayCB (void* parameter);
void getVoiceTotal();
//end yq added
static void bookDeleteShortCutCB( T_MFW_HND win, USHORT id, UBYTE reason );//yq added for delete shortcutdial record
void bookVoiceModifyDestory( MfwHnd window );
void ShowVoiceListNumber(int Index);
static void ShowDetailBookNumber(MfwHnd window,int direct);
//begin xzy added for grouping icon 2002/10/31
//static T_MFW_HND bookGroupingIconCreate( MfwHnd parent );
//static void bookGroupingIconDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter );
//end xzy added for grouping icon 2002/10/31
/*******************************************************************************
Private Methods
*******************************************************************************/
/*******************************************************************************
$Function: bookSearchDialog
$Description: dialog handler for the search window functionality
$Returns: None
$Arguments: win, window handle
event, event to be handled
value, not used
parameter, not used
*******************************************************************************/
static void bookSearchDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter )
{
T_MFW_WIN *win_data = ((T_MFW_HDR *) win)->data;
tBookStandard *data = (tBookStandard *) win_data->user;
T_phbk *Phbk =data->phbk;
int i;
char * titleStr;
PhbkDetailItem l_phb_NVMEntry;
T_MFW_PHB_ENTRY l_phb_Shortentry;
T_MFW_PHB_LIST l_phb_list; /* phonebook list */
T_MFW ret;
int NewIndex;
UBYTE oldmode=dspl_Enable(0);
TRACE_FUNCTION( "bookSearchDialog()" );
switch( event )
{
case SEARCH_INPUT:
{
memset(Phbk->edt_buf_name,'\0',PHB_name_len+5);
editor_attr_init_fullscr(&data->editor_data.editor_attr,1,TxtSearchName,NULL,PHB_name_len+3,edtCurBar1);
data->editor_data.hide = FALSE;
data->editor_data.min_enter = 0;
data->editor_data.Identifier = 0xFFFF;
data->editor_data.timeout = FOREVER;
data->editor_data.destroyEditor = FALSE;
data->editor_data.editor_attr.text = (char *)Phbk->edt_buf_name;
data->editor_data.TextId = TxtSearchName;
data->editor_data.LeftSoftKey = TxtSoftOK;
data->editor_data.AlternateLeftSoftKey = TxtSearchName; /* 2004/04/01 sunsj add */
data->editor_data.RightSoftKey = TxtDelete;
data->editor_data.mode = TEXTINPUT_MODE; /* 2003/12/04 sunsj */
data->editor_data.InputMode = PINYIN_INPUT_MODE; /* 2003/12/04 sunsj */
data->editor_data.Callback = (T_EDIT_CB)bookSearchCB;
data->editor_data.edtInPbk = 2; /* 2003/12/04 sunsj */
data->edtname = text_input(win, &data->editor_data); /* 2003/12/04 sunsj */
winShow( data->win );
}
break;
case SEARCH_INIT:
{
TRACE_EVENT("SEARCH_INIT");
data->menu_list_data = (ListMenuData *)ALLOC_MEMORY(sizeof(ListMenuData));
if( !data->menu_list_data )
{
TRACE_EVENT("no memory");
bookShowInformation( win, TxtEmptyList, NULL,(T_VOID_FUNC)book_Inofrmation_cb);//内存无够
}
else
{
data->menu_list_data->List = (T_MFW_MNU_ITEM *)ALLOC_MEMORY( GetFree(SearchTotal) *sizeof(T_MFW_MNU_ITEM) );
if( data->menu_list_data->List!=0 )
{
for( i = 0; i < GetFree(SearchTotal); i++ )
{
data->menu_list_data->List[i].icon =&DynamicBuffer[i].bookicon;
data->menu_list_data->List[i].exta = 0;
data->menu_list_data->List[i].edit = 0;
data->menu_list_data->List[i].menu = 0;
data->menu_list_data->List[i].func = NULL;
data->menu_list_data->List[i].str=(char *)DynamicBuffer[i].name;
Sprintf(temp,"len:%d",wstrlen((char *)DynamicBuffer[i].name));
TRACE_EVENT(temp);
data->menu_list_data->List[i].flagFunc=item_flag_none;
}
data->menu_list_data->ListLength = GetFree(SearchTotal);
data->menu_list_data->SnapshotSize = GetFree(SearchTotal);
data->menu_list_data->Font = 0;
data->menu_list_data->LeftSoftKey = TxtSoftSelect;
data->menu_list_data->RightSoftKey = TxtSoftBack;
data->menu_list_data->KeyEvents = KEY_ALL;
data->menu_list_data->Reason = 0;
data->menu_list_data->Strings = TRUE;
data->menu_list_data->Attr = &readName_menuAttrib;
data->menu_list_data->autoDestroy = FALSE;
data->menu_list_data->ListMenuFlag =1;
titleStr=MmiRsrcGetText(TxtSearchName);
data->menu_list_data->ListMenuHeadStr=titleStr;
if( (int)parameter!=0 )
{
TRACE_EVENT("parameter not 0");
data->menu_list_data->ListPosition = (int)parameter+1;
data->menu_list_data->CursorPosition = (int)parameter+1;
data->menu_list_data->Attr->pageturnindex=(int)parameter+1;
}
else
{
TRACE_EVENT("parameter is 0");
data->menu_list_data->ListPosition = 1;
data->menu_list_data->CursorPosition = 1;
data->menu_list_data->Attr->pageturnindex=1;
Sprintf(temp,"index in rigthtop:%d",data->menu_list_data->Attr->pageturnindex);
TRACE_EVENT(temp);
}
//LastKey=0xFF;
#if(MAIN_LCD_SIZE==3)
phonebook_search_flag=TRUE;
#endif
listDisplayListMenu(win, data->menu_list_data, (ListCbFunc)bookSearchRead_cb,0);
if( Phbk->BufferTable==GlobalTable )
{
show_index=l_phb_sort_index[Phbk->BufferIndex].index;
}
else if( Phbk->BufferTable==SearchTable )
show_index=bookname[Phbk->BufferIndex].index;
refresh_flag=1;
#if(MAIN_LCD_SIZE==4)
/* 2004/05/26 sunsj modify */
dspl_Clear(0,108,SCREEN_SIZE_X,126);
/* 2004/06 sunsj modify for icon manage */
//dspl_BitBlt(1, 110, 14, 14, 0, (void *)abc_bmp, 0);
DRAW_ICON_LOCATION(ICON_TEXTINPUT_abc, 0, 110);
//dspl_TextOut(0,113,0,"sht:");
show_number();
#elif(MAIN_LCD_SIZE==3)
/* 2004/05/26 sunsj modify */
dspl_Clear(0,87,SCREEN_SIZE_X,110);
DRAW_ICON_LOCATION(ICON_TEXTINPUT_abc, 0, 72);
show_number();
#endif
}
else
{
FREE_MEMORY((void *)data->menu_list_data,sizeof(ListMenuData));
bookShowInformation(win, TxtEmptyList, NULL, (T_VOID_FUNC)book_Inofrmation_cb);//改为无法分配空间
}
}
}
break;
case SEARCH_DESTROY:
{
TRACE_EVENT("search_destroy");
if( !freetotal )
FREE_MEMORY((void *)data->menu_list_data->List, GetFree(SearchTotal)*sizeof(T_MFW_MNU_ITEM));
else
{
FREE_MEMORY((void *)data->menu_list_data->List, GetFree(freetotal)*sizeof(T_MFW_MNU_ITEM));
freetotal=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -