?? uidlg.cpp
字號:
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));
if(! cs->getIsPortal()){
#if defined(WIN32_PLATFORM_PSPC)
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOTES);
lstSources.addItem(SOURCE_NOTES, s1, AfxGetApp()->LoadIcon(IDI_NOTES));
#endif
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_BRIEFCASE);
lstSources.addItem(SOURCE_BRIEFCASE, s1, AfxGetApp()->LoadIcon(IDI_BRIEFCASE));
}
refreshSourcePanes();
lstSources.Invalidate();
}
void CuiDlg::OnContextMenu(CWnd* /*pWnd*/, CPoint point)
{
// TODO: handle 2nd event and close the popup
CPoint mPointCurrent;
::GetCursorPos(&mPointCurrent);
CMenu mPopupMenu;
// mPopupMenu.LoadMenu(IDR_MENU_CONTEXT);
CMenu *pContextMenu = mPopupMenu.GetSubMenu(0);
/*pContextMenu->TrackPopupMenu(TPM_LEFTALIGN |
TPM_LEFTBUTTON | TPM_RIGHTBUTTON | TPM_RETURNCMD |
TPM_NONOTIFY,
mPointCurrent.x, mPointCurrent.y, GetActiveWindow(),
NULL); */
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN |
TPM_RETURNCMD | TPM_NONOTIFY,
point.x, point.y, GetActiveWindow(),
NULL);
}
void CuiDlg::refreshSourcePane( int id ){
CString s1;
ClientSettings* cs = getRegConfig();
if(id == SOURCE_MAIL){
bool enable;
unsigned long lastSync=0;
enable = strcmp(cs->getConfigSourcesParameter("mail","sync"), "none") != 0;
if(!doesFunambolAccountExist())
enable = false;
lstSources.enableItem(id, enable);
lastSync = cs->getConfigSourcesLastTimestamp("mail");
if(syncSourceMailState == SYNCSOURCE_STATE_NOT_SYNCED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_FAILED);
lstSources.setText(SOURCE_MAIL, s1);
}
else if( syncSourceMailState == SYNCSOURCE_STATE_CANCELED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_CANCELED);
lstSources.setText(SOURCE_MAIL, s1);
}
else if(lastSync == 0) {
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOT_SYNCHRONIZED);
lstSources.setText(SOURCE_MAIL, s1);
}
else
{
CTime timeSync(lastSync);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCHRONIZED); s1+= TEXT(" ");
s1 += timeSync.Format(getLocalizationUtils()->getLocalizationString(IDS_TIME_FORMAT));
lstSources.setText(SOURCE_MAIL, s1);
}
}
if(id == SOURCE_CONTACTS){
bool enableContacts;
unsigned long lastSyncContacts=0;
enableContacts = strcmp(cs->getConfigSourcesParameter("contact","sync"), "none") != 0;
lstSources.enableItem(id, enableContacts);
lastSyncContacts = cs->getConfigSourcesLastTimestamp("contact");
if(syncSourceContactState == SYNCSOURCE_STATE_NOT_SYNCED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_FAILED);
lstSources.setText(SOURCE_CONTACTS, s1);
}
else if( syncSourceContactState == SYNCSOURCE_STATE_CANCELED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_CANCELED);
lstSources.setText(SOURCE_CONTACTS, s1);
}
else if(lastSyncContacts == 0) {
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOT_SYNCHRONIZED);
lstSources.setText(SOURCE_CONTACTS, s1);
}
else
{
CTime timeSyncContacts(lastSyncContacts);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCHRONIZED); s1+= TEXT(" ");
s1 += timeSyncContacts.Format(getLocalizationUtils()->getLocalizationString(IDS_TIME_FORMAT));
lstSources.setText(SOURCE_CONTACTS, s1);
}
}
if(id == SOURCE_CALENDAR){
bool enable;
unsigned long lastSync=0;
enable = strcmp(cs->getConfigSourcesParameter("calendar","sync"), "none") != 0;
lstSources.enableItem(id, enable);
lastSync = cs->getConfigSourcesLastTimestamp("calendar");
if(syncSourceCalendarState == SYNCSOURCE_STATE_NOT_SYNCED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_FAILED);
lstSources.setText(SOURCE_CALENDAR, s1);
}
else if( syncSourceCalendarState == SYNCSOURCE_STATE_CANCELED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_CANCELED);
lstSources.setText(SOURCE_CALENDAR, s1);
}
else if(lastSync == 0) {
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOT_SYNCHRONIZED);
lstSources.setText(SOURCE_CALENDAR, s1);
}
else
{
CTime timeSync(lastSync);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCHRONIZED); s1+= TEXT(" ");
s1 += timeSync.Format(getLocalizationUtils()->getLocalizationString(IDS_TIME_FORMAT));
lstSources.setText(SOURCE_CALENDAR, s1);
}
}
if(id == SOURCE_TASKS){
bool enable;
unsigned long lastSync=0;
enable = strcmp(cs->getConfigSourcesParameter("task","sync"), "none") != 0;
lstSources.enableItem(id, enable);
lastSync = cs->getConfigSourcesLastTimestamp("task");
if(syncSourceTaskState == SYNCSOURCE_STATE_NOT_SYNCED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_FAILED);
lstSources.setText(SOURCE_TASKS, s1);
}
else if( syncSourceTaskState == SYNCSOURCE_STATE_CANCELED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_CANCELED);
lstSources.setText(SOURCE_TASKS, s1);
}
else if(lastSync == 0) {
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOT_SYNCHRONIZED);
lstSources.setText(SOURCE_TASKS, s1);
}
else
{
CTime timeSync(lastSync);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCHRONIZED); s1+= TEXT(" ");
s1 += timeSync.Format(getLocalizationUtils()->getLocalizationString(IDS_TIME_FORMAT));
lstSources.setText(SOURCE_TASKS, s1);
}
}
if(id == SOURCE_BRIEFCASE){
bool enable;
unsigned long lastSync=0;
enable = strcmp(cs->getConfigSourcesParameter("briefcase","sync"), "none") != 0;
lstSources.enableItem(id, enable);
lastSync = cs->getConfigSourcesLastTimestamp("briefcase");
if(syncSourceBriefcaseState == SYNCSOURCE_STATE_NOT_SYNCED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_FAILED);
lstSources.setText(SOURCE_BRIEFCASE, s1);
}
else if( syncSourceBriefcaseState == SYNCSOURCE_STATE_CANCELED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_CANCELED);
lstSources.setText(SOURCE_BRIEFCASE, s1);
}
else if(lastSync == 0) {
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOT_SYNCHRONIZED);
lstSources.setText(SOURCE_BRIEFCASE, s1);
}
else
{
CTime timeSync(lastSync);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCHRONIZED); s1+= TEXT(" ");
s1 += timeSync.Format(getLocalizationUtils()->getLocalizationString(IDS_TIME_FORMAT));
lstSources.setText(SOURCE_BRIEFCASE, s1);
}
}
#if defined(WIN32_PLATFORM_PSPC)
if(id == SOURCE_NOTES){
bool enable;
unsigned long lastSync=0;
enable = strcmp(cs->getConfigSourcesParameter("note","sync"), "none") != 0;
lstSources.enableItem(id, enable);
lastSync = cs->getConfigSourcesLastTimestamp("note");
if(syncSourceNoteState == SYNCSOURCE_STATE_NOT_SYNCED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_FAILED);
lstSources.setText(SOURCE_NOTES, s1);
}
else if( syncSourceNoteState == SYNCSOURCE_STATE_CANCELED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_CANCELED);
lstSources.setText(SOURCE_NOTES, s1);
}
else if(lastSync == 0) {
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOT_SYNCHRONIZED);
lstSources.setText(SOURCE_NOTES, s1);
}
else
{
CTime timeSync(lastSync);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCHRONIZED); s1+= TEXT(" ");
s1 += timeSync.Format(getLocalizationUtils()->getLocalizationString(IDS_TIME_FORMAT));
lstSources.setText(SOURCE_NOTES, s1);
}
}
#endif
EnableSyncButton(isSyncEnabled());
lstSources.resetSourceIcon(id);
}
void CuiDlg::refreshSourcePanes(){
refreshSourcePane(SOURCE_MAIL);
refreshSourcePane(SOURCE_CONTACTS);
refreshSourcePane(SOURCE_CALENDAR);
refreshSourcePane(SOURCE_TASKS);
ClientSettings* cs = getRegConfig();
if(! cs->getIsPortal()){
#if defined(WIN32_PLATFORM_PSPC)
refreshSourcePane(SOURCE_NOTES);
#endif
refreshSourcePane(SOURCE_BRIEFCASE);
}
lstSources.resetSourceIcons();
}
void CuiDlg::SelectSource( int index ){
if(index < 0)
return;
try{
CString s1,s2;
bool refreshPane = false;
ClientSettings* cs = getRegConfig();
int id = lstSources.indexToId(index);
if(id == SOURCE_MAIL){
if(!doesFunambolAccountExist()){
refreshSourcePane(SOURCE_MAIL);
}
else{
// check if source is enabled
if( ( strcmp(cs->getConfigSourcesParameter("mail","sync"), "none") != 0) ){
// start sync with this source
lstSources.setState(SOURCE_MAIL, ITEM_STATE_TO_SYNC);
setFirstSourceToSync(SOURCE_MAIL);
refreshSourcePane(SOURCE_MAIL);
StartSync(_T("manual mail"));
}
else{
if(!doesFunambolAccountExist())
return;
// ask if to enable source
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ENABLE_SYNC_FOR); s1+=" ";
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_EMAIL); s1+=s2; s1+=" ";
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ITEMS_LOWER); s2+="?";
s1+=s2;
int retMsgBox =TimedMessageBox(GetSafeHwnd(), s1, getLocalizationUtils()->getLocalizationString(IDS_FUNAMBOL_ALERT),
MB_YESNO | MB_ICONQUESTION | MB_SETFOREGROUND, 10 * 1000);
if(retMsgBox == IDYES){
refreshPane = true;
cs->setConfigSourcesParameter("mail","sync","two-way");
getRegConfig()->setDirty(CS_DIRTY_SOURCE_MAIL);
getRegConfig()->saveDirty();
}
}
}
};
if(id == SOURCE_CONTACTS){
// check if source is enabled
if( strcmp(cs->getConfigSourcesParameter("contact","sync"), "none") != 0 ){
// start sync with this source
lstSources.setState(SOURCE_CONTACTS, ITEM_STATE_TO_SYNC);
setFirstSourceToSync(SOURCE_CONTACTS);
refreshSourcePane(SOURCE_MAIL);
StartSync(_T("manual contact"));
}
else{
// ask if to enable source
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ENABLE_SYNC_FOR); s1+=" ";
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_CONTACTS); s1+=s2; s1+=" ";
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ITEMS_LOWER); s2+="?";
s1+=s2;
int retMsgBox =TimedMessageBox(GetSafeHwnd(), s1, getLocalizationUtils()->getLocalizationString(IDS_FUNAMBOL_ALERT),
MB_YESNO | MB_ICONQUESTION | MB_SETFOREGROUND, 10 * 1000);
if(retMsgBox == IDYES){
refreshPane = true;
cs->setConfigSourcesParameter("contact","sync","two-way");
getRegConfig()->setDirty(CS_DIRTY_SOURCE_CONTACTS);
getRegConfig()->saveDirty();
}
}
};
if(id == SOURCE_CALENDAR){
// check if source is enabled
if( strcmp(cs->getConfigSourcesParameter("calendar","sync"), "none") != 0 ){
// start sync with this source
lstSources.setState(SOURCE_CALENDAR, ITEM_STATE_TO_SYNC);
setFirstSourceToSync(SOURCE_CALENDAR);
refreshSourcePane(SOURCE_MAIL);
StartSync(_T("manual calendar"));
}
else{
// ask if to enable source
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ENABLE_SYNC_FOR); s1+=" ";
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_CALENDAR); s1+=s2; s1+=" ";
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ITEMS_LOWER); s2+="?";
s1+=s2;
int retMsgBox =TimedMessageBox(GetSafeHwnd(), s1, getLocalizationUtils()->getLocalizationString(IDS_FUNAMBOL_ALERT),
MB_YESNO | MB_ICONQUESTION | MB_SETFOREGROUND, 10 * 1000);
if(retMsgBox == IDYES){
refreshPane = true;
cs->setConfigSourcesParameter("calendar","sync","two-way");
getRegConfig()->setDirty(CS_DIRTY_SOURCE_CALENDAR);
getRegConfig()->saveDirty();
}
}
};
if(id == SOURCE_TASKS){
// check if source is enabled
if( strcmp(cs->getConfigSourcesParameter("task","sync"), "none") != 0 ){
// start sync with this source
lstSources.setState(SOURCE_TASKS, ITEM_STATE_TO_SYNC);
setFirstSourceToSync(SOURCE_TASKS);
refreshSourcePane(SOURCE_MAIL);
StartSync(_T("manual task"));
}
else{
// ask if to enable source
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ENABLE_SYNC_FOR); s1+=" ";
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TASKS); s1+=s2; s1+=" ";
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ITEMS_LOWER); s2+="?";
s1+=s2;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -