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

📄 mmibooksearchwindow.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
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 + -