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

📄 mmiqq.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
    if( !smsidle_get_ready_state() )
    {
        QQShowInformation( win, TxtNotReady, TxtSim,NULL,300,only_info,(T_VOID_FUNC)QQ_Inofrmation_cb);
        return MFW_EVENT_CONSUMED;
    }

    QQsend.QQsendmsg=Service_on;

    SmsSend_get_config_data(&sms_parameter);
    wstrcpy(sc_addr, (char *)sms_parameter.sc_addr);

    wstrcpy(info,"MQ");//"50"
    pstrinfo = mmi_Sys_Sim((char *)info, &outLen,&(sms_parameter.dcs));
    SmsSend_set_dcs_number (&sms_parameter);

    sms_submit(MFW_SMS_SUBMIT,QQSernumber,(UBYTE *)pstrinfo,outLen,sc_addr);            
    QQsend.sendingwin=QQShowInformation( win, 0, TxtSending,QQSernumber,FOREVER,SMS_SENDING_MSG,(T_VOID_FUNC)QQ_Inofrmation_cb);

    return MFW_EVENT_CONSUMED;
}


int setQQServiceOff(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND win =  mfwParent( mfw_header() );
    T_MFW_WIN * win_Data = ((T_MFW_HDR *)win)->data;
    tBookStandard   *data = (tBookStandard *)win_Data->user;

    UBYTE*  pstrinfo;
    char    info[20];
    USHORT outLen;
    T_MFW_SMS_INFO  sms_parameter;
    char              sc_addr[MAX_LEN]; /* service centre address   */


    if( strlen(QQSernumber)==0 )
    {//no network
        QQShowInformation( win, TxtNoNetwork,0, NULL,300,only_info,(T_VOID_FUNC)QQ_Inofrmation_cb);
        return	MFW_EVENT_CONSUMED;
    }
    if( !smsidle_get_ready_state() )
    {
        QQShowInformation( win, TxtNotReady, TxtSim,NULL,300,only_info,(T_VOID_FUNC)QQ_Inofrmation_cb);
        return MFW_EVENT_CONSUMED;
    }


    SmsSend_get_config_data(&sms_parameter);
    wstrcpy(sc_addr, (char *)sms_parameter.sc_addr);

    QQsend.QQsendmsg=Service_off;

    wstrcpy(info,"51");
    pstrinfo = mmi_Sys_Sim((char *)info, &outLen,&(sms_parameter.dcs));
    SmsSend_set_dcs_number (&sms_parameter);

    sms_submit(MFW_SMS_SUBMIT,QQSernumber,(UBYTE *)pstrinfo,outLen,sc_addr);            
    QQsend.sendingwin=QQShowInformation( win, 0, TxtSending,QQSernumber,FOREVER,SMS_SENDING_MSG,(T_VOID_FUNC)QQ_Inofrmation_cb);

    return MFW_EVENT_CONSUMED;

}



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

 $Function:    	Get_NVM_Friend

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
int Get_NVM_Friend(MfwMnu *m, MfwMnuItem *item ) 
{
    T_MFW_HND win = mfw_parent(mfw_header());
    MmiTrace("Get_NVM_Friend()");

    //init the parameter

    DataListType=Nvm_fri_list;

    DataListPa_Start( win );

    return MFW_EVENT_CONSUMED;

}

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

 $Function:    	DataListPa_Start

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static T_MFW_HND DataListPa_Start (T_MFW_HND parent_window)
{
    T_MFW_HND win;
    U16 memoryleft;
    MmiTrace("DataListPa_Start");
    MmiTrace("mem");
    memoryleft=mfwCheckMemoryLeft();
    MmiTraceInt(memoryleft);

    /* allocate window, and if successful initialise it
    */
    if( ( win = DataListPa_create( parent_window ) ) != NULL )
        SEND_EVENT( win, QQ_INIT, 0, 0 );

    return win;
}


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

 $Function:    	E2CInput_create

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static T_MFW_HND DataListPa_create (T_MFW_HND parent_window)
{
    T_MFW_WIN       *win_data;
    tQQStandard *data;
    T_QQ        *QQ=NULL;

    MmiTrace("DataListPa_create");

    /* allocate memory for our control block
    */
    if( ( QQ = (T_QQ *) ALLOC_MEMORY( sizeof( T_QQ ) ) ) == NULL )
        return NULL;
    if( ( data = (tQQStandard *) ALLOC_MEMORY( sizeof( tQQStandard ) ) ) == NULL )
    {
        FREE_MEMORY( (void *)QQ, sizeof( T_QQ ) );
        return NULL;
    }


    /* Create the window if we can
    */
    if( ( data->win = win_create( parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB) DataListPa_win_cb ) ) == NULL )
    {
        FREE_MEMORY( (void *)QQ, sizeof( T_QQ ) );
        FREE_MEMORY( (void *)data, sizeof( tQQStandard ) );
        return NULL;
    }

    /* Okay, we have created the control block and the window, so
       we now need to configure the dialog and data pointers
    */
    data->mmi_control.dialog    = (T_DIALOG_FUNC) DataListPa_dialog;
    data->mmi_control.data      = data;
    win_data                    = ((T_MFW_HDR *)data->win)->data;
    win_data->user              = (void *) data;
    data->QQ                    = QQ;
    data->parent_win            = parent_window;


    /* And return the handle of the newly created window
    */
    MmiTrace("creat_DataListPa_win");
    MmiTraceInt(data->win);
    return data->win;

}

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

 $Function:    	E2CInput_destroy

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static void DataListPa_destroy (T_MFW_HND own_window)
{
    T_MFW_WIN     *win  = ((T_MFW_HDR *) own_window)->data;
    tQQStandard *data = (tQQStandard *) win->user;
    T_MFW_HND   parwin=data->parent_win;
    U16 memoryleft;
    MmiTrace("DataListPa_destroy");
    ReadbtnShow=0;
    if( DataListType==Unread_info_list )
    {
        CanReadQQ=1;
    }

    if( data )
    {
        MmiTrace("destroy_DataListPa_win");
        MmiTraceInt(data->win);
        winDelete ( data->win );

        FreeListMemory();
        if( data->QQ!=NULL )
            FREE_MEMORY( (void *)data->QQ, sizeof( T_QQ ) );
        if( data!=NULL )
            FREE_MEMORY( (void *)data, sizeof( tQQStandard ) );
    }

    if_back_datalist(parwin);

    MmiTrace("mem");
    memoryleft=mfwCheckMemoryLeft();
    MmiTraceInt(memoryleft);
}


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

 $Function:    	E2CInput_win_cb

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static int DataListPa_win_cb (T_MFW_EVENT event, T_MFW_WIN * win)
{
    tQQStandard *data = (tQQStandard *) win->user;

    TRACE_FUNCTION ("DataListPa_win_cb()");
    MmiTrace("DataListPa_win_cb");

    /* Handle the visible event, otherwise return MFW_EVENT_PASSED
    */
    switch( event )
    {
    case MfwWinVisible:
        {
        }
        break;

    default:
        {
            /* unabel to handle event, pass handling of event back up tree
            */
            return MFW_EVENT_PASSED;
        }
    }

    /* if we get here, we have handled the event
    */
    return MFW_EVENT_CONSUMED;
}

//get the phone friend list to show 
static void DataListPa_dialog(T_MFW_HND win, USHORT event, SHORT value, void *parameter)
{
    T_MFW_WIN       *win_data   = ((T_MFW_HDR *) win)->data;
    tQQStandard *data       = (tQQStandard *) win_data->user;
    T_MFW_HND       parentwin=data->parent_win;
    int i=0;
    int DataListTotal=0;
    UINT32 b_color,f_color;
    UBYTE   old_mode;
    MmiTrace("DataListPa_dialog");

    switch( event )
    {
    case QQ_INIT:
        {
            DataListTotal=DatalistUpdate(); 
            MmiTraceInt(DataListTotal);
            if( (DataListTotal==0)&&(DataListType==Unread_info_list) )
            {
                DataListPa_destroy( win );
                return;
            }
            else if( DataListTotal==0 )
            {
                QQShowInformation( win, TxtEmptyList, 0,NULL,300,destroy_one,(T_VOID_FUNC)QQ_Inofrmation_cb);//内存无够        	          	  
                return;
            }

            Data_List_data = (ListMenuData *)ALLOC_MEMORY(sizeof(ListMenuData));
            if( Data_List_data==NULL )
            {
                QQShowInformation( win, TxtEmptyList, 0,NULL,300,destroy_one,(T_VOID_FUNC)QQ_Inofrmation_cb);//内存无够        	          	  
            }
            else
            {
                Data_List_data->List = (T_MFW_MNU_ITEM *)ALLOC_MEMORY( DataListTotal*sizeof(T_MFW_MNU_ITEM) );
                if( Data_List_data->List!=NULL )
                {
                    MmiTrace("malloc data");
                    MmiTraceInt(sizeof(ListMenuData));
                    MmiTrace("malloc list");
                    MmiTraceInt( DataListTotal*sizeof(T_MFW_MNU_ITEM) );

                    for( i = 0; i < (DataListTotal); i++ )
                    {
                        Data_List_data->List[i].exta = 0;
                        Data_List_data->List[i].edit = 0;
                        Data_List_data->List[i].menu = 0;
                        Data_List_data->List[i].func = NULL;
                        {
                            switch( DataListType )
                            {
                            case Nvm_fri_list:
                            case Net_fri_list:
                                Data_List_data->List[i].icon =0;                        
                                Data_List_data->List[i].str=(char *)(((TQQFrinendItem*)pQQListItem+i)->QQname);
                                break;
                            case Sys_info_list:
                                if( (((TQQItem*)pQQListItem+i)->type)==Unread_sys )
                                    Data_List_data->List[i].icon = &newsmslist;
                                else
                                    Data_List_data->List[i].icon = &mtlist;                     
                                Data_List_data->List[i].str=(char *)(((TQQItem*)pQQListItem+i)->QQSms);//maybe need switch																																
                                break;
                            case Left_info_list:
                                if( (((TQQItem*)pQQListItem+i)->type)==Unread_Left )
                                    Data_List_data->List[i].icon = &newsmslist;
                                else
                                    Data_List_data->List[i].icon = &mtlist;                     
                                Data_List_data->List[i].str=(char *)(((TQQItem*)pQQListItem+i)->QQSms);//maybe need switch																																
                                break;
                            case Chat_info_list://may add from: To:
                                if( (((TQQItem*)pQQListItem+i)->type)==Unread_fri )
                                    Data_List_data->List[i].icon = &newsmslist;
                                else
                                    Data_List_data->List[i].icon = &mtlist;                     
                                Data_List_data->List[i].str=(char *)(((TQQItem*)pQQListItem+i)->QQname);//maybe need switch
                                break;
                            case Unread_info_list:
                                Data_List_data->List[i].icon = &newsmslist;                     
                                Data_List_data->List[i].str=(char *)(((TQQItem*)pQQListItem+i)->QQname);//maybe need switch
                                break;
                            default:    break;
                            }
                        }

                        Data_List_data->List[i].flagFunc=item_flag_none;
                    }

                    Data_List_data->ListLength     =DataListTotal;
                    Data_List_data->ListPosition    = 1;                    
                    Data_List_data->CursorPosition = 1;
                    Data_List_data->SnapshotSize  = DataListTotal;
                    Data_List_data->Font          = 0;
                    Data_List_data->LeftSoftKey    = TxtSoftSelect;
                    Data_List_data->RightSoftKey   = TxtSoftBack;
                    Data_List_data->KeyEvents     = KEY_ALL;
                    Data_List_data->Reason        = 0;
                    Data_List_data->Strings        = TRUE;
                    Data_List_data->Attr           = &qq_menuAttrib;                 
                    Data_List_data->autoDestroy    = FALSE;
                    Data_List_data->ListMenuFlag    =1; 

                    {
                        switch( DataListType )
                        {
                        case Nvm_fri_list:
                            Data_List_data->ListMenuHeadStr=MmiRsrcGetText(TxtQQNVMFriend);
                            SetWindowsHandle(win);

⌨️ 快捷键说明

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