diff --git a/base/applications/rapps/available.cpp b/base/applications/rapps/available.cpp index c6ee68f7f27..9a67aba42c0 100644 --- a/base/applications/rapps/available.cpp +++ b/base/applications/rapps/available.cpp @@ -300,7 +300,7 @@ BOOL CAvailableApps::UpdateAppsDB() return TRUE; } - CDownloadManager::DownloadApplicationsDB(APPLICATION_DATABASE_URL); + DownloadApplicationsDB(APPLICATION_DATABASE_URL); if (!ExtractFilesFromCab(m_Strings.szCabName, m_Strings.szCabDir, diff --git a/base/applications/rapps/gui.cpp b/base/applications/rapps/gui.cpp index f5151433bf2..3695ca73a54 100644 --- a/base/applications/rapps/gui.cpp +++ b/base/applications/rapps/gui.cpp @@ -1470,11 +1470,11 @@ private: { if (nSelectedApps > 0) { - CDownloadManager::DownloadListOfApplications(m_AvailableApps.GetSelected()); + DownloadListOfApplications(m_AvailableApps.GetSelected(), FALSE); UpdateApplicationsList(-1); m_ListView->SetSelected(-1, FALSE); } - else if (CDownloadManager::DownloadApplication(m_ListView->GetSelectedData())) + else if (DownloadApplication(m_ListView->GetSelectedData(), FALSE)) { UpdateApplicationsList(-1); } diff --git a/base/applications/rapps/include/dialogs.h b/base/applications/rapps/include/dialogs.h index f05b223f535..5247462d59f 100644 --- a/base/applications/rapps/include/dialogs.h +++ b/base/applications/rapps/include/dialogs.h @@ -5,38 +5,16 @@ #include #include -// Download dialog (loaddlg.cpp) -class CDowloadingAppsListView; -struct DownloadInfo; - -class CDownloadManager -{ - static ATL::CSimpleArray AppsToInstallList; - static CDowloadingAppsListView DownloadsListView; - - static VOID Download(const DownloadInfo& DLInfo, BOOL bIsModal = FALSE); - static VOID SetProgressMarquee(HWND Item, BOOL Enable); - -public: - static INT_PTR CALLBACK DownloadDlgProc(HWND Dlg, UINT uMsg, WPARAM wParam, LPARAM lParam); - static LRESULT CALLBACK DownloadProgressProc(HWND hWnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam, - UINT_PTR uIdSubclass, - DWORD_PTR dwRefData); - - static DWORD WINAPI ThreadFunc(LPVOID Context); - static BOOL DownloadListOfApplications(const ATL::CSimpleArray& AppsList, BOOL bIsModal = FALSE); - static BOOL DownloadApplication(CAvailableApplicationInfo* pAppInfo, BOOL bIsModal = FALSE); - static VOID DownloadApplicationsDB(LPCWSTR lpUrl); - static VOID LaunchDownloadDialog(BOOL); -}; - // Settings dialog (settingsdlg.cpp) VOID CreateSettingsDlg(HWND hwnd); // About dialog (aboutdlg.cpp) VOID ShowAboutDialog(); +//Main window VOID ShowMainWindow(INT nShowCmd); + +// Download dialogs +VOID DownloadApplicationsDB(LPCWSTR lpUrl); +BOOL DownloadApplication(CAvailableApplicationInfo* pAppInfo, BOOL bIsModal); +BOOL DownloadListOfApplications(const ATL::CSimpleArray& AppsList, BOOL bIsModal); diff --git a/base/applications/rapps/loaddlg.cpp b/base/applications/rapps/loaddlg.cpp index 4016aa550cd..c4de1e29eec 100644 --- a/base/applications/rapps/loaddlg.cpp +++ b/base/applications/rapps/loaddlg.cpp @@ -384,10 +384,43 @@ inline VOID MessageBox_LoadString(HWND hMainWnd, INT StringID) } } + +// Download dialog (loaddlg.cpp) +class CDownloadManager +{ + static ATL::CSimpleArray AppsToInstallList; + static CDowloadingAppsListView DownloadsListView; + + static VOID SetProgressMarquee(HWND Item, BOOL Enable); + +public: + static VOID Add(DownloadInfo info); + static VOID Download(const DownloadInfo& DLInfo, BOOL bIsModal = FALSE); + static INT_PTR CALLBACK DownloadDlgProc(HWND Dlg, UINT uMsg, WPARAM wParam, LPARAM lParam); + static LRESULT CALLBACK DownloadProgressProc(HWND hWnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam, + UINT_PTR uIdSubclass, + DWORD_PTR dwRefData); + + static DWORD WINAPI ThreadFunc(LPVOID Context); + static BOOL DownloadListOfApplications(const ATL::CSimpleArray& AppsList, BOOL bIsModal = FALSE); + static BOOL DownloadApplication(CAvailableApplicationInfo* pAppInfo, BOOL bIsModal = FALSE); + static VOID DownloadApplicationsDB(LPCWSTR lpUrl); + static VOID LaunchDownloadDialog(BOOL); +}; + + // CDownloadManager ATL::CSimpleArray CDownloadManager::AppsToInstallList; CDowloadingAppsListView CDownloadManager::DownloadsListView; +VOID CDownloadManager::Add(DownloadInfo info) +{ + AppsToInstallList.Add(info); +} + VOID CDownloadManager::Download(const DownloadInfo &DLInfo, BOOL bIsModal) { AppsToInstallList.RemoveAll(); @@ -927,40 +960,6 @@ end: return 0; } -BOOL CDownloadManager::DownloadListOfApplications(const ATL::CSimpleArray& AppsList, BOOL bIsModal) -{ - if (AppsList.GetSize() == 0) - return FALSE; - - // Initialize shared variables - for (INT i = 0; i < AppsList.GetSize(); ++i) - { - AppsToInstallList.Add(AppsList[i]); // implicit conversion to DownloadInfo - } - - // Create a dialog and issue a download process - LaunchDownloadDialog(bIsModal); - - return TRUE; -} - -BOOL CDownloadManager::DownloadApplication(CAvailableApplicationInfo* pAppInfo, BOOL bIsModal) -{ - if (!pAppInfo) - return FALSE; - - Download(*pAppInfo, bIsModal); - return TRUE; -} - -VOID CDownloadManager::DownloadApplicationsDB(LPCWSTR lpUrl) -{ - static DownloadInfo DatabaseDLInfo; - DatabaseDLInfo.szUrl = lpUrl; - DatabaseDLInfo.szName.LoadStringW(IDS_DL_DIALOG_DB_DISP); - Download(DatabaseDLInfo, TRUE); -} - //TODO: Reuse the dialog VOID CDownloadManager::LaunchDownloadDialog(BOOL bIsModal) { @@ -980,3 +979,39 @@ VOID CDownloadManager::LaunchDownloadDialog(BOOL bIsModal) } } // CDownloadManager + + +BOOL DownloadListOfApplications(const ATL::CSimpleArray& AppsList, BOOL bIsModal) +{ + if (AppsList.GetSize() == 0) + return FALSE; + + // Initialize shared variables + for (INT i = 0; i < AppsList.GetSize(); ++i) + { + CDownloadManager::Add(AppsList[i]); // implicit conversion to DownloadInfo + } + + // Create a dialog and issue a download process + CDownloadManager::LaunchDownloadDialog(bIsModal); + + return TRUE; +} + +BOOL DownloadApplication(CAvailableApplicationInfo* pAppInfo, BOOL bIsModal) +{ + if (!pAppInfo) + return FALSE; + + CDownloadManager::Download(*pAppInfo, bIsModal); + return TRUE; +} + +VOID DownloadApplicationsDB(LPCWSTR lpUrl) +{ + static DownloadInfo DatabaseDLInfo; + DatabaseDLInfo.szUrl = lpUrl; + DatabaseDLInfo.szName.LoadStringW(IDS_DL_DIALOG_DB_DISP); + CDownloadManager::Download(DatabaseDLInfo, TRUE); +} + diff --git a/base/applications/rapps/unattended.cpp b/base/applications/rapps/unattended.cpp index 7f7f3510f67..2988ff68c44 100644 --- a/base/applications/rapps/unattended.cpp +++ b/base/applications/rapps/unattended.cpp @@ -67,7 +67,7 @@ BOOL UseCmdParameters(LPWSTR lpCmdLine) ATL::CSimpleArray arrAppInfo = apps.FindInfoList(arrNames); if (arrAppInfo.GetSize() > 0) { - CDownloadManager::DownloadListOfApplications(arrAppInfo, TRUE); + DownloadListOfApplications(arrAppInfo, TRUE); return TRUE; }