LRESULT CAppWindow::OnCreate() { m_lpNotifyIcon->Create(); if (!LoginFromRegistry()) { PromptForCredentials(); } Compat_WTSRegisterSessionNotification(GetHandle(), NOTIFY_FOR_THIS_SESSION); m_lpVersionTimer->SetRunning(TRUE); CheckApplicationUpdated(); return 0; }
LRESULT CAppWindow::OnCommand(WORD wID) { switch (wID) { case ID_TRAYICON_EXIT: SendMessage(WM_SYSCOMMAND, SC_CLOSE); break; case ID_TRAYICON_CHECKFORUPDATESNOW: m_fManualUpdateCheck = TRUE; CheckForUpdates(); break; case ID_TRAYICON_INBOX: OpenInbox(); break; case ID_TRAYICON_LOGIN: PromptForCredentials(); break; case ID_TRAYICON_SIGNOUT: SignOut(TRUE); break; case ID_TRAYICON_HELP: DisplayHelp(); break; case ID_TRAYICON_ABOUT: (new CAboutDialog())->Create(DT_ABOUT, this); break; case ID_TRAYICON_OPTIONS: (new COptionsSheet())->Create(DT_OPTIONS, this); break; case ID_TRAYICON_CHECKWAVESNOW: CheckWavesNow(); break; } return 0; }
void CSubtitleUpDlg::OnRightClick(NMHDR* pNMHDR, LRESULT* pResult) { LPNMLISTVIEW lpnmlv = (LPNMLISTVIEW)pNMHDR; if (lpnmlv->iItem >= 0 && lpnmlv->iSubItem >= 0) { auto& s = AfxGetAppSettings(); SubtitlesProvider& provider = *(SubtitlesProvider*)(m_list.GetItemData(lpnmlv->iItem)); enum { SET_CREDENTIALS = 0x1000, RESET_CREDENTIALS, MOVE_UP, MOVE_DOWN, OPEN_URL }; CMenu m; m.CreatePopupMenu(); m.AppendMenu(MF_STRING | (provider.Flags(SPF_LOGIN) ? MF_ENABLED : MF_DISABLED), SET_CREDENTIALS, ResStr(IDS_SUBMENU_SETUP)); m.AppendMenu(MF_STRING | (provider.Flags(SPF_LOGIN) && !provider.UserName().empty() ? MF_ENABLED : MF_DISABLED), RESET_CREDENTIALS, ResStr(IDS_SUBMENU_RESET)); m.AppendMenu(MF_SEPARATOR); m.AppendMenu(MF_STRING | (lpnmlv->iItem > 0 ? MF_ENABLED : MF_DISABLED), MOVE_UP, ResStr(IDS_SUBMENU_MOVEUP)); m.AppendMenu(MF_STRING | (lpnmlv->iItem < m_list.GetItemCount() - 1 ? MF_ENABLED : MF_DISABLED), MOVE_DOWN, ResStr(IDS_SUBMENU_MOVEDOWN)); m.AppendMenu(MF_SEPARATOR); m.AppendMenu(MF_STRING | MF_ENABLED, OPEN_URL, ResStr(IDS_SUBMENU_OPENURL)); CPoint pt = lpnmlv->ptAction; ::MapWindowPoints(lpnmlv->hdr.hwndFrom, HWND_DESKTOP, &pt, 1); switch (m.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RETURNCMD, pt.x, pt.y, this)) { case OPEN_URL: provider.OpenUrl(); break; case SET_CREDENTIALS: { CString szUser(UTF8To16(provider.UserName().c_str())); CString szPass(UTF8To16(provider.Password().c_str())); CString szDomain(provider.Name().c_str()); if (ERROR_SUCCESS == PromptForCredentials(GetSafeHwnd(), ResStr(IDS_SUB_CREDENTIALS_TITLE), ResStr(IDS_SUB_CREDENTIALS_MSG) + CString(provider.Url().c_str()), szDomain, szUser, szPass, /*&bSave*/nullptr)) { provider.UserName((const char*)UTF16To8(szUser)); provider.Password((const char*)UTF16To8(szPass)); m_list.SetItemText(lpnmlv->iItem, 1, szUser); s.strSubtitlesProviders = CString(m_pMainFrame->m_pSubtitlesProviders->WriteSettings().c_str()); s.SaveSettings(); } break; } case RESET_CREDENTIALS: provider.UserName(""); provider.Password(""); m_list.SetItemText(lpnmlv->iItem, 1, _T("")); s.strSubtitlesProviders = CString(m_pMainFrame->m_pSubtitlesProviders->WriteSettings().c_str()); s.SaveSettings(); break; case MOVE_UP: { m_pMainFrame->m_pSubtitlesProviders->MoveUp(lpnmlv->iItem); ListView_SortItemsEx(m_list.GetSafeHwnd(), SortCompare, m_list.GetSafeHwnd()); s.strSubtitlesProviders = CString(m_pMainFrame->m_pSubtitlesProviders->WriteSettings().c_str()); s.SaveSettings(); break; } case MOVE_DOWN: { m_pMainFrame->m_pSubtitlesProviders->MoveDown(lpnmlv->iItem); ListView_SortItemsEx(m_list.GetSafeHwnd(), SortCompare, m_list.GetSafeHwnd()); s.strSubtitlesProviders = CString(m_pMainFrame->m_pSubtitlesProviders->WriteSettings().c_str()); s.SaveSettings(); break; } default: break; } } }