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

📄 mmibookphonebook.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
                    data->menu_main_win         = bookMenuStart( data->win, bookPhonebookMenuAttributes(), *reason);
                    data->root_win          = data->menu_main_win;

                    data->phbk->EntryType        =PhbkNormal;
                }
                break;

            case PhbkFromCall:
                {
                    data->phbk->current.status.book = bookActiveBook(READ);
                    data->phbk->EntryType         = PhbkFromCall; 
                    data->CallPhbk_win= bookCallPhbStart( data->phbk->win );
                    data->root_win=data->CallPhbk_win;
                }
                break;

            case PhbkMainMenu:
                {
                    // Normal initialisation					
                    data->current.status.book  = bookActiveBook(READ);
                    data->current.index        = 1;
                    data->menu_main_win         = bookMenuStart( data->win, bookMainMenuAttributes(), *reason);
                    data->root_win          = data->menu_main_win;
                }
                break;
                //xsf add 2002.08.19
            case PhbkHostkeyList:
                {
                    data->current.index        = 1;
                    data->menu_main_win         = bookMenuStart( data->win, bookHostkeyMenuAttributes(), *reason);
                    data->root_win          = data->menu_main_win;
                }
                break;
                //xsf add 2002.08.23
            case PhbkHostkeyOnOffList:
                {
                    data->current.index        = 1;
                    data->menu_main_win         = bookMenuStart( data->win, bookHostkeyOnOffAttributes(), *reason);
                    data->root_win          = data->menu_main_win;
                }
                break;

            case PhbkReplyListNormal:
                {
                    // reply list					
                    bookCallListStart(win,PHB_LRN);
                }
                break;
            case PhbkMissedCallsListNormal:
                {
                    // reply list					
                    bookCallListStart(win,PHB_LMN);
                }
                break;

            case PhbkRedialListNormal:
                {
                    // Redial list					
                    bookCallListStart(win,PHB_LDN);
                }
                break;

            case PhbkNameEnterIdle:
            case PhbkNameEnterSms:
            case PhbkNameEnterRecentCall: //wufei add 
                {
                    data->current.status.book  = bookActiveBook(READ);
                    data->current.index        = 1;
                    data->menu_main_win         = bookMenuStart( data->win, bookPhonebookAdd(), *reason);
                    data->root_win          = data->menu_main_win;
                    data->phbk->UpdateAction     = ADD_FROM_IDLE;
                    data->phbk->deletenumber=1;
                }
                break;
            case PhbkSearchNormal :
                {
                    // Search window					
                    data->root_win = data->phbk->search_win;
                }
                break;

            case PhbkFromSms :
                {        
                    if( IsPhbIN() )//current we have a phbk dynamic menu
                    {
                        data->phbk->current.status.book = bookActiveBook(READ);
                        data->phbk->EntryType         = PhbkFromSms; 
                        data->CallPhbk_win= bookCallPhbStart( data->phbk->win );
                        data->root_win=data->CallPhbk_win;
                    }
                    else
                    {
                        data->phbk->current.KindOfSearch = SEARCH_BY_NAME;              
                        data->phbk->current.status.book   = bookActiveBook(READ);
                        data->phbk->EntryType           =PhbkFromSms;
                        data->phbk->search_win          = bookSearchStart( data->phbk->win );
                        data->root_win                   = data->phbk->search_win;
                    }
                }
                break;
            case PhbkFromVoiceMemo:
                {                    
                    data->menu_main_win         = bookMenuStart( data->win, bookPhonebookVoiceMemo(), *reason);
                    data->root_win          = data->menu_main_win;
                }  
                break;   
            case PhbkFromShortcutKey :
                {
                    data->phbk->current.status.book = bookActiveBook(READ);
                    data->phbk->EntryType         = PhbkFromShortcutKey; 
                    data->phbk->search_win        = bookSearchStart( data->phbk->win );
                    data->root_win                 = data->phbk->search_win;                   
                } 
                break;

            case PhbkFromDivert:
                {              
                    data->phbk->EntryType=PhbkFromDivert;                          
                    data->phbk->current.KindOfSearch = SEARCH_BY_NAME;
                    data->phbk->current.status.book = bookActiveBook(READ);
                    data->phbk->search_win = bookSearchStart( data->phbk->win );
                    data->root_win = data->phbk->search_win;              
                }
                break;

            default:
                {
                    // No default action required					
                }
            }
        }
        break;
    case PHBK_SEND_NUMBER:
        TRACE_EVENT ("PHBK_SEND_NUMBER");
        /*2004/04/07,talcon delete
        {
           char temp[100];
           sprintf(temp,"win %p parameter %s data->phbk %p",win,(char*)parameter,data->phbk);
           TRACE_EVENT (temp);
        }*/
        strncpy((char *) data->phbk->edt_buf_foradd,  (char*)parameter, PHB_number_len );
        break;
    default:
        {
            // No default action required			
        }
    }
}

/*******************************************************************************

 $Function:    	bookPhonebookWindowCB

 $Description:	Window call back for the phone book application
 
 $Returns:		MFW_EVENT_CONSUMED if event is MfwWinVisible, otherwise
            MFW_EVENT_PASSED

 $Arguments:	e, event, w, window handle
 
*******************************************************************************/

static int bookPhonebookWindowCB ( MfwEvt e, MfwWin *w )
{
    TRACE_FUNCTION ("bookPhonebookWindowCB()");
    return( e == MfwWinVisible ) ? MFW_EVENT_CONSUMED : MFW_EVENT_PASSED;
}

/*******************************************************************************

 $Function:    	bookPhonebookCreate

 $Description:	Create the phone book application
 
 $Returns:		Handle of the newly created window or NULL if error

 $Arguments:	parent, handle of parent window
 
*******************************************************************************/

static T_MFW_HND bookPhonebookCreate( MfwHnd parent )
{
    T_MFW_WIN   *win_data;
    T_phbk       *data;

    TRACE_FUNCTION ("bookPhonebookCreate()");

    if( ( data = (T_phbk *) ALLOC_MEMORY( sizeof( T_phbk ) ) ) == NULL )
        return NULL;

    if( ( data->win = win_create( parent, 0, E_WIN_VISIBLE, (T_MFW_CB) bookPhonebookWindowCB ) ) == NULL )
    {
        FREE_MEMORY( (void *) data, sizeof( T_phbk ) );
        return NULL;
    }

    // Create window handler    
    data->mmi_control.dialog   = (T_DIALOG_FUNC) bookPhonebookDialog;
    data->mmi_control.data     = data;
    win_data                   = ((T_MFW_HDR *)data->win)->data;
    win_data->user             = (void *)data;
    winShow(data->win);

    // initialise the options structure	
    data->root_win             = 0;
    data->menu_main_win          = 0;
    data->calls_list_win       = 0;
    data->menu_options_win        = 0;
    data->menu_options_win_2      = 0;
    data->menu_call_options_win      = 0;
    data->menu_call_options_win_2 = 0;
    data->name_details_win        = 0;
    data->search_win           = 0;
    data->fromSMS              = FALSE;
    data->fromDivert            = FALSE;
    data->parent_win           = parent;
    data->phbk                 = data;

    // return window handle    
    return data->win;
}

/*******************************************************************************
                                                                              
                                Public methods
                                                                              
*******************************************************************************/

/*******************************************************************************

 $Function:    	bookPhonebookStart

 $Description:	Starts up the phone book application
 
 $Returns:		Handle of window or NULL if error

 $Arguments:	parent, window, reason, for invocation
 
*******************************************************************************/

T_MFW_HND bookPhonebookStart( MfwHnd parent, int reason )
{
    T_MFW_HND win;
    /*2004/04/07,talcon delete
    char temp[100];
    Sprintf(temp,"reason,%d,formcall,%d",reason,PhbkFromCall);
    TRACE_EVENT(temp);*/
    if( ( win = bookPhonebookCreate( parent ) ) != NULL )
        SEND_EVENT( win, PHBK_INIT, 0, (int *) &reason );
    return win;
}

/*******************************************************************************

 $Function:    	bookPhonebookDestroy

 $Description:	Destroys the phone book application
 
 $Returns:		none

 $Arguments:	window, to be destroyed
 
*******************************************************************************/

void bookPhonebookDestroy( MfwHnd window )
{
    T_MFW_WIN   *win  = ((T_MFW_HDR *)window)->data;
    T_phbk      *data = (T_phbk *) win->user;

    TRACE_FUNCTION ("bookPhonebookDestroy()");

    if( data )
    {
        /* need to clean up all of the subordinate windows which
           may have been created during the phone book application
        */
        data->root_win = 0;
        if( data->search_win )
            bookSearchDestroy( data->search_win );

        if( data->menu_main_win )
            bookMenuDestroy(data->menu_main_win);

        if( data->calls_list_win )
            bookCallListDestroy(data->calls_list_win);

        if( data->menu_options_win )
            bookMenuDestroy(data->menu_options_win);

        if( data->menu_options_win_2 )
            bookMenuDestroy(data->menu_options_win_2);

        if( data->menu_call_options_win )
            bookMenuDestroy(data->menu_call_options_win);

        if( data->menu_call_options_win_2 )
            bookMenuDestroy(data->menu_call_options_win_2);

        if( data->name_details_win )
            bookDetailsDestroy(data->name_details_win);
        if( data->CallPhbk_win )
            bookCallPhbDestroy(data->CallPhbk_win);
        /*
              if (data->input_name_win)
                 bookInputDestroy(data->input_name_win);
        
              if (data->input_number_win)
                 bookInputDestroy(data->input_number_win);
        */

        // delete the window and free any allocated memory
        if( call_data.win_phb==window )
            call_data.win_phb=NULL;
        winDelete (data->win);
        FREE_MEMORY( (void *) data, sizeof( T_phbk ) );
    }

}

#if 0
static int ReadEntries(U8 p_type, U8 p_idx, U8 p_mode, U8 p_number)
{    
    memset(&l_phb_entry, 0, sizeof(l_phb_entry));
    memset(&l_phb_list, 0, sizeof(l_phb_list));
    l_phb_list.entry = l_phb_entry;
    l_phb_list.num_entries = PE_SIZE;

    if( phb_read_entries(p_type, p_idx, p_mode, p_number, &l_phb_list)!=MFW_PHB_OK )
        return 1;

    l_phb_status.book = (UBYTE)p_type;

    if( phb_get_status(&l_phb_status) == MFW_PHB_OK )
        l_found = l_phb_status.used_entries;
    return 0;
}

static int ReadSIM_Init(U8 p_type,U8 p_mode)
{
    T_MFW_PHB_STATUS  status;

    /* get actual status of specific phonebook */
    memset(&status, 0, sizeof(T_MFW_PHB_STATUS));
    status.book = p_type;
    if( phb_get_status(&status) != MFW_PHB_OK )//读SIM卡是否可用               
        return 1;

⌨️ 快捷键说明

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