📄 syncsettings.cpp
字号:
/*
* Copyright (C) 2003-2007 Funambol, Inc
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY, TITLE, NONINFRINGEMENT or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
* 02111-1307 USA
*/
// SyncSettings.cpp : implementation file
//
#include "stdafx.h"
#include "SyncSettings.h"
#include "ContactSettings.h"
#include "CalendarSettings.h"
#include "TaskSettings.h"
#include "MailSettings.h"
#include "BriefcaseSettings.h"
#include "pim/ClientSettings.h"
#include "SyncSettingsAdvanced.h"
#if defined(WIN32_PLATFORM_PSPC)
#include "NotesSettings.h"
#endif
#include "aygshell.h"
#include "pim/maincpp.h"
#include "pim/account.h"
// CSyncSettings dialog
#define ADVANCED_CONTACTS 1
#define ADVANCED_CALENDAR 2
#define ADVANCED_TASKS 4
#define ADVANCED_MAIL 8
#define ADVANCED_BRIEFCASE 16
#define ADVANCED_NOTES 32
IMPLEMENT_DYNAMIC(CSyncSettings, CDialog)
CSyncSettings::CSyncSettings(CWnd* pParent /*=NULL*/)
: CDialog(CSyncSettings::IDD, pParent)
{
}
CSyncSettings::~CSyncSettings()
{
}
void CSyncSettings::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_SYNC_CONTACTS, checkContacts);
DDX_Control(pDX, IDC_SYNC_CALENDAR, checkCalendar);
DDX_Control(pDX, IDC_SYNC_TASKS, checkTasks);
DDX_Control(pDX, IDC_SYNC_MAIL, checkMail);
DDX_Control(pDX, IDC_SYNC_BRIEFCASE, checkBriefcase);
#if defined(WIN32_PLATFORM_PSPC)
DDX_Control(pDX, IDC_SYNC_NOTES, checkNotes);
DDX_Control(pDX, IDC_SYNC_BUTTON_NOTES, butNotes);
#endif
DDX_Control(pDX, IDC_SYNC_BUTTON_MAIL, butMail);
DDX_Control(pDX, IDC_SYNC_BUTTON_CALENDAR, butCalendar);
DDX_Control(pDX, IDC_SYNC_BUTTON_CONTACTS, butContacts);
DDX_Control(pDX, IDC_SYNC_BUTTON_TASKS, butTasks);
DDX_Control(pDX, IDC_SYNC_BUTTON_BRIEFCASE, butBriefcase);
DDX_Control(pDX, IDC_SYNC_LINK_ADVANCED, linkAdvanced);
}
BEGIN_MESSAGE_MAP(CSyncSettings, CDialog)
#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
ON_WM_SIZE()
#endif
ON_BN_SETFOCUS(IDC_SYNC_CONTACTS, &CSyncSettings::OnSetfocusSyncContacts)
ON_BN_CLICKED(IDC_SYNC_CONTACTS, &CSyncSettings::OnBnClickedSyncContacts)
ON_BN_SETFOCUS(IDC_SYNC_CALENDAR, &CSyncSettings::OnBnSetfocusSyncCalendar)
ON_BN_SETFOCUS(IDC_SYNC_TASKS, &CSyncSettings::OnBnSetfocusSyncTasks)
ON_BN_SETFOCUS(IDC_SYNC_MAIL, &CSyncSettings::OnBnSetfocusSyncMail)
ON_BN_SETFOCUS(IDC_SYNC_BRIEFCASE, &CSyncSettings::OnBnSetfocusSyncBriefcase)
ON_BN_SETFOCUS(IDC_SYNC_BRIEFCASE, &CSyncSettings::OnBnSetfocusSyncBriefcase)
ON_BN_SETFOCUS(IDC_SYNC_LINK_ADVANCED, &CSyncSettings::OnBnSetfocusSyncLinkAdvanced)
#if defined(WIN32_PLATFORM_PSPC)
ON_BN_SETFOCUS(IDC_SYNC_NOTES, &CSyncSettings::OnBnSetfocusSyncNotes)
#endif
ON_BN_CLICKED(IDC_SYNC_CALENDAR, &CSyncSettings::OnBnClickedSyncCalendar)
ON_BN_CLICKED(IDC_SYNC_TASKS, &CSyncSettings::OnBnClickedSyncTasks)
ON_BN_CLICKED(IDC_SYNC_MAIL, &CSyncSettings::OnBnClickedSyncMail)
ON_BN_CLICKED(IDC_SYNC_BRIEFCASE, &CSyncSettings::OnBnClickedSyncBriefcase)
//ON_COMMAND(IDADVANCED, &CSyncSettings::showAdvanced)
ON_BN_CLICKED(IDC_SYNC_BUTTON_MAIL, &CSyncSettings::OnClickedSyncButtonMail)
ON_BN_CLICKED(IDC_SYNC_BUTTON_CALENDAR, &CSyncSettings::OnClickedSyncButtonCalendar)
ON_BN_CLICKED(IDC_SYNC_BUTTON_CONTACTS, &CSyncSettings::OnClickedSyncButtonContacts)
ON_BN_CLICKED(IDC_SYNC_BUTTON_TASKS, &CSyncSettings::OnClickedSyncButtonTasks)
ON_BN_CLICKED(IDC_SYNC_BUTTON_BRIEFCASE, &CSyncSettings::OnClickedSyncButtonBriefcase)
#if defined(WIN32_PLATFORM_PSPC)
ON_BN_CLICKED(IDC_SYNC_NOTES, &CSyncSettings::OnBnClickedSyncNotes)
ON_BN_CLICKED(IDC_SYNC_BUTTON_NOTES, &CSyncSettings::OnClickedSyncButtonNotes)
#endif
ON_BN_CLICKED(IDC_SYNC_LINK_ADVANCED, &CSyncSettings::OnBnClickedSyncLinkAdvanced)
END_MESSAGE_MAP()
// CSyncSettings message handlers
BOOL CSyncSettings::OnInitDialog()
{
CString s1;
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNC_SETTINGS);
SetWindowText(s1);
CDialog::OnInitDialog();
butMail.ShowWindow(TRUE);
butCalendar.ShowWindow(TRUE);
butContacts.ShowWindow(TRUE);
butTasks.ShowWindow(TRUE);
butBriefcase.ShowWindow(TRUE);
#if defined(WIN32_PLATFORM_PSPC)
butNotes.ShowWindow(TRUE);
#endif
ZeroMemory(&dlgCommandBar, sizeof(SHMENUBARINFO));
dlgCommandBar.cbSize = sizeof(SHMENUBARINFO);
dlgCommandBar.hwndParent = this->GetSafeHwnd();
dlgCommandBar.dwFlags = SHCMBF_HMENU;
dlgCommandBar.nToolBarId = IDM_OKCANCEL;
#if defined WIN32_PLATFORM_WFSP
#if (_WIN32_WCE < 0x500)
dlgCommandBar.nToolBarId = IDR_MENUBAR_OKCANCEL;
#endif
#endif
dlgCommandBar.hInstRes = getLocalizationUtils()->getLocaleResource();
dlgCommandBar.nBmpId = 0;
dlgCommandBar.cBmpImages = 0;
if(!SHCreateMenuBar(&dlgCommandBar)){
TRACE(_T("Cannot create command bar!"));
return FALSE;
}
// load strings
LoadStringResources();
LOGFONT lf;
memset(&lf, 0, sizeof(LOGFONT));
HFONT hFont = (HFONT) GetStockObject(SYSTEM_FONT);
GetObject(hFont, sizeof lf, &lf);
lf.lfWeight = FW_BOLD;
lf.lfHeight +=FONT_HEIGHT_OFFSET;
VERIFY(fontBold.CreateFontIndirect(&lf));
GetDlgItem(IDC_SYNC_STATIC_ITEMS)->SetFont(&fontBold);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_ADVANCED_SETTINGS); linkAdvanced.setText(s1);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_DETAILS_LINK);
//s1=getStringLang(IDS_DETAILS_LINK);
butMail.setText(s1); butContacts.setText(s1);
butCalendar.setText(s1); butTasks.setText(s1);
butBriefcase.setText(s1);
#if defined(WIN32_PLATFORM_PSPC)
butNotes.setText(s1);
#endif
// read encryption value from registry
ClientSettings* cs = getRegConfig();
if( strcmp(cs->getConfigSourcesParameter("contact","sync"), "none")){
checkContacts.SetCheck(BST_CHECKED);
}
else
{
checkContacts.SetCheck(BST_UNCHECKED);
butContacts.EnableWindow(FALSE);
}
if(strcmp(cs->getConfigSourcesParameter("calendar","sync"), "none")) {
checkCalendar.SetCheck(BST_CHECKED);
}
else
{
checkCalendar.SetCheck(BST_UNCHECKED);
butCalendar.EnableWindow(FALSE);
}
checkTasks.EnableWindow(TRUE);
if( strcmp(cs->getConfigSourcesParameter("task","sync"), "none")){
checkTasks.SetCheck(BST_CHECKED);
}
else{
checkTasks.SetCheck(BST_UNCHECKED);
butTasks.EnableWindow(FALSE);
}
if (doesFunambolAccountExist()) {
// Funambol mail account exists
checkMail.EnableWindow(TRUE);
if( strcmp(cs->getConfigSourcesParameter("mail","sync"), "none")){
checkMail.SetCheck(BST_CHECKED);
}
else{
checkMail.SetCheck(BST_UNCHECKED);
butMail.EnableWindow(FALSE);
};
} else {
// Funambol mail account DOES NOT exist
checkMail.EnableWindow(FALSE);
butMail.EnableWindow(FALSE);
checkMail.SetCheck(BST_UNCHECKED);
}
if (!cs->getIsPortal()) {
checkBriefcase.EnableWindow(TRUE);
checkBriefcase.ShowWindow(SW_SHOW);
butBriefcase.ShowWindow(SW_SHOW);
if( strcmp(cs->getConfigSourcesParameter("briefcase","sync"), "none"))
checkBriefcase.SetCheck(BST_CHECKED);
else
{
checkBriefcase.SetCheck(BST_UNCHECKED);
butBriefcase.EnableWindow(FALSE);
}
} else {
checkBriefcase.EnableWindow(FALSE);
checkBriefcase.SetCheck(BST_UNCHECKED);
checkBriefcase.ShowWindow(SW_HIDE);
butBriefcase.EnableWindow(FALSE);
butBriefcase.ShowWindow(SW_HIDE);
}
#if defined(WIN32_PLATFORM_PSPC)
if (!cs->getIsPortal()) {
checkNotes.EnableWindow(TRUE);
checkNotes.ShowWindow(SW_SHOW);
butNotes.ShowWindow(SW_SHOW);
if( strcmp(cs->getConfigSourcesParameter("note","sync"), "none"))
checkNotes.SetCheck(BST_CHECKED);
else
{
checkNotes.SetCheck(BST_UNCHECKED);
butNotes.EnableWindow(FALSE);
}
} else {
checkNotes.EnableWindow(FALSE);
checkNotes.SetCheck(BST_UNCHECKED);
checkNotes.ShowWindow(SW_HIDE);
butNotes.EnableWindow(FALSE);
butNotes.ShowWindow(SW_HIDE);
}
#endif
source = TEXT("");
advanced = 0;
checkedSources = 0;
Invalidate();
UpdateWindow();
// 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);
checkMail.SetFocus();
return FALSE;
}
void CSyncSettings::OnSetfocusSyncContacts()
{
if(checkContacts.GetCheck() == BST_CHECKED) {
source=TEXT("contacts");
}
}
void CSyncSettings::OnBnClickedSyncContacts()
{
if(checkContacts.GetCheck() == BST_UNCHECKED)
butContacts.EnableWindow(FALSE);
else
butContacts.EnableWindow(TRUE);
if(checkContacts.GetCheck() == BST_CHECKED) {
source=TEXT("contacts");
}
}
void CSyncSettings::OnBnSetfocusSyncCalendar()
{
if(checkCalendar.GetCheck() == BST_CHECKED) {
source=TEXT("calendar");
}
}
void CSyncSettings::OnBnSetfocusSyncTasks()
{
if(checkTasks.GetCheck() == BST_CHECKED) {
source=TEXT("tasks");
}
}
void CSyncSettings::OnBnSetfocusSyncMail()
{
if(checkMail.GetCheck() == BST_CHECKED) {
source=TEXT("mail");
}
}
void CSyncSettings::OnBnSetfocusSyncBriefcase()
{
if(checkBriefcase.GetCheck() == BST_CHECKED) {
source=TEXT("briefcase");
}
}
void CSyncSettings::OnBnClickedSyncCalendar()
{
if(checkCalendar.GetCheck() == BST_UNCHECKED)
butCalendar.EnableWindow(FALSE);
else
butCalendar.EnableWindow(TRUE);
if(checkCalendar.GetCheck() == BST_CHECKED) {
source=TEXT("calendar");
}
}
void CSyncSettings::OnBnClickedSyncTasks()
{
if(checkTasks.GetCheck() == BST_UNCHECKED)
butTasks.EnableWindow(FALSE);
else
butTasks.EnableWindow(TRUE);
if(checkTasks.GetCheck() == BST_CHECKED) {
source=TEXT("tasks");
}
}
void CSyncSettings::OnBnClickedSyncMail()
{
if(checkMail.GetCheck() == BST_UNCHECKED)
butMail.EnableWindow(FALSE);
else
butMail.EnableWindow(TRUE);
if(checkMail.GetCheck() == BST_CHECKED) {
source=TEXT("mail");
}
}
void CSyncSettings::OnBnClickedSyncBriefcase()
{
if(checkBriefcase.GetCheck() == BST_UNCHECKED)
butBriefcase.EnableWindow(FALSE);
else
butBriefcase.EnableWindow(TRUE);
if(checkBriefcase.GetCheck() == BST_CHECKED) {
source=TEXT("briefcase");
}
}
void CSyncSettings::showAdvanced()
{
if(source == "contacts"){
CContactSettings wndContSett;
INT_PTR result = wndContSett.DoModal();
if(result == IDOK)
advanced |= ADVANCED_CONTACTS;
butContacts.SetFocus();
};
if(source == "calendar"){
CCalendarSettings wndSett;
INT_PTR result = wndSett.DoModal();
if(result == IDOK)
advanced |= ADVANCED_CALENDAR;
butCalendar.SetFocus();
}
if(source == "tasks"){
CTaskSettings wndSett;
INT_PTR result = wndSett.DoModal();
if(result == IDOK)
advanced |= ADVANCED_TASKS;
butTasks.SetFocus();
}
if(source == "mail"){
CMailSettings wndSett;
INT_PTR result = wndSett.DoModal();
if(result == IDOK)
advanced |= ADVANCED_MAIL;
butMail.SetFocus();
}
if(source == "briefcase"){
CBriefcaseSettings wndSett;
INT_PTR result = wndSett.DoModal();
if(result == IDOK)
advanced |= ADVANCED_BRIEFCASE;
butBriefcase.SetFocus();
}
#if defined(WIN32_PLATFORM_PSPC)
if(source == "note"){
CNotesSettings wndSett;
INT_PTR result = wndSett.DoModal();
if(result == IDOK)
advanced |= ADVANCED_NOTES;
butNotes.SetFocus();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -