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

📄 uidlg.cpp

📁 funambol window mobile客户端源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        // set the bit for the current source to know that for it we have received a Sync Source Ended event
        sourceBegins |= (int) pow(2.0, currentSource);

        CString msg;
        msg.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_CHECKING);
        msg+=" ";

        switch(lParam)
        {
        case SOURCE_MAIL:
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_MAIL); break;
        case SOURCE_CALENDAR:
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_CALENDAR); break;
            //s1=getStringLang(IDS_LOWER_CALENDAR); break;
        case SOURCE_CONTACTS:
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_CONTACTS); break;
        case SOURCE_TASKS:
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_TASKS); break;
        case SOURCE_BRIEFCASE:
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_FILES); break;
        case SOURCE_NOTES:
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_NOTES); break;

        default:
            s1 = "";
        }

        msg+=s1;

        lstSources.setText(lParam, msg);
    };

    // if source fails without sending a message that it has finished
    // then we send it ourselves
    if(lstSources.getIsSyncing(currentSource)){
        OnMsgEndingSource(NULL, NULL);
    }

    // if the source fails without sending 'Starting' message
    //s1 = lstSources.getText(currentSource);
    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_CONNECTING); s2 = "("; s2+=s1; s2+= ")";
    s1 = lstSources.getText(firstSourceId);
    if(s1.Compare(s2) == 0){
        s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_FAILED);
        lstSources.setText(firstSourceId, s1);
    }

    //currentSource = lParam;
    currentItem = 0;
    //LOG.debug("OnStartingSource: firstSourceId=%d", firstSourceId);
    lstSources.stopAnim(firstSourceId);

    lstSources.setIsSyncing(currentSource, true);
    lstSources.SetCurSelItem(lstSources.idToIndex(currentSource));
    lstSources.startAnim(currentSource);

    return 0;
}

// not a WM_APP message handler
void CuiDlg::OnMsgItemSynced(WPARAM wParam, LPARAM lParam, bool fromClient)
{
    int source=-1;
    CString msg("");
    CString s1;

    if(!bSyncStarted)
        return;
    
    if (resetTheItem) {
        resetTheItem = false;
        currentItem = 0;
    }
    currentItem++;

    if( ((wParam > 0)  && (currentSource != wParam)))  // extra check
    {
        resetCurrentItem = true;
        lastItem = 0;        
    };

    CString s2; s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_UPDATES);
            
    if( fromClient ){
        if (messageToWrite == "") {
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SENDING);
            s1 += " ";
            s1 += s2;
        } else {
            s1 = messageToWrite;            
        }
        //msg += s1; msg+=" ";
        msg += s1; 
    }
    else{
        s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_RECEIVING);
        msg+=s1; msg+=" ";
        msg+= s2;
    }

    source = wParam;
    currentSource = source;
/*
    if(currentSource == SOURCE_MAIL){
        totalItems = nMailsToSync;
    };
*/
    if( (!resetCurrentItem) && (lParam != 0) )  // the server sent more valid noc's for the same source
        currentItem =lastItem+lParam;

    /* // not used because the last word is always "updates"
    switch(source) {
        case SOURCE_MAIL:
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_MAIL); break;
        case SOURCE_CALENDAR:
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_CALENDAR); break;
        case SOURCE_CONTACTS:
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_CONTACT); break;
        case SOURCE_TASKS:
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_TASK); break;
        case SOURCE_BRIEFCASE:
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_FILE); break;
        case SOURCE_NOTES:
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_NOTE); break;
        default:
            s1 = "";
    } 
    msg+=s1;
    */

   
    if(msg == "")
        goto finally;
    msg+=" ";

    char* v = ltow(currentItem);
    msg+=v;
    delete [] v; v = NULL;

    if( (totalItems != -1) && (currentItem <= totalItems))
    {
        msg+="/";
        char* v = ltow(totalItems);
        msg+=v;
        delete [] v; v = NULL;
    }

    lstSources.setText(source, msg);

   finally:

    return;
}

LRESULT CuiDlg::OnMsgItemSyncedFromServer( WPARAM wParam, LPARAM lParam)
{
    OnMsgItemSynced(wParam,lParam, false);
    return 0;
}

LRESULT CuiDlg::OnMsgItemSyncedFromClient( WPARAM wParam, LPARAM lParam)
{
    OnMsgItemSynced(wParam, lParam, true);
    return 0;
}

/**
* wParam = source id
* lParam = number of items
* Sending message
*/
LRESULT CuiDlg::OnMsgTotalItemsNew(WPARAM wParam, LPARAM lParam) {
 
    resetTheItem   = true;    
    CString s; s.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SENDING_MESSAGE);
    messageToWrite = s;
    return OnMsgTotalItems(wParam, lParam);
}

/**
* wParam = source id
* lParam = number of items
* Sending updates
*/
LRESULT CuiDlg::OnMsgTotalItemsMod(WPARAM wParam, LPARAM lParam) {
 
    resetTheItem   = true;    
    messageToWrite = ""; // substitute with resource string
    return OnMsgTotalItems(wParam, lParam);
}

/**
* wParam = source id
* lParam = number of items
* Not used at the moment
*/
LRESULT CuiDlg::OnMsgTotalItemsDel(WPARAM wParam, LPARAM lParam) {
 
    resetTheItem   = true;    
    messageToWrite = "Deleting"; // substitute with resource string
    return OnMsgTotalItems(wParam, lParam);
}

// TODO: remove unused code
LRESULT CuiDlg::OnMsgTotalItems(WPARAM wParam, LPARAM lParam)
{
    CString msg;
    CString s1;
    bool changeLabel = false;
    int sourceNumber = wParam;
    totalItems = lParam;

    if (!resetTheItem) {
        messageToWrite = "";
    }
    msg.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_RECEIVING); msg+=" ";

#if 0
    if ( (sourceNumber != -1) && (sourceNumber > 0) )   // wParam > 0, then the modifs are from server
    {
        if (sourceNumber != currentSource)    // a new source from server
        {
            // begin a new source from server, update the progress bar for the previous source
            changeLabel = true;

            if((currentItem < ITEMS_FROM_SERVER) && (currentItem > 0) && (totalItems == -1))
            {
                /* syncSourceTotalServerItems supplied -1, so if the number of synced
                items is less than ITEMS_FROM_SERVER, step the remaining of the progressbar for
                (ITEMS_FROM_SERVER - currentItem-1) items
                */

                currentItem = 0;
                lastItem = 0;
            };

            totalItems = lParam;
            resetCurrentItem = true;
            lastItem = 0;
            currentItem = 0;
            currentSource = sourceNumber;
        }
        else
        {
            /*
            wParam == currentSource, one of more syncSourceTotalServerItems events for
            the same source, or there is only one source to be synced
            (lastSource == -1) for sources from client
            (lastSource > 0) for sources from server, here lastSource is the source code
            */
            if(lastSource < 0)  // (wParam>0) && (lastSource<0) => first source from server
            {
                resetCurrentItem = true;
                totalItems = lParam;
                lastItem = 0;
                currentItem = 0;
                changeLabel = true;
            }
            else
            {
                resetCurrentItem = false;
                lastItem = currentItem;
            }
        };
    } //if wParam < 0
    else if(wParam == -1)
    {
        totalItems = lParam;    // source from client, total items are ok
    }

#endif

    switch(sourceNumber)
    {
    case SOURCE_MAIL:
        s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_MAIL); break;
    case SOURCE_CALENDAR:
        s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_CALENDAR); break;
    case SOURCE_CONTACTS:
        s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_CONTACTS); break;
    case SOURCE_TASKS:
        s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_TASKS); break;
    case SOURCE_BRIEFCASE:
        s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_NOTES); break;
    case SOURCE_NOTES:
        s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LOWER_FILES); break;

    default:
        s1 = "";
    }

    msg+=s1;
    if( (msg!="") &&  changeLabel) // !
    {
        SetDlgItemText(IDC_MAIN_MSG,msg);
        lstSources.setText(wParam, msg);
        if(lstSources.GetNextItem(-1, LVNI_SELECTED ) != wParam)
            lstSources.SetItemState(wParam, LVIS_SELECTED, LVIF_STATE);
    }

/*
    if(wParam == SOURCE_MAIL){
        nMailsToSync+=totalItems;
    }
*/
    return 0;
}


void CuiDlg::CreateMenuBar(const int id){
    ZeroMemory(&dlgCommandBar, sizeof(SHMENUBARINFO));
    dlgCommandBar.cbSize = sizeof(SHMENUBARINFO);
    dlgCommandBar.hwndParent = this->GetSafeHwnd();
    dlgCommandBar.dwFlags = SHCMBF_HMENU;
    dlgCommandBar.nToolBarId = id;
    dlgCommandBar.hInstRes = getLocalizationUtils()->getLocaleResource();
    dlgCommandBar.nBmpId = 0;
    dlgCommandBar.cBmpImages = 0;
    if(!SHCreateMenuBar(&dlgCommandBar)){
        TRACE(_T("Cannot create command bar!\n\n"));
    }
}

LRESULT CuiDlg::OnOKMsg(WPARAM wParam, LPARAM lParam) {
    this->ShowWindow(SW_MINIMIZE);
    return 0;
}

void CuiDlg::OnOK()
{
    this->ShowWindow(SW_MINIMIZE);
}
bool isServerConfigured() {

    ClientSettings* cs = getRegConfig();
    CString s1;
    s1 = cs->getAccessConfig().getSyncURL();
    if(s1.Find(_T("<")) > 0)
        return false;
    else
        return true;

}

// override back key sph
void CuiDlg::OnCancel(){
    // just hide the window
    this->ShowWindow(SW_MINIMIZE);
}


HBRUSH CuiDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){
    if(pWnd->GetRuntimeClass() == RUNTIME_CLASS(CCustomButton)){
        pDC->SetBkMode(TRANSPARENT);
        pDC->SetBkColor(RGB(255,255,255));
        return (HBRUSH) GetStockObject(HOLLOW_BRUSH);
    }

    HBRUSH hbr = (HBRUSH) CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    return hbr;
}


void CuiDlg::initSyncControls(){
    CString s1;
    ClientSettings* cs = getRegConfig();
    s1 = cs->getAccessConfig().getSyncURL();

    // add sync sources to list
    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_EMAIL);
    lstSources.addItem(SOURCE_MAIL, s1, AfxGetApp()->LoadIcon(IDI_MAIL));
    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_CONTACTS);
    lstSources.addItem(SOURCE_CONTACTS, s1, AfxGetApp()->LoadIcon(IDI_CONTACTS));
    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_CALENDAR);
    lstSources.addItem(SOURCE_CALENDAR, s1, AfxGetApp()->LoadIcon(IDI_CALENDAR));
    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TASKS);
    lstSources.addItem(SOURCE_TASKS, s1, AfxGetApp()->LoadIcon(IDI_TASKS));

    // Initialize the main logo only if it's a portal build.
    //if(cs->getIsPortal()) {
    //    lstSources.calculateMainLogoPosition();
    //}
    if (!showNoteSource && !showBriefcaseSource) {
        lstSources.calculateMainLogoPosition();
    }

    //if(!cs->getIsPortal()){
    if (showNoteSource) {
        #if defined(WIN32_PLATFORM_PSPC)
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOTES);
            lstSources.addItem(SOURCE_NOTES, s1, AfxGetApp()->LoadIcon(IDI_NOTES));
        #endif
    }
    if (showBriefcaseSource) {

⌨️ 快捷键说明

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