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

📄 pimsettings.cpp

📁 funambol window mobile客户端源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        GetDlgItem(IDC_NOTES_STATIC_FOLDER)->ShowWindow(SW_HIDE);
        linkNotesChoose.ShowWindow(SW_HIDE);
#endif
    }
    if (showBriefcaseSource) {
        CString foldertosync;
        //briefcase
        GetDlgItem(IDC_BRIEFCASE_STATIC_FOLDERTOSYNC)->SetFont(&fontBold);
        foldertosync.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_BRIEFCASE);
        s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_FOLDER_TO_SYNC);
        foldertosync += s1;
        SetDlgItemText(IDC_BRIEFCASE_STATIC_FOLDERTOSYNC,foldertosync);

        s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_CHOOSE);
        linkBriefcaseChoose.setText(s1);

        WindowsSyncSourceConfig* ssconfbriefcase = getRegConfig()->getWinSyncSourceConfig("briefcase");
        s3 = ssconfbriefcase->getSyncDir().c_str();

        if (s3 == "") {
            LPTSTR dir = new  WCHAR[512];
            SHGetSpecialFolderPath(NULL, dir, CSIDL_PERSONAL, FALSE);
            wstring s(dir);
            delete [] dir;
            wstring brief = s; brief += L"\\briefcase";
            if (existsDirectory((wchar_t*)brief.c_str())) {
                s3 = brief.c_str();
            } else {
                s3 = s.c_str();
            }
        }

        briefcaseFolder = s3;
        SetDlgItemText(IDC_BRIEFCASE_STATIC_FOLDER, s3);
        s3.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_BRIEFCASE_CHOOSE_FOLDER);
    }
    else{
        GetDlgItem(IDC_BRIEFCASE_STATIC_FOLDERTOSYNC)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_BRIEFCASE_STATIC_FOLDER)->ShowWindow(SW_HIDE);
        linkBriefcaseChoose.ShowWindow(SW_HIDE);
    }


    // fix for wrong title problem, we get & set the title for the main window
    wchar_t title[256];
    AfxGetMainWnd()->GetWindowText(title,256);
    AfxGetMainWnd()->SetWindowText(title);

    lstSyncType.SetFocus();
    return FALSE;
}

void CPIMSettings::OnOK()
{
    if(checkStartSync()){
        CDialog::OnOK();
    }

    int pos = lstSyncType.GetCurSel();
    const char* syncType = SynctypeUI2Reg(pos);

    // Save value in registry for contacts
    WindowsSyncSourceConfig* ssconf = getRegConfig()->getWinSyncSourceConfig("contact");
    if (!ssconf) {
        TRACE(_T("Source 'contact' not found in registry!"));
        return;
    }
    if(strcmp(syncType, ssconf->getSync())){
        ssconf->setSync(syncType);
        getRegConfig()->setDirty(CS_DIRTY_SOURCE_CONTACTS);
    }

    // Save value in registry for calendar
    ssconf = getRegConfig()->getWinSyncSourceConfig("calendar");
    if (!ssconf) {
        TRACE(_T("Source 'calendar' not found in registry!"));
        return;
    }
    if(strcmp(syncType, ssconf->getSync())){
        ssconf->setSync(syncType);
        getRegConfig()->setDirty(CS_DIRTY_SOURCE_CALENDAR);
    }

    // Save value in registry for tasks
    ssconf = getRegConfig()->getWinSyncSourceConfig("task");
    if (!ssconf) {
        TRACE(_T("Source 'task' not found in registry!"));
        return;
    }
    if(strcmp(syncType, ssconf->getSync())){
        ssconf->setSync(syncType);
        getRegConfig()->setDirty(CS_DIRTY_SOURCE_TASKS);
    }


    //if (!getRegConfig()->getIsPortal()) {
    if (showNoteSource) {
        //
        // Normal build: we have notes and briefcase
        //
#if defined(WIN32_PLATFORM_PSPC)
        USES_CONVERSION;

        // Save values in registry for notes
        ssconf = getRegConfig()->getWinSyncSourceConfig("note");
        if (!ssconf) {
            TRACE(_T("Source 'note' not found in registry!"));
            return;
        }
        if(strcmp(syncType, ssconf->getSync())){
            ssconf->setSync(syncType);
            getRegConfig()->setDirty(CS_DIRTY_SOURCE_NOTES);
        }

        // Save notes folder dir
        if(notesFolder == _T("")) {
            WCHAR* tmp = toWideChar(ssconf->getSyncDir().c_str());
            notesFolder = tmp;
            if (tmp) { delete [] tmp; }
        }
        else {
            char* dir = toMultibyte(notesFolder.GetBuffer());
            if ( strcmp(dir, ssconf->getSyncDir().c_str()) ) {
                ssconf->setSyncDir(dir);
                getRegConfig()->setDirty(CS_DIRTY_SOURCE_NOTES);
            }
            if (dir) { delete [] dir; }
        }
#endif
    }
    if (showBriefcaseSource) {

        // Save values in registry for briefcase
        ssconf = getRegConfig()->getWinSyncSourceConfig("briefcase");
        if (!ssconf) {
            TRACE(_T("Source 'briefcase' not found in registry!"));
            return;
        }
        if(strcmp(syncType, ssconf->getSync())){
            ssconf->setSync(syncType);
            getRegConfig()->setDirty(CS_DIRTY_SOURCE_BRIEFCASE);
        }

        // Save briefcase folder dir
        if(briefcaseFolder == _T("")) {
            WCHAR* tmp = toWideChar(ssconf->getSyncDir().c_str());
            briefcaseFolder = tmp;
            if (tmp) { delete [] tmp; }
        }
        else {
            char* dir = toMultibyte(briefcaseFolder.GetBuffer());
            if ( strcmp(dir, ssconf->getSyncDir().c_str()) ) {
                ssconf->setSyncDir(dir);
                getRegConfig()->setDirty(CS_DIRTY_SOURCE_BRIEFCASE);
            }
            if (dir) { delete [] dir; }
        }
    }

    getRegConfig()->saveDirty();

    CDialog::OnOK();
}


void CPIMSettings::LoadStringResources(){
    CString s1;
    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCTYPE); 
    SetDlgItemText(IDC_SETTPIM_STATIC_SYNCTYPE, s1);
}

void CPIMSettings::OnBnClickedBriefcaseLinkChoose()
{
    CExploreFolders wndExplore;

    #if defined(WIN32_PLATFORM_PSPC)
        wndExplore.setIsNotes(false);
    #endif

    wndExplore.setFolder(briefcaseFolder);

    INT_PTR result = wndExplore.DoModal();
    if (result == IDCHOOSE){
        briefcaseFolder = wndExplore.getFolder();
        SetDlgItemText(IDC_BRIEFCASE_STATIC_FOLDER, briefcaseFolder);
    }

}

void CPIMSettings::OnBnClickedPIMLinkAdvanced() {
    // Not yet implemented, advanced link is not used.
    //CPIMSettingsAdvanced wndContactsAdvanced;
    //INT_PTR result = wndContactsAdvanced.DoModal();
}


// capture pressing of 'Advanced' link
BOOL CPIMSettings::PreTranslateMessage(MSG* pMsg){
    bool bProcessed =false;
    if(pMsg->message == WM_KEYDOWN){
        if(pMsg->wParam == VK_RETURN){
     /*       if(GetFocus()->GetSafeHwnd() == linkAdvanced.GetSafeHwnd()){
                bProcessed = true;
                OnBnClickedPIMLinkAdvanced();
            }*/
            if(GetFocus()->GetSafeHwnd() == linkNotesChoose.GetSafeHwnd()){
                bProcessed = true;
                OnBnClickedNotesLinkChoose();
            }
            if(GetFocus()->GetSafeHwnd() == linkBriefcaseChoose.GetSafeHwnd()){
                bProcessed = true;
                OnBnClickedBriefcaseLinkChoose();
            }
        }
    }

    if(bProcessed)
        return TRUE;
    else
        return CDialog::PreTranslateMessage(pMsg);
}

HBRUSH CPIMSettings::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // set ppc header text color
#if defined(WIN32_PLATFORM_PSPC)
    if(pWnd->GetDlgCtrlID() == IDC_HEADER_STATIC) {
        pDC->SetBkMode(TRANSPARENT);
        pDC->SetTextColor(PPC_HEADER_TEXT_COLOR);
    }
#endif

    return hbr;
}

⌨️ 快捷键说明

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