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

📄 mmiqq.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
                            CanReadQQ=1;
                            break;
                        case Net_fri_list:
                            Data_List_data->ListMenuHeadStr=MmiRsrcGetText(TxtQQNetFriend);
                            SetWindowsHandle(win);
                            CanReadQQ=1;
                            break;
                        case Sys_info_list:
                            Data_List_data->ListMenuHeadStr=MmiRsrcGetText(TxtQQSysInfo);
                            break;
                        case Chat_info_list://may add from: To:
                            Data_List_data->ListMenuHeadStr=MmiRsrcGetText(TxtQQChatInfo);
                            break;
                        case Unread_info_list:
                            Data_List_data->ListMenuHeadStr=MmiRsrcGetText(TxtNewQQ);
                            break;
                        case Left_info_list:
                            Data_List_data->ListMenuHeadStr=MmiRsrcGetText(TxtQQLeftInfo);
                            break;
                        default:    break;
                        }
                    }
                    dspl_Clear(0, 112, 120, 142);
                    listDisplayListMenu(win, Data_List_data, (ListCbFunc)DataList_cb,0);
                    if( (DataListType==Nvm_fri_list)||(DataListType==Net_fri_list) )
                    {
                        old_mode=dspl_Enable(0);
                        b_color=dspl_SetBkgColor(0xF8E0EE);
                        f_color=dspl_SetFrgColor(0x000000);
                        dspl_BitBlt(1,126,16,16,0,(void *)newQQ,DSPL_BMPXOR);
                        dspl_BitBlt(1,126,16,16,0,(void *)newQQmask,DSPL_BMPAND);
                        dspl_BitBlt(1,126,16,16,0,(void *)newQQ,DSPL_BMPXOR);
                        dspl_TextOut(17,126,0,(char *)(((TQQFrinendItem*)pQQListItem)->QQnumber));     
                        dspl_SetBkgColor(b_color);
                        dspl_SetFrgColor(f_color);
                        dspl_Enable(old_mode);
                    }
                }
                else
                {
                    FREE_MEMORY( (void *)Data_List_data, sizeof( ListMenuData ) );
                    QQShowInformation(win, TxtEmptyList, 0,NULL,300,destroy_one, (T_VOID_FUNC)QQ_Inofrmation_cb);//改为无法分配空间	                              
                }                               
            }           
        }
        break;

    case QQ_DESTROY:
        {
            /* destroy the input window
            */
            DataListPa_destroy( win );
        }
        break;
    }


}


/*******************************************************************************
                                                                              
                                Public Methods
                                                                              
*******************************************************************************/
static void DataList_cb(T_MFW_HND * Parent, ListMenuData * ListData)
{
    T_MFW_WIN       * win_data = ((T_MFW_HDR *)Parent)->data;
    tQQStandard     * data=(tQQStandard     *)win_data->user;  
    T_MFW_WIN       * windata = ((T_MFW_HDR *)ListData->win)->data;
    ListWinInfo        * dataInfo = (ListWinInfo *)windata->user;
    UINT32 b_color,f_color;
    MfwMnu *MenuHandle;
    UBYTE   old_mode;

    MmiTrace("DataList_cb");
    MmiTraceInt(Parent);
    MmiTraceInt(ListData->win);
    MmiTraceInt( ListData->Reason );

    switch( ListData->Reason )
    {
    case LISTS_REASON_OK:
        {
            MmiTrace("key_ok");
            if( (HavenewQQ)&&(CanReadQQ)
                &&(DataListType!=Chat_info_list)&&(DataListType!=Sys_info_list)
                &&(DataListType!=Unread_info_list)&&(DataListType!=Left_info_list) )
            {
                //copy the first list element to temp element
                tempDataListType=DataListType;
                temp_Data_List_data=Data_List_data;
                pQQTempListItem=pQQListItem;
                IsFormDatalistcb=1;
                Get_Unread_info(ListData->win);
                break;
            }
        }
    case LISTS_REASON_SELECT:
        {
            data->QQ->QQselmenu =ListData->win;
            {

                switch( DataListType )
                {
                case Nvm_fri_list:
                    data->QQ->select_index =((TQQFrinendItem*)pQQListItem+(ListData->ListPosition))->index;
                    MmiTraceInt(data->QQ->select_index);
                    dspl_Clear(0, 112, 120, 142);
                    bookMenuStart(Parent, QQNVMSelMenuAttributes(), Nvm_fri_list);
                    break;
                case Net_fri_list:
                    data->QQ->select_index =((TQQFrinendItem*)pQQListItem+(ListData->ListPosition))->index;
                    MmiTraceInt(data->QQ->select_index);
                    dspl_Clear(0, 112, 120, 142);
                    bookMenuStart(Parent, QQNetSelMenuAttributes(), Net_fri_list);
                    break;
                case Sys_info_list:
                case Chat_info_list:
                case Unread_info_list:
                case Left_info_list:
                    data->QQ->select_index =((TQQItem*)pQQListItem+(ListData->ListPosition))->index;
                    MmiTraceInt(data->QQ->select_index);
                    View_QQ_Sms(ListData->win);
                    break;
                default:    break;
                }
            }
        }
        break;
    case LISTS_REASON_UP:
        mnuUp(dataInfo->MenuLists);
        MenuHandle = mfwControl(dataInfo->MenuLists);
        ListData->CursorPosition = MenuHandle->lCursor[MenuHandle->level];
        ListData->ListPosition  = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */
        dataInfo->MenuData.Attr->pageturnindex=ListData->CursorPosition;
        dspl_Clear(0, 112, 120, 142);
        if( (DataListType!=Nvm_fri_list)&&(DataListType!=Net_fri_list) )
            break;
        if( (DataListType==Nvm_fri_list)||(DataListType==Net_fri_list) )
        {
            old_mode=dspl_Enable(0);
            b_color=dspl_SetBkgColor(0xF8E0EE);
            f_color=dspl_SetFrgColor(0x000000);
            dspl_BitBlt(1,126,16,16,0,(void *)newQQ,DSPL_BMPXOR);
            dspl_BitBlt(1,126,16,16,0,(void *)newQQmask,DSPL_BMPAND);
            dspl_BitBlt(1,126,16,16,0,(void *)newQQ,DSPL_BMPXOR);
            dspl_TextOut(17,126,0,(char *)(((TQQFrinendItem*)pQQListItem+(ListData->ListPosition))->QQnumber));    
            dspl_SetBkgColor(b_color);
            dspl_SetFrgColor(f_color);
            dspl_Enable(old_mode);
        }
        break;
    case LISTS_REASON_DOWN:
        mnuDown(dataInfo->MenuLists);
        MenuHandle = mfwControl(dataInfo->MenuLists);
        ListData->CursorPosition = MenuHandle->lCursor[MenuHandle->level];
        ListData->ListPosition  = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */
        if( (DataListType!=Nvm_fri_list)&&(DataListType!=Net_fri_list) )
            break;
    case LISTS_REASON_UPDATE:
        dspl_Clear(0, 112, 120, 142);
        if( (DataListType==Nvm_fri_list)||(DataListType==Net_fri_list) )
        {
            old_mode=dspl_Enable(0);
            b_color=dspl_SetBkgColor(0xF8E0EE);
            f_color=dspl_SetFrgColor(0x000000);
            dspl_BitBlt(1,126,16,16,0,(void *)newQQ,DSPL_BMPXOR);
            dspl_BitBlt(1,126,16,16,0,(void *)newQQmask,DSPL_BMPAND);
            dspl_BitBlt(1,126,16,16,0,(void *)newQQ,DSPL_BMPXOR);
            dspl_TextOut(17,126,0,(char *)(((TQQFrinendItem*)pQQListItem+(ListData->ListPosition))->QQnumber));    
            dspl_SetBkgColor(b_color);
            dspl_SetFrgColor(f_color);
            dspl_Enable(old_mode);
            if( (HavenewQQ)&&(CanReadQQ) )
            {
                ReadbtnShow=1;
                display3SoftKeys(TxtRead);
            }
            else
            {
                ReadbtnShow=0;
                displaySoftKeys(TxtSelect,TxtSoftBack);
#if(MAIN_LCD_SIZE==3)
				draw_softkeybar_updown_arrow();//jhxu720
#endif
            }

        }
        break;

    case LISTS_REASON_HANGUP:
    case LISTS_REASON_BACK:
        {
            FreeListMemory();
            listsDestroy(ListData->win);
            DataListPa_destroy( Parent );
        }
        break;


    default:break;      
    }                                 
}

int Get_NET_Friend(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND win = mfw_parent(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   */
    U16 memoryleft;

    MmiTrace("Get_NET_Friend");
    MmiTrace("mem");
    memoryleft=mfwCheckMemoryLeft();
    MmiTraceInt(memoryleft);
    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);

    wstrcpy(info,"MQ");//63
    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);    

    MmiTrace("sending parent");
    MmiTraceInt(win);
    QQsend.QQsendmsg=get_net_fri;
    QQsend.sendingpawin=win;
    QQsend.sendingwin=QQShowInformation( win, 0, TxtSending,QQSernumber,FOREVER,SMS_SENDING_MSG,(T_VOID_FUNC)QQ_Inofrmation_cb);

    return MFW_EVENT_CONSUMED;
}


static int Show_NET_Friend()
{
    T_MFW_HND win = mfw_parent(mfwFocus);
    T_MFW_HND parwin = mfw_parent(win);
    U16 memoryleft;
    MmiTrace("Show_NET_Friend");
    MmiTraceInt(parwin);
    MmiTraceInt(QQsend.QQsendmsg);

    MmiTrace("mem");
    memoryleft=mfwCheckMemoryLeft();
    MmiTraceInt(memoryleft);
    if( (QQsend.sendingpawin!=parwin)||(QQsend.QQsendmsg!=get_net_fri) )
        return -1;

    SEND_EVENT(win, DIALOG_DESTROY, 0, 0);
    win=0;
    DataListType=Net_fri_list;

    if( (DataListPa_Start( parwin ))==NULL )
        return -1;
    return MFW_EVENT_CONSUMED;
}

int Add_New_friend(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND win =  mfwParent( mfw_header() );
    MmiTrace("Add_New_friend");

    QQAddNewStart(win); 

    return MFW_EVENT_CONSUMED;
}

int Get_System_info(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND win = mfw_parent(mfw_header());
    MmiTrace("Get_System_info()");

    //init the parameter


    DataListType=Sys_info_list;
    DataListPa_Start( win );


    return MFW_EVENT_CONSUMED;

}   

int View_left_info(void)
{
    T_MFW_HND win = mfw_parent(mfwFocus);
    T_MFW_HND parwin = mfw_parent(win);
    U16 memoryleft;
    MmiTrace("View_left_info");
    MmiTraceInt(parwin);

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

    if( (QQsend.sendingpawin!=parwin)||(QQsend.QQsendmsg!=get_left_info) )
        return -1;

    SEND_EVENT(win, DIALOG_DESTROY, 0, 0);
    win=0;

    StartPlayByReason(SMSPLAY,0);
    DataListType=Left_info_list;
    if( DataListPa_Start(parwin)!=NULL )
        return 0;
    else
        return -1;
}

int Get_left_info(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND win =  mfwParent( mfw_header() );
    UBYTE*  pstrinfo;
    char    info[20];
    USHORT outLen;
    T_MFW_SMS_INFO  sms_parameter;
    char              sc_addr[MAX_LEN]; /* service centre address   */
    MmiTrace("Get_left_info");

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

    QQsend.QQsendmsg=get_left_info;
    DataListType=Left_info_list;

    wstrcpy(info,"YD");//"62"
    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.sendingpawin=win;
    QQsend.sendingwin=QQShowInformation( win, 0, TxtSending,QQSernumber,FOREVER,SMS_SENDING_MSG,(T_VOID_FUNC)QQ_Inofrmation_cb);


    return MFW_EVENT_CONSUMED;
}   

int Get_chat_info(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND win = mfw_parent(mfw_header());
    MmiTrace("Get_chat_info()");

    //init the parameter
    DataListType=Chat_info_list;

    DataListPa_Start( win );

    return MFW_EVENT_CONSUMED;

}

int Ask_QQ_number(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND parent_window = mfw_parent(mfw_header());
    T_MFW_WIN * win_Data = ((T_MFW_HDR *)parent_window)->data;

⌨️ 快捷键说明

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