mirror of
https://github.com/reactos/reactos.git
synced 2025-05-22 02:25:18 +00:00
- Implement "Settings" dialog.
- Implement save of position of a window - Implement installation/deinstallation logs - Implement auto updating programs list at start - Remove unused code from loaddlg.c - Some small changes bug fixes svn path=/trunk/; revision=43081
This commit is contained in:
parent
8f5ae98c4f
commit
6ca1f0de19
22 changed files with 787 additions and 174 deletions
|
@ -38,6 +38,76 @@ ShowAvailableAppInfo(INT Index)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static BOOL
|
||||||
|
DeleteCurrentAppsDB(VOID)
|
||||||
|
{
|
||||||
|
HANDLE hFind = INVALID_HANDLE_VALUE;
|
||||||
|
WIN32_FIND_DATAW FindFileData;
|
||||||
|
WCHAR szCabPath[MAX_PATH];
|
||||||
|
WCHAR szSearchPath[MAX_PATH];
|
||||||
|
WCHAR szPath[MAX_PATH];
|
||||||
|
WCHAR szTmp[MAX_PATH];
|
||||||
|
|
||||||
|
if (!GetCurrentDirectoryW(MAX_PATH, szPath))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
swprintf(szCabPath, L"%s\\rappmgr.cab", szPath);
|
||||||
|
|
||||||
|
if (GetFileAttributesW(szCabPath) != INVALID_FILE_ATTRIBUTES)
|
||||||
|
{
|
||||||
|
if (!DeleteFileW(szCabPath))
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
wcscat(szPath, L"\\rapps\\");
|
||||||
|
swprintf(szSearchPath, L"%s*.txt", szPath);
|
||||||
|
|
||||||
|
hFind = FindFirstFileW(szSearchPath, &FindFileData);
|
||||||
|
if (hFind == INVALID_HANDLE_VALUE)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
swprintf(szTmp, L"%s%s", szPath, FindFileData.cFileName);
|
||||||
|
if (!DeleteFileW(szTmp))
|
||||||
|
{
|
||||||
|
FindClose(hFind);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (FindNextFileW(hFind, &FindFileData) != 0);
|
||||||
|
|
||||||
|
FindClose(hFind);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
UpdateAppsDB(VOID)
|
||||||
|
{
|
||||||
|
WCHAR szPath[MAX_PATH];
|
||||||
|
WCHAR szAppsPath[MAX_PATH];
|
||||||
|
WCHAR szCabPath[MAX_PATH];
|
||||||
|
|
||||||
|
if (!DeleteCurrentAppsDB())
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
DownloadApplicationsDB(APPLICATION_DATEBASE_URL);
|
||||||
|
|
||||||
|
if (!GetCurrentDirectoryW(MAX_PATH, szPath))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
swprintf(szCabPath, L"%s\\rappmgr.cab", szPath);
|
||||||
|
|
||||||
|
wcscat(szPath, L"\\rapps\\");
|
||||||
|
wcscpy(szAppsPath, szPath);
|
||||||
|
|
||||||
|
ExtractFilesFromCab(szCabPath, szAppsPath);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
EnumAvailableApplications(INT EnumType, AVAILENUMPROC lpEnumProc)
|
EnumAvailableApplications(INT EnumType, AVAILENUMPROC lpEnumProc)
|
||||||
|
@ -75,10 +145,10 @@ EnumAvailableApplications(INT EnumType, AVAILENUMPROC lpEnumProc)
|
||||||
hFind = FindFirstFileW(szPath, &FindFileData);
|
hFind = FindFirstFileW(szPath, &FindFileData);
|
||||||
if (hFind == INVALID_HANDLE_VALUE)
|
if (hFind == INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
if (GetFileAttributesW(szCabPath) == 0xFFFFFFFF)
|
if (GetFileAttributesW(szCabPath) == INVALID_FILE_ATTRIBUTES)
|
||||||
DownloadApplicationsDB(APPLICATION_DATEBASE_URL);
|
DownloadApplicationsDB(APPLICATION_DATEBASE_URL);
|
||||||
|
|
||||||
ExtractFilesFromCab(szCabPath, szAppsPath);
|
ExtractFilesFromCab(szCabPath, szAppsPath);
|
||||||
hFind = FindFirstFileW(szPath, &FindFileData);
|
hFind = FindFirstFileW(szPath, &FindFileData);
|
||||||
if (hFind == INVALID_HANDLE_VALUE)
|
if (hFind == INVALID_HANDLE_VALUE)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
|
@ -84,6 +84,7 @@ UninstallApplication(INT Index, BOOL bModify)
|
||||||
WCHAR szModify[] = L"ModifyPath";
|
WCHAR szModify[] = L"ModifyPath";
|
||||||
WCHAR szUninstall[] = L"UninstallString";
|
WCHAR szUninstall[] = L"UninstallString";
|
||||||
WCHAR szPath[MAX_PATH];
|
WCHAR szPath[MAX_PATH];
|
||||||
|
WCHAR szAppName[MAX_STR_LEN];
|
||||||
DWORD dwType, dwSize;
|
DWORD dwType, dwSize;
|
||||||
INT ItemIndex;
|
INT ItemIndex;
|
||||||
LVITEM Item;
|
LVITEM Item;
|
||||||
|
@ -103,6 +104,9 @@ UninstallApplication(INT Index, BOOL bModify)
|
||||||
ItemIndex = Index;
|
ItemIndex = Index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ListView_GetItemText(hListView, ItemIndex, 0, szAppName, sizeof(szAppName) / sizeof(WCHAR));
|
||||||
|
WriteLogMessage(EVENTLOG_SUCCESS, MSG_SUCCESS_REMOVE, szAppName);
|
||||||
|
|
||||||
ZeroMemory(&Item, sizeof(LVITEM));
|
ZeroMemory(&Item, sizeof(LVITEM));
|
||||||
|
|
||||||
Item.mask = LVIF_PARAM;
|
Item.mask = LVIF_PARAM;
|
||||||
|
|
|
@ -4,7 +4,7 @@ IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "&Ôàéë"
|
POPUP "&Ôàéë"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Íà&ñòðîéêè", ID_SETTINGS, GRAYED
|
MENUITEM "Íà&ñòðîéêè", ID_SETTINGS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Èç&õîä", ID_EXIT
|
MENUITEM "Èç&õîä", ID_EXIT
|
||||||
END
|
END
|
||||||
|
@ -44,22 +44,39 @@ BEGIN
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Íàñòðîéêè"
|
CAPTION "Settings"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "Äîáðå", IDOK, 255, 212, 60, 14
|
GROUPBOX "General", -1, 4, 2, 240, 61
|
||||||
PUSHBUTTON "Îòêàç", IDCANCEL, 320, 212, 60, 14
|
AUTOCHECKBOX "&Save window position", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
|
||||||
|
AUTOCHECKBOX "&Update the list of accessible programs at start", IDC_UPDATE_AVLIST, 15, 29, 219, 12
|
||||||
|
AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
|
||||||
|
|
||||||
|
GROUPBOX "Downloading", -1, 4, 65, 240, 51
|
||||||
|
LTEXT "Folder for downloadings:", -1, 16, 75, 100, 9
|
||||||
|
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||||
|
PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14
|
||||||
|
AUTOCHECKBOX "&Delete installers of programs after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
|
||||||
|
|
||||||
|
PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
|
||||||
|
PUSHBUTTON "OK", IDOK, 116, 124, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 181, 124, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Ñâàëÿíå è ñëàãàíå"
|
CAPTION "Program installation"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "Äîáðå", IDOK, 255, 212, 60, 14
|
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
|
||||||
PUSHBUTTON "Îòêàç", IDCANCEL, 320, 212, 60, 14
|
|
||||||
|
AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
|
||||||
|
AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
|
||||||
|
|
||||||
|
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 150, 78, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
||||||
|
@ -163,5 +180,7 @@ BEGIN
|
||||||
IDS_AVAILABLEFORINST "Íàëè÷íî çà ñëàãàíå"
|
IDS_AVAILABLEFORINST "Íàëè÷íî çà ñëàãàíå"
|
||||||
IDS_UPDATES "Îáíîâëåíèÿ"
|
IDS_UPDATES "Îáíîâëåíèÿ"
|
||||||
IDS_APPLICATIONS "Ïðèëîæåíèÿ"
|
IDS_APPLICATIONS "Ïðèëîæåíèÿ"
|
||||||
IDS_DOWNLOAD_FOLDER "Ñâàëÿíèÿ"
|
IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will be used for downloading of programs:"
|
||||||
|
IDS_CHOOSE_FOLDER_ERROR "You have specified a nonexistent folder!"
|
||||||
|
IDS_USER_NOT_ADMIN "You should be administrator for start ""ReactOS Applications Manager""!"
|
||||||
END
|
END
|
||||||
|
|
|
@ -4,7 +4,7 @@ IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "&Datei"
|
POPUP "&Datei"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Einstellungen", ID_SETTINGS, GRAYED
|
MENUITEM "&Einstellungen", ID_SETTINGS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Beenden", ID_EXIT
|
MENUITEM "&Beenden", ID_EXIT
|
||||||
END
|
END
|
||||||
|
@ -44,22 +44,39 @@ BEGIN
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Einstellungen"
|
CAPTION "Settings"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
GROUPBOX "General", -1, 4, 2, 240, 61
|
||||||
PUSHBUTTON "Abbrechen", IDCANCEL, 320, 212, 60, 14
|
AUTOCHECKBOX "&Save window position", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
|
||||||
|
AUTOCHECKBOX "&Update the list of accessible programs at start", IDC_UPDATE_AVLIST, 15, 29, 219, 12
|
||||||
|
AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
|
||||||
|
|
||||||
|
GROUPBOX "Downloading", -1, 4, 65, 240, 51
|
||||||
|
LTEXT "Folder for downloadings:", -1, 16, 75, 100, 9
|
||||||
|
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||||
|
PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14
|
||||||
|
AUTOCHECKBOX "&Delete installers of programs after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
|
||||||
|
|
||||||
|
PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
|
||||||
|
PUSHBUTTON "OK", IDOK, 116, 124, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 181, 124, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Herunterladen und installieren"
|
CAPTION "Program installation"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
|
||||||
PUSHBUTTON "Abbrechen", IDCANCEL, 320, 212, 60, 14
|
|
||||||
|
AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
|
||||||
|
AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
|
||||||
|
|
||||||
|
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 150, 78, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
||||||
|
@ -163,5 +180,7 @@ BEGIN
|
||||||
IDS_AVAILABLEFORINST "Zur Installation verfügbar"
|
IDS_AVAILABLEFORINST "Zur Installation verfügbar"
|
||||||
IDS_UPDATES "Updates"
|
IDS_UPDATES "Updates"
|
||||||
IDS_APPLICATIONS "Anwendungen"
|
IDS_APPLICATIONS "Anwendungen"
|
||||||
IDS_DOWNLOAD_FOLDER "Downloads"
|
IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will be used for downloading of programs:"
|
||||||
|
IDS_CHOOSE_FOLDER_ERROR "You have specified a nonexistent folder!"
|
||||||
|
IDS_USER_NOT_ADMIN "You should be administrator for start ""ReactOS Applications Manager""!"
|
||||||
END
|
END
|
||||||
|
|
|
@ -4,7 +4,7 @@ IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "&File"
|
POPUP "&File"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Settings", ID_SETTINGS, GRAYED
|
MENUITEM "&Settings", ID_SETTINGS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "E&xit", ID_EXIT
|
MENUITEM "E&xit", ID_EXIT
|
||||||
END
|
END
|
||||||
|
@ -44,22 +44,39 @@ BEGIN
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Settings"
|
CAPTION "Settings"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
GROUPBOX "General", -1, 4, 2, 240, 61
|
||||||
PUSHBUTTON "Cancel", IDCANCEL, 320, 212, 60, 14
|
AUTOCHECKBOX "&Save window position", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
|
||||||
|
AUTOCHECKBOX "&Update the list of accessible programs at start", IDC_UPDATE_AVLIST, 15, 29, 219, 12
|
||||||
|
AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
|
||||||
|
|
||||||
|
GROUPBOX "Downloading", -1, 4, 65, 240, 51
|
||||||
|
LTEXT "Folder for downloadings:", -1, 16, 75, 100, 9
|
||||||
|
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||||
|
PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14
|
||||||
|
AUTOCHECKBOX "&Delete installers of programs after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
|
||||||
|
|
||||||
|
PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
|
||||||
|
PUSHBUTTON "OK", IDOK, 116, 124, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 181, 124, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Download and Install"
|
CAPTION "Program installation"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
|
||||||
PUSHBUTTON "Cancel", IDCANCEL, 320, 212, 60, 14
|
|
||||||
|
AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
|
||||||
|
AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
|
||||||
|
|
||||||
|
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 150, 78, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
||||||
|
@ -156,12 +173,14 @@ BEGIN
|
||||||
IDS_UNINSTALL "Uninstall"
|
IDS_UNINSTALL "Uninstall"
|
||||||
IDS_MODIFY "Modify"
|
IDS_MODIFY "Modify"
|
||||||
IDS_APPS_COUNT "Applications count: %d"
|
IDS_APPS_COUNT "Applications count: %d"
|
||||||
IDS_WELCOME_TITLE "Welcome to ReactOS Application Manager!\n\n"
|
IDS_WELCOME_TITLE "Welcome to ReactOS Applications Manager!\n\n"
|
||||||
IDS_WELCOME_TEXT "Choose a category on the left, then choose a application for install or uninstall.\nReactOS Web Site: "
|
IDS_WELCOME_TEXT "Choose a category on the left, then choose a application for install or uninstall.\nReactOS Web Site: "
|
||||||
IDS_WELCOME_URL "http://www.reactos.org"
|
IDS_WELCOME_URL "http://www.reactos.org"
|
||||||
IDS_INSTALLED "Installed"
|
IDS_INSTALLED "Installed"
|
||||||
IDS_AVAILABLEFORINST "Available for installation"
|
IDS_AVAILABLEFORINST "Available for installation"
|
||||||
IDS_UPDATES "Updates"
|
IDS_UPDATES "Updates"
|
||||||
IDS_APPLICATIONS "Applications"
|
IDS_APPLICATIONS "Applications"
|
||||||
IDS_DOWNLOAD_FOLDER "Downloads"
|
IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will be used for downloading of programs:"
|
||||||
|
IDS_CHOOSE_FOLDER_ERROR "You have specified a nonexistent folder!"
|
||||||
|
IDS_USER_NOT_ADMIN "You should be administrator for start ""ReactOS Applications Manager""!"
|
||||||
END
|
END
|
||||||
|
|
|
@ -4,7 +4,7 @@ IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "&Archivo"
|
POPUP "&Archivo"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Ajustes", ID_SETTINGS, GRAYED
|
MENUITEM "&Ajustes", ID_SETTINGS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Sa&lir", ID_EXIT
|
MENUITEM "Sa&lir", ID_EXIT
|
||||||
END
|
END
|
||||||
|
@ -44,22 +44,39 @@ BEGIN
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Ajustes"
|
CAPTION "Settings"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "Aceptar", IDOK, 255, 212, 60, 14
|
GROUPBOX "General", -1, 4, 2, 240, 61
|
||||||
PUSHBUTTON "Cancelar", IDCANCEL, 320, 212, 60, 14
|
AUTOCHECKBOX "&Save window position", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
|
||||||
|
AUTOCHECKBOX "&Update the list of accessible programs at start", IDC_UPDATE_AVLIST, 15, 29, 219, 12
|
||||||
|
AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
|
||||||
|
|
||||||
|
GROUPBOX "Downloading", -1, 4, 65, 240, 51
|
||||||
|
LTEXT "Folder for downloadings:", -1, 16, 75, 100, 9
|
||||||
|
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||||
|
PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14
|
||||||
|
AUTOCHECKBOX "&Delete installers of programs after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
|
||||||
|
|
||||||
|
PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
|
||||||
|
PUSHBUTTON "OK", IDOK, 116, 124, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 181, 124, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Descargar e Instalar"
|
CAPTION "Program installation"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "Aceptar", IDOK, 255, 212, 60, 14
|
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
|
||||||
PUSHBUTTON "Cancelar", IDCANCEL, 320, 212, 60, 14
|
|
||||||
|
AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
|
||||||
|
AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
|
||||||
|
|
||||||
|
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 150, 78, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
||||||
|
@ -156,12 +173,14 @@ BEGIN
|
||||||
IDS_UNINSTALL "Desinstalar"
|
IDS_UNINSTALL "Desinstalar"
|
||||||
IDS_MODIFY "Modificar"
|
IDS_MODIFY "Modificar"
|
||||||
IDS_APPS_COUNT "Cantidad de aplicaciones: %d"
|
IDS_APPS_COUNT "Cantidad de aplicaciones: %d"
|
||||||
IDS_WELCOME_TITLE "Bienvenido a ReactOS Application Manager!\n\n"
|
IDS_WELCOME_TITLE "Bienvenido a ReactOS Applications Manager!\n\n"
|
||||||
IDS_WELCOME_TEXT "Seleccione una categoría a la izquierda, posteriormente seleccione la aplicación a instalar o desinstalar.\nReactOS Web: "
|
IDS_WELCOME_TEXT "Seleccione una categoría a la izquierda, posteriormente seleccione la aplicación a instalar o desinstalar.\nReactOS Web: "
|
||||||
IDS_WELCOME_URL "http://www.reactos.org"
|
IDS_WELCOME_URL "http://www.reactos.org"
|
||||||
IDS_INSTALLED "Instaladas"
|
IDS_INSTALLED "Instaladas"
|
||||||
IDS_AVAILABLEFORINST "Disponible para instalación"
|
IDS_AVAILABLEFORINST "Disponible para instalación"
|
||||||
IDS_UPDATES "Actualizaciones"
|
IDS_UPDATES "Actualizaciones"
|
||||||
IDS_APPLICATIONS "Aplicaciones"
|
IDS_APPLICATIONS "Aplicaciones"
|
||||||
IDS_DOWNLOAD_FOLDER "Descargas"
|
IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will be used for downloading of programs:"
|
||||||
|
IDS_CHOOSE_FOLDER_ERROR "You have specified a nonexistent folder!"
|
||||||
|
IDS_USER_NOT_ADMIN "You should be administrator for start ""ReactOS Applications Manager""!"
|
||||||
END
|
END
|
||||||
|
|
|
@ -4,7 +4,7 @@ IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "ファイル(&F)"
|
POPUP "ファイル(&F)"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "設定(&S)", ID_SETTINGS, GRAYED
|
MENUITEM "<EFBFBD>Ý’è(&S)", ID_SETTINGS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "終了(&X)", ID_EXIT
|
MENUITEM "終了(&X)", ID_EXIT
|
||||||
END
|
END
|
||||||
|
@ -44,22 +44,39 @@ BEGIN
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "設定"
|
CAPTION "Settings"
|
||||||
FONT 9, "MS UI Gothic"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
GROUPBOX "General", -1, 4, 2, 240, 61
|
||||||
PUSHBUTTON "キャンセル", IDCANCEL, 320, 212, 60, 14
|
AUTOCHECKBOX "&Save window position", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
|
||||||
|
AUTOCHECKBOX "&Update the list of accessible programs at start", IDC_UPDATE_AVLIST, 15, 29, 219, 12
|
||||||
|
AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
|
||||||
|
|
||||||
|
GROUPBOX "Downloading", -1, 4, 65, 240, 51
|
||||||
|
LTEXT "Folder for downloadings:", -1, 16, 75, 100, 9
|
||||||
|
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||||
|
PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14
|
||||||
|
AUTOCHECKBOX "&Delete installers of programs after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
|
||||||
|
|
||||||
|
PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
|
||||||
|
PUSHBUTTON "OK", IDOK, 116, 124, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 181, 124, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "ダウンロードとインストール"
|
CAPTION "Program installation"
|
||||||
FONT 9, "MS UI Gothic"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
|
||||||
PUSHBUTTON "キャンセル", IDCANCEL, 320, 212, 60, 14
|
|
||||||
|
AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
|
||||||
|
AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
|
||||||
|
|
||||||
|
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 150, 78, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
||||||
|
@ -163,5 +180,7 @@ BEGIN
|
||||||
IDS_AVAILABLEFORINST "インストール可能\"
|
IDS_AVAILABLEFORINST "インストール可能\"
|
||||||
IDS_UPDATES "アップデート"
|
IDS_UPDATES "アップデート"
|
||||||
IDS_APPLICATIONS "アプリケーション"
|
IDS_APPLICATIONS "アプリケーション"
|
||||||
IDS_DOWNLOAD_FOLDER "ダウンロード"
|
IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will be used for downloading of programs:"
|
||||||
|
IDS_CHOOSE_FOLDER_ERROR "You have specified a nonexistent folder!"
|
||||||
|
IDS_USER_NOT_ADMIN "You should be administrator for start ""ReactOS Applications Manager""!"
|
||||||
END
|
END
|
||||||
|
|
|
@ -4,7 +4,7 @@ IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "&Fil"
|
POPUP "&Fil"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Innstillinger", ID_SETTINGS, GRAYED
|
MENUITEM "&Innstillinger", ID_SETTINGS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "A&vslutt", ID_EXIT
|
MENUITEM "A&vslutt", ID_EXIT
|
||||||
END
|
END
|
||||||
|
@ -44,22 +44,39 @@ BEGIN
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Innstillinger"
|
CAPTION "Settings"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
GROUPBOX "General", -1, 4, 2, 240, 61
|
||||||
PUSHBUTTON "Avbryt", IDCANCEL, 320, 212, 60, 14
|
AUTOCHECKBOX "&Save window position", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
|
||||||
|
AUTOCHECKBOX "&Update the list of accessible programs at start", IDC_UPDATE_AVLIST, 15, 29, 219, 12
|
||||||
|
AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
|
||||||
|
|
||||||
|
GROUPBOX "Downloading", -1, 4, 65, 240, 51
|
||||||
|
LTEXT "Folder for downloadings:", -1, 16, 75, 100, 9
|
||||||
|
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||||
|
PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14
|
||||||
|
AUTOCHECKBOX "&Delete installers of programs after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
|
||||||
|
|
||||||
|
PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
|
||||||
|
PUSHBUTTON "OK", IDOK, 116, 124, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 181, 124, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Last ned og installere"
|
CAPTION "Program installation"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
|
||||||
PUSHBUTTON "Avbryt", IDCANCEL, 320, 212, 60, 14
|
|
||||||
|
AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
|
||||||
|
AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
|
||||||
|
|
||||||
|
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 150, 78, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
||||||
|
@ -163,5 +180,7 @@ BEGIN
|
||||||
IDS_AVAILABLEFORINST "Tilgjengelig for installasjon"
|
IDS_AVAILABLEFORINST "Tilgjengelig for installasjon"
|
||||||
IDS_UPDATES "Oppdateringer"
|
IDS_UPDATES "Oppdateringer"
|
||||||
IDS_APPLICATIONS "Programmer"
|
IDS_APPLICATIONS "Programmer"
|
||||||
IDS_DOWNLOAD_FOLDER "Nedlastinger"
|
IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will be used for downloading of programs:"
|
||||||
|
IDS_CHOOSE_FOLDER_ERROR "You have specified a nonexistent folder!"
|
||||||
|
IDS_USER_NOT_ADMIN "You should be administrator for start ""ReactOS Applications Manager""!"
|
||||||
END
|
END
|
||||||
|
|
|
@ -6,7 +6,7 @@ IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "&Plik"
|
POPUP "&Plik"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Ustawienia", ID_SETTINGS, GRAYED
|
MENUITEM "&Ustawienia", ID_SETTINGS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Wyjœcie", ID_EXIT
|
MENUITEM "&Wyjœcie", ID_EXIT
|
||||||
END
|
END
|
||||||
|
@ -46,22 +46,39 @@ BEGIN
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Ustawienia"
|
CAPTION "Settings"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
GROUPBOX "General", -1, 4, 2, 240, 61
|
||||||
PUSHBUTTON "Anuluj", IDCANCEL, 320, 212, 60, 14
|
AUTOCHECKBOX "&Save window position", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
|
||||||
|
AUTOCHECKBOX "&Update the list of accessible programs at start", IDC_UPDATE_AVLIST, 15, 29, 219, 12
|
||||||
|
AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
|
||||||
|
|
||||||
|
GROUPBOX "Downloading", -1, 4, 65, 240, 51
|
||||||
|
LTEXT "Folder for downloadings:", -1, 16, 75, 100, 9
|
||||||
|
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||||
|
PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14
|
||||||
|
AUTOCHECKBOX "&Delete installers of programs after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
|
||||||
|
|
||||||
|
PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
|
||||||
|
PUSHBUTTON "OK", IDOK, 116, 124, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 181, 124, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Œci¹gnij i zainstaluj"
|
CAPTION "Program installation"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
|
||||||
PUSHBUTTON "Anuluj", IDCANCEL, 320, 212, 60, 14
|
|
||||||
|
AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
|
||||||
|
AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
|
||||||
|
|
||||||
|
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 150, 78, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
||||||
|
@ -165,5 +182,7 @@ BEGIN
|
||||||
IDS_AVAILABLEFORINST "Dostêpne"
|
IDS_AVAILABLEFORINST "Dostêpne"
|
||||||
IDS_UPDATES "Uaktualnienia"
|
IDS_UPDATES "Uaktualnienia"
|
||||||
IDS_APPLICATIONS "Aplikacje"
|
IDS_APPLICATIONS "Aplikacje"
|
||||||
IDS_DOWNLOAD_FOLDER "Œci¹gniête"
|
IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will be used for downloading of programs:"
|
||||||
|
IDS_CHOOSE_FOLDER_ERROR "You have specified a nonexistent folder!"
|
||||||
|
IDS_USER_NOT_ADMIN "You should be administrator for start ""ReactOS Applications Manager""!"
|
||||||
END
|
END
|
||||||
|
|
|
@ -4,7 +4,7 @@ IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "&Ôàéë"
|
POPUP "&Ôàéë"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Ïàðàìåòðû", ID_SETTINGS, GRAYED
|
MENUITEM "&Параметры", ID_SETTINGS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Âûõîä", ID_EXIT
|
MENUITEM "&Âûõîä", ID_EXIT
|
||||||
END
|
END
|
||||||
|
@ -44,22 +44,39 @@ BEGIN
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Ïàðàìåòðû"
|
CAPTION "Ïàðàìåòðû"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
GROUPBOX "Общие", -1, 4, 2, 240, 61
|
||||||
PUSHBUTTON "Îòìåíà", IDCANCEL, 320, 212, 60, 14
|
AUTOCHECKBOX "&Сохранять положение окна", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
|
||||||
|
AUTOCHECKBOX "&Обновлять список доступных программ при запуске", IDC_UPDATE_AVLIST, 15, 29, 219, 12
|
||||||
|
AUTOCHECKBOX "&Вести лог установки/удаления программ", IDC_LOG_ENABLED, 15, 46, 219, 12
|
||||||
|
|
||||||
|
GROUPBOX "Загрузка", -1, 4, 65, 240, 51
|
||||||
|
LTEXT "Папка для загрузок:", -1, 16, 75, 77, 9
|
||||||
|
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||||
|
PUSHBUTTON "В&ыбрать", IDC_CHOOSE, 187, 85, 50, 14
|
||||||
|
AUTOCHECKBOX "&Удалять инсталляторы программ после установки", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
|
||||||
|
|
||||||
|
PUSHBUTTON "По умолчанию", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
|
||||||
|
PUSHBUTTON "OK", IDOK, 116, 124, 60, 14
|
||||||
|
PUSHBUTTON "Отмена", IDCANCEL, 181, 124, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Ñêà÷àòü è óñòàíîâèòü"
|
CAPTION "Установка программы"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
|
||||||
PUSHBUTTON "Îòìåíà", IDCANCEL, 320, 212, 60, 14
|
|
||||||
|
AUTORADIOBUTTON "&Установить с диска", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
|
||||||
|
AUTORADIOBUTTON "&Скачать и установить", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
|
||||||
|
|
||||||
|
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
|
||||||
|
PUSHBUTTON "Отмена", IDCANCEL, 150, 78, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
||||||
|
@ -113,7 +130,7 @@ BEGIN
|
||||||
IDS_INFO_UPDATEINFO "\nÈíôîðìàöèÿ îá îáíîâëåíèÿõ: "
|
IDS_INFO_UPDATEINFO "\nÈíôîðìàöèÿ îá îáíîâëåíèÿõ: "
|
||||||
IDS_INFO_INFOABOUT "\nÈíôîðìàöèÿ î ïðîãðàììå: "
|
IDS_INFO_INFOABOUT "\nÈíôîðìàöèÿ î ïðîãðàììå: "
|
||||||
IDS_INFO_COMMENTS "\nÊîììåíòàðèè: "
|
IDS_INFO_COMMENTS "\nÊîììåíòàðèè: "
|
||||||
IDS_INFO_INSTLOCATION "\nÓñòàíîâëåíî èç: "
|
IDS_INFO_INSTLOCATION "\nУстановлено в: "
|
||||||
IDS_INFO_INSTALLSRC "\nÈñòî÷íèê óñòàíîâêè: "
|
IDS_INFO_INSTALLSRC "\nÈñòî÷íèê óñòàíîâêè: "
|
||||||
IDS_INFO_UNINSTALLSTR "\nÑòðîêà äëÿ óäàëåíèÿ: "
|
IDS_INFO_UNINSTALLSTR "\nÑòðîêà äëÿ óäàëåíèÿ: "
|
||||||
IDS_INFO_MODIFYPATH "\nÑòðîêà äëÿ èçìåíåíèÿ: "
|
IDS_INFO_MODIFYPATH "\nÑòðîêà äëÿ èçìåíåíèÿ: "
|
||||||
|
@ -163,5 +180,7 @@ BEGIN
|
||||||
IDS_AVAILABLEFORINST "Äîñòóïíî äëÿ óñòàíîâêè"
|
IDS_AVAILABLEFORINST "Äîñòóïíî äëÿ óñòàíîâêè"
|
||||||
IDS_UPDATES "Îáíîâëåíèÿ"
|
IDS_UPDATES "Îáíîâëåíèÿ"
|
||||||
IDS_APPLICATIONS "Ïðèëîæåíèÿ"
|
IDS_APPLICATIONS "Ïðèëîæåíèÿ"
|
||||||
IDS_DOWNLOAD_FOLDER "Downloads"
|
IDS_CHOOSE_FOLDER_TEXT "Выберите папку, которая будет использоваться для загрузки программ:"
|
||||||
|
IDS_CHOOSE_FOLDER_ERROR "Вы указали несуществующую папку!"
|
||||||
|
IDS_USER_NOT_ADMIN "Вы должны быть администратором для запуска ""Менеджера приложений ReactOS""!"
|
||||||
END
|
END
|
||||||
|
|
|
@ -9,7 +9,7 @@ IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "&Súbor"
|
POPUP "&Súbor"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Nastavenia", ID_SETTINGS, GRAYED
|
MENUITEM "&Nastavenia", ID_SETTINGS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "S&konèi<C3A8>", ID_EXIT
|
MENUITEM "S&konèi<C3A8>", ID_EXIT
|
||||||
END
|
END
|
||||||
|
@ -49,22 +49,39 @@ BEGIN
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Nastavenia"
|
CAPTION "Settings"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
GROUPBOX "General", -1, 4, 2, 240, 61
|
||||||
PUSHBUTTON "Zruši<C5A1>", IDCANCEL, 320, 212, 60, 14
|
AUTOCHECKBOX "&Save window position", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
|
||||||
|
AUTOCHECKBOX "&Update the list of accessible programs at start", IDC_UPDATE_AVLIST, 15, 29, 219, 12
|
||||||
|
AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
|
||||||
|
|
||||||
|
GROUPBOX "Downloading", -1, 4, 65, 240, 51
|
||||||
|
LTEXT "Folder for downloadings:", -1, 16, 75, 100, 9
|
||||||
|
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||||
|
PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14
|
||||||
|
AUTOCHECKBOX "&Delete installers of programs after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
|
||||||
|
|
||||||
|
PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
|
||||||
|
PUSHBUTTON "OK", IDOK, 116, 124, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 181, 124, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Stiahnu<6E> a nainštalova<76>"
|
CAPTION "Program installation"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
|
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
|
||||||
PUSHBUTTON "Zruši<C5A1>", IDCANCEL, 320, 212, 60, 14
|
|
||||||
|
AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
|
||||||
|
AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
|
||||||
|
|
||||||
|
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 150, 78, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
||||||
|
@ -168,5 +185,7 @@ BEGIN
|
||||||
IDS_AVAILABLEFORINST "Dostupné pre nainštalovanie"
|
IDS_AVAILABLEFORINST "Dostupné pre nainštalovanie"
|
||||||
IDS_UPDATES "Aktualizácie"
|
IDS_UPDATES "Aktualizácie"
|
||||||
IDS_APPLICATIONS "Aplikácie"
|
IDS_APPLICATIONS "Aplikácie"
|
||||||
IDS_DOWNLOAD_FOLDER "S<>ahovania" // Downloads
|
IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will be used for downloading of programs:"
|
||||||
|
IDS_CHOOSE_FOLDER_ERROR "You have specified a nonexistent folder!"
|
||||||
|
IDS_USER_NOT_ADMIN "You should be administrator for start ""ReactOS Applications Manager""!"
|
||||||
END
|
END
|
||||||
|
|
|
@ -12,7 +12,7 @@ IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "&Ôàéë"
|
POPUP "&Ôàéë"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Íàëàøòóâàííÿ", ID_SETTINGS, GRAYED
|
MENUITEM "&Íàëàøòóâàííÿ", ID_SETTINGS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Â&èõ³ä", ID_EXIT
|
MENUITEM "Â&èõ³ä", ID_EXIT
|
||||||
END
|
END
|
||||||
|
@ -52,22 +52,39 @@ BEGIN
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Íàëàøòóâàííÿ"
|
CAPTION "Settings"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "Òàê", IDOK, 255, 212, 60, 14
|
GROUPBOX "General", -1, 4, 2, 240, 61
|
||||||
PUSHBUTTON "ͳ", IDCANCEL, 320, 212, 60, 14
|
AUTOCHECKBOX "&Save window position", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
|
||||||
|
AUTOCHECKBOX "&Update the list of accessible programs at start", IDC_UPDATE_AVLIST, 15, 29, 219, 12
|
||||||
|
AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
|
||||||
|
|
||||||
|
GROUPBOX "Downloading", -1, 4, 65, 240, 51
|
||||||
|
LTEXT "Folder for downloadings:", -1, 16, 75, 100, 9
|
||||||
|
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||||
|
PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14
|
||||||
|
AUTOCHECKBOX "&Delete installers of programs after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
|
||||||
|
|
||||||
|
PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
|
||||||
|
PUSHBUTTON "OK", IDOK, 116, 124, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 181, 124, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 386, 231
|
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97
|
||||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Çàâàíòàæèòè ³ âñòàíîâèòè"
|
CAPTION "Program installation"
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "Òàê", IDOK, 255, 212, 60, 14
|
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
|
||||||
PUSHBUTTON "ͳ", IDCANCEL, 320, 212, 60, 14
|
|
||||||
|
AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
|
||||||
|
AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
|
||||||
|
|
||||||
|
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 150, 78, 60, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
|
||||||
|
@ -171,5 +188,7 @@ BEGIN
|
||||||
IDS_AVAILABLEFORINST "Äîñòóïí³ äëÿ âñòàíîâëåííÿ"
|
IDS_AVAILABLEFORINST "Äîñòóïí³ äëÿ âñòàíîâëåííÿ"
|
||||||
IDS_UPDATES "Îíîâëåííÿ"
|
IDS_UPDATES "Îíîâëåííÿ"
|
||||||
IDS_APPLICATIONS "Äîäàòêè"
|
IDS_APPLICATIONS "Äîäàòêè"
|
||||||
IDS_DOWNLOAD_FOLDER "Çàâàíòàæåííÿ"
|
IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will be used for downloading of programs:"
|
||||||
|
IDS_CHOOSE_FOLDER_ERROR "You have specified a nonexistent folder!"
|
||||||
|
IDS_USER_NOT_ADMIN "You should be administrator for start ""ReactOS Applications Manager""!"
|
||||||
END
|
END
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
#include <urlmon.h>
|
#include <urlmon.h>
|
||||||
|
|
||||||
static PAPPLICATION_INFO AppInfo;
|
static PAPPLICATION_INFO AppInfo;
|
||||||
|
static HICON hIcon = NULL;
|
||||||
|
|
||||||
typedef struct _IBindStatusCallbackImpl
|
typedef struct _IBindStatusCallbackImpl
|
||||||
{
|
{
|
||||||
|
@ -220,32 +221,12 @@ ThreadFunc(LPVOID Context)
|
||||||
DWORD r;
|
DWORD r;
|
||||||
BOOL bCancelled = FALSE;
|
BOOL bCancelled = FALSE;
|
||||||
BOOL bTempfile = FALSE;
|
BOOL bTempfile = FALSE;
|
||||||
HKEY hKey = NULL;
|
BOOL bCab = FALSE;
|
||||||
DWORD dwSize = MAX_PATH;
|
|
||||||
|
|
||||||
/* built the path for the download */
|
/* built the path for the download */
|
||||||
p = wcsrchr(AppInfo->szUrlDownload, L'/');
|
p = wcsrchr(AppInfo->szUrlDownload, L'/');
|
||||||
if (!p) goto end;
|
if (!p) goto end;
|
||||||
|
|
||||||
/* Create default download path */
|
|
||||||
if (GetWindowsDirectoryW(path, sizeof(path) / sizeof(WCHAR)))
|
|
||||||
{
|
|
||||||
WCHAR DPath[MAX_PATH];
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < 4; i++)
|
|
||||||
{
|
|
||||||
if (i == 3)
|
|
||||||
{
|
|
||||||
DPath[i] = '\0';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
DPath[i] = path[i];
|
|
||||||
}
|
|
||||||
LoadStringW(hInst, IDS_DOWNLOAD_FOLDER, path, sizeof(path) / sizeof(WCHAR));
|
|
||||||
wcscat(DPath, path);
|
|
||||||
wcscpy(path, DPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (wcslen(AppInfo->szUrlDownload) > 4)
|
if (wcslen(AppInfo->szUrlDownload) > 4)
|
||||||
{
|
{
|
||||||
if (AppInfo->szUrlDownload[wcslen(AppInfo->szUrlDownload) - 4] == '.' &&
|
if (AppInfo->szUrlDownload[wcslen(AppInfo->szUrlDownload) - 4] == '.' &&
|
||||||
|
@ -253,32 +234,18 @@ ThreadFunc(LPVOID Context)
|
||||||
AppInfo->szUrlDownload[wcslen(AppInfo->szUrlDownload) - 2] == 'a' &&
|
AppInfo->szUrlDownload[wcslen(AppInfo->szUrlDownload) - 2] == 'a' &&
|
||||||
AppInfo->szUrlDownload[wcslen(AppInfo->szUrlDownload) - 1] == 'b')
|
AppInfo->szUrlDownload[wcslen(AppInfo->szUrlDownload) - 1] == 'b')
|
||||||
{
|
{
|
||||||
|
bCab = TRUE;
|
||||||
if (!GetCurrentDirectoryW(MAX_PATH, path))
|
if (!GetCurrentDirectoryW(MAX_PATH, path))
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (RegOpenKeyW(HKEY_LOCAL_MACHINE,
|
wcscpy(path, SettingsInfo.szDownloadDir);
|
||||||
L"Software\\ReactOS\\rappmgr",
|
|
||||||
&hKey) == ERROR_SUCCESS)
|
|
||||||
{
|
|
||||||
if ((RegQueryValueExW(hKey,
|
|
||||||
L"DownloadFolder",
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
(LPBYTE)&path,
|
|
||||||
&dwSize) != ERROR_SUCCESS) && (path[0] == 0))
|
|
||||||
{
|
|
||||||
RegCloseKey(hKey);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
RegCloseKey(hKey);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else goto end;
|
else goto end;
|
||||||
|
|
||||||
if (GetFileAttributesW(path) == 0xFFFFFFFF)
|
if (GetFileAttributesW(path) == INVALID_FILE_ATTRIBUTES)
|
||||||
{
|
{
|
||||||
if (!CreateDirectoryW(path, NULL))
|
if (!CreateDirectoryW(path, NULL))
|
||||||
goto end;
|
goto end;
|
||||||
|
@ -292,36 +259,30 @@ ThreadFunc(LPVOID Context)
|
||||||
dl = CreateDl(Context, &bCancelled);
|
dl = CreateDl(Context, &bCancelled);
|
||||||
r = URLDownloadToFileW(NULL, AppInfo->szUrlDownload, path, 0, dl);
|
r = URLDownloadToFileW(NULL, AppInfo->szUrlDownload, path, 0, dl);
|
||||||
if (dl) IBindStatusCallback_Release(dl);
|
if (dl) IBindStatusCallback_Release(dl);
|
||||||
if (S_OK != r)
|
if (S_OK != r) goto end;
|
||||||
{
|
else if (bCancelled) goto end;
|
||||||
MessageBoxW(0, L"Download error!", NULL, 0);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
else if (bCancelled)
|
|
||||||
{
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
ShowWindow(Dlg, SW_HIDE);
|
ShowWindow(Dlg, SW_HIDE);
|
||||||
|
|
||||||
/* run it */
|
/* run it */
|
||||||
memset(&si, 0, sizeof(si));
|
memset(&si, 0, sizeof(si));
|
||||||
si.cb = sizeof(si);
|
si.cb = sizeof(si);
|
||||||
r = CreateProcessW(path, NULL, NULL, NULL, 0, 0, NULL, NULL, &si, &pi);
|
r = CreateProcessW(path, NULL, NULL, NULL, 0, 0, NULL, NULL, &si, &pi);
|
||||||
if (0 == r)
|
if (0 == r) goto end;
|
||||||
{
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
CloseHandle(pi.hThread);
|
CloseHandle(pi.hThread);
|
||||||
WaitForSingleObject(pi.hProcess, INFINITE);
|
WaitForSingleObject(pi.hProcess, INFINITE);
|
||||||
CloseHandle(pi.hProcess);
|
CloseHandle(pi.hProcess);
|
||||||
|
|
||||||
end:
|
end:
|
||||||
if (bTempfile)
|
if (bTempfile)
|
||||||
{
|
{
|
||||||
if (bCancelled)
|
if (bCancelled || (SettingsInfo.bDelInstaller && !bCab))
|
||||||
DeleteFileW(path);
|
DeleteFileW(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndDialog(Dlg, 0);
|
EndDialog(Dlg, 0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -337,6 +298,13 @@ DownloadDlgProc(HWND Dlg, UINT Msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
|
|
||||||
|
hIcon = LoadIconW(hInst, MAKEINTRESOURCEW(IDI_MAIN));
|
||||||
|
if (hIcon)
|
||||||
|
{
|
||||||
|
SendMessageW(Dlg, WM_SETICON, ICON_BIG, (LPARAM) hIcon);
|
||||||
|
SendMessageW(Dlg, WM_SETICON, ICON_SMALL, (LPARAM) hIcon);
|
||||||
|
}
|
||||||
|
|
||||||
SetWindowLongPtrW(Dlg, GWLP_USERDATA, 0);
|
SetWindowLongPtrW(Dlg, GWLP_USERDATA, 0);
|
||||||
Item = GetDlgItem(Dlg, IDC_DOWNLOAD_PROGRESS);
|
Item = GetDlgItem(Dlg, IDC_DOWNLOAD_PROGRESS);
|
||||||
if (Item)
|
if (Item)
|
||||||
|
@ -359,6 +327,7 @@ DownloadDlgProc(HWND Dlg, UINT Msg, WPARAM wParam, LPARAM lParam)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
case WM_CLOSE:
|
case WM_CLOSE:
|
||||||
|
if (hIcon) DestroyIcon(hIcon);
|
||||||
EndDialog(Dlg, 0);
|
EndDialog(Dlg, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
@ -376,6 +345,8 @@ DownloadApplication(INT Index)
|
||||||
AppInfo = (PAPPLICATION_INFO) ListViewGetlParam(Index);
|
AppInfo = (PAPPLICATION_INFO) ListViewGetlParam(Index);
|
||||||
if (!AppInfo) return FALSE;
|
if (!AppInfo) return FALSE;
|
||||||
|
|
||||||
|
WriteLogMessage(EVENTLOG_SUCCESS, MSG_SUCCESS_INSTALL, AppInfo->szName);
|
||||||
|
|
||||||
DialogBoxW(hInst,
|
DialogBoxW(hInst,
|
||||||
MAKEINTRESOURCEW(IDD_DOWNLOAD_DIALOG),
|
MAKEINTRESOURCEW(IDD_DOWNLOAD_DIALOG),
|
||||||
hMainWnd,
|
hMainWnd,
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
#define EXTRACT_FILLFILELIST 0x00000001
|
#define EXTRACT_FILLFILELIST 0x00000001
|
||||||
#define EXTRACT_EXTRACTFILES 0x00000002
|
#define EXTRACT_EXTRACTFILES 0x00000002
|
||||||
|
|
||||||
|
static HANDLE hLog = NULL;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
int erfOper;
|
int erfOper;
|
||||||
|
@ -244,3 +246,106 @@ ExtractFilesFromCab(LPWSTR lpCabName, LPWSTR lpOutputPath)
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
InitLogs(VOID)
|
||||||
|
{
|
||||||
|
WCHAR szBuf[MAX_PATH] = L"SYSTEM\\CurrentControlSet\\Services\\EventLog\\ReactOS Application Manager\\ReactOS Application Manager";
|
||||||
|
WCHAR szPath[MAX_PATH];
|
||||||
|
DWORD dwCategoryNum = 1;
|
||||||
|
DWORD dwDisp, dwData;
|
||||||
|
HKEY hKey;
|
||||||
|
|
||||||
|
if (!SettingsInfo.bLogEnabled) return;
|
||||||
|
|
||||||
|
if (RegCreateKeyExW(HKEY_LOCAL_MACHINE,
|
||||||
|
szBuf, 0, NULL,
|
||||||
|
REG_OPTION_NON_VOLATILE,
|
||||||
|
KEY_WRITE, NULL, &hKey, &dwDisp) != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!GetCurrentDirectoryW(MAX_PATH, szPath)) return;
|
||||||
|
wcscat(szPath, L"\\rapps.exe");
|
||||||
|
|
||||||
|
if (RegSetValueExW(hKey,
|
||||||
|
L"EventMessageFile",
|
||||||
|
0,
|
||||||
|
REG_EXPAND_SZ,
|
||||||
|
(LPBYTE)szPath,
|
||||||
|
(DWORD)(wcslen(szPath) + 1) * sizeof(WCHAR)) != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE |
|
||||||
|
EVENTLOG_INFORMATION_TYPE;
|
||||||
|
|
||||||
|
if (RegSetValueExW(hKey,
|
||||||
|
L"TypesSupported",
|
||||||
|
0,
|
||||||
|
REG_DWORD,
|
||||||
|
(LPBYTE)&dwData,
|
||||||
|
sizeof(DWORD)) != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (RegSetValueExW(hKey,
|
||||||
|
L"CategoryMessageFile",
|
||||||
|
0,
|
||||||
|
REG_EXPAND_SZ,
|
||||||
|
(LPBYTE)szPath,
|
||||||
|
(DWORD)(wcslen(szPath) + 1) * sizeof(WCHAR)) != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (RegSetValueExW(hKey,
|
||||||
|
L"CategoryCount",
|
||||||
|
0,
|
||||||
|
REG_DWORD,
|
||||||
|
(LPBYTE)&dwCategoryNum,
|
||||||
|
sizeof(DWORD)) != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
|
||||||
|
hLog = RegisterEventSourceW(NULL, L"ReactOS Application Manager");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
FreeLogs(VOID)
|
||||||
|
{
|
||||||
|
if (hLog) DeregisterEventSource(hLog);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
WriteLogMessage(WORD wType, DWORD dwEventID, LPWSTR lpMsg)
|
||||||
|
{
|
||||||
|
if (!SettingsInfo.bLogEnabled) return TRUE;
|
||||||
|
|
||||||
|
if (!ReportEventW(hLog,
|
||||||
|
wType,
|
||||||
|
0,
|
||||||
|
dwEventID,
|
||||||
|
NULL,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
(LPCWSTR*)&lpMsg,
|
||||||
|
NULL))
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
|
@ -5,8 +5,11 @@
|
||||||
#include <commctrl.h>
|
#include <commctrl.h>
|
||||||
#include <richedit.h>
|
#include <richedit.h>
|
||||||
#include <shlwapi.h>
|
#include <shlwapi.h>
|
||||||
|
#include <shlobj.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
|
|
||||||
|
#include <rappsmsg.h>
|
||||||
|
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
|
|
||||||
#define APPLICATION_DATEBASE_URL L"http://opendn.org/rappmgr.cab"
|
#define APPLICATION_DATEBASE_URL L"http://opendn.org/rappmgr.cab"
|
||||||
|
@ -55,9 +58,9 @@ typedef struct
|
||||||
{
|
{
|
||||||
INT Category;
|
INT Category;
|
||||||
WCHAR szName[MAX_PATH];
|
WCHAR szName[MAX_PATH];
|
||||||
WCHAR szRegName[MAX_PATH];
|
WCHAR szRegName[MAX_PATH];
|
||||||
WCHAR szVersion[MAX_PATH];
|
WCHAR szVersion[MAX_PATH];
|
||||||
WCHAR szLicence[MAX_PATH];
|
WCHAR szLicence[MAX_PATH];
|
||||||
WCHAR szDesc[MAX_PATH];
|
WCHAR szDesc[MAX_PATH];
|
||||||
WCHAR szSize[MAX_PATH];
|
WCHAR szSize[MAX_PATH];
|
||||||
WCHAR szUrlSite[MAX_PATH];
|
WCHAR szUrlSite[MAX_PATH];
|
||||||
|
@ -66,10 +69,27 @@ typedef struct
|
||||||
|
|
||||||
} APPLICATION_INFO, *PAPPLICATION_INFO;
|
} APPLICATION_INFO, *PAPPLICATION_INFO;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
BOOL bSaveWndPos;
|
||||||
|
BOOL bUpdateAtStart;
|
||||||
|
BOOL bLogEnabled;
|
||||||
|
WCHAR szDownloadDir[MAX_PATH];
|
||||||
|
BOOL bDelInstaller;
|
||||||
|
/* Window Pos */
|
||||||
|
BOOL Maximized;
|
||||||
|
INT Left;
|
||||||
|
INT Top;
|
||||||
|
INT Right;
|
||||||
|
INT Bottom;
|
||||||
|
|
||||||
|
} SETTINGS_INFO, *PSETTINGS_INFO;
|
||||||
|
|
||||||
/* available.c */
|
/* available.c */
|
||||||
typedef BOOL (CALLBACK *AVAILENUMPROC)(APPLICATION_INFO Info);
|
typedef BOOL (CALLBACK *AVAILENUMPROC)(APPLICATION_INFO Info);
|
||||||
BOOL EnumAvailableApplications(INT EnumType, AVAILENUMPROC lpEnumProc);
|
BOOL EnumAvailableApplications(INT EnumType, AVAILENUMPROC lpEnumProc);
|
||||||
BOOL ShowAvailableAppInfo(INT Index);
|
BOOL ShowAvailableAppInfo(INT Index);
|
||||||
|
BOOL UpdateAppsDB(VOID);
|
||||||
|
|
||||||
/* installdlg.c */
|
/* installdlg.c */
|
||||||
BOOL InstallApplication(INT Index);
|
BOOL InstallApplication(INT Index);
|
||||||
|
@ -86,6 +106,9 @@ BOOL IsInstalledApplication(LPWSTR lpRegName, BOOL IsUserKey);
|
||||||
extern HWND hMainWnd;
|
extern HWND hMainWnd;
|
||||||
extern HINSTANCE hInst;
|
extern HINSTANCE hInst;
|
||||||
extern INT SelectedEnumType;
|
extern INT SelectedEnumType;
|
||||||
|
extern SETTINGS_INFO SettingsInfo;
|
||||||
|
VOID SaveSettings(HWND hwnd);
|
||||||
|
VOID FillDafaultSettings(PSETTINGS_INFO pSettingsInfo);
|
||||||
|
|
||||||
/* listview.c */
|
/* listview.c */
|
||||||
extern HWND hListView;
|
extern HWND hListView;
|
||||||
|
@ -111,6 +134,9 @@ VOID SetWelcomeText(VOID);
|
||||||
VOID ShowPopupMenu(HWND hwnd, UINT MenuID);
|
VOID ShowPopupMenu(HWND hwnd, UINT MenuID);
|
||||||
BOOL StartProcess(LPWSTR lpPath, BOOL Wait);
|
BOOL StartProcess(LPWSTR lpPath, BOOL Wait);
|
||||||
BOOL ExtractFilesFromCab(LPWSTR lpCabName, LPWSTR lpOutputPath);
|
BOOL ExtractFilesFromCab(LPWSTR lpCabName, LPWSTR lpOutputPath);
|
||||||
|
VOID InitLogs(VOID);
|
||||||
|
VOID FreeLogs(VOID);
|
||||||
|
BOOL WriteLogMessage(WORD wType, DWORD dwEventID, LPWSTR lpMsg);
|
||||||
|
|
||||||
/* parser.c */
|
/* parser.c */
|
||||||
INT ParserGetString(LPCWSTR section, LPCWSTR entry, LPWSTR buffer, UINT len, LPCWSTR filename);
|
INT ParserGetString(LPCWSTR section, LPCWSTR entry, LPWSTR buffer, UINT len, LPCWSTR filename);
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
|
<group>
|
||||||
<module name="rapps" type="win32gui" installbase="system32" installname="rapps.exe" unicode="yes">
|
<module name="rapps" type="win32gui" installbase="system32" installname="rapps.exe" unicode="yes">
|
||||||
|
<include base="ReactOS">include/reactos</include>
|
||||||
|
<include base="rapps" root="intermediate">.</include>
|
||||||
<include base="rapps">.</include>
|
<include base="rapps">.</include>
|
||||||
|
|
||||||
<library>advapi32</library>
|
<library>advapi32</library>
|
||||||
|
@ -12,6 +15,8 @@
|
||||||
<library>shlwapi</library>
|
<library>shlwapi</library>
|
||||||
<library>ntdll</library>
|
<library>ntdll</library>
|
||||||
|
|
||||||
|
<dependency>rappsmsg</dependency>
|
||||||
|
|
||||||
<file>aboutdlg.c</file>
|
<file>aboutdlg.c</file>
|
||||||
<file>available.c</file>
|
<file>available.c</file>
|
||||||
<file>installdlg.c</file>
|
<file>installdlg.c</file>
|
||||||
|
@ -29,3 +34,7 @@
|
||||||
<file>winmain.c</file>
|
<file>winmain.c</file>
|
||||||
<file>rapps.rc</file>
|
<file>rapps.rc</file>
|
||||||
</module>
|
</module>
|
||||||
|
<module name="rappsmsg" type="messageheader">
|
||||||
|
<file>rappsmsg.mc</file>
|
||||||
|
</module>
|
||||||
|
</group>
|
||||||
|
|
|
@ -37,4 +37,6 @@ IDI_CAT_VIDEO ICON DISCARDABLE "res/cats/video.ico"
|
||||||
|
|
||||||
1 24 DISCARDABLE "manifest.xml"
|
1 24 DISCARDABLE "manifest.xml"
|
||||||
|
|
||||||
|
#include <rappsmsg.rc>
|
||||||
|
|
||||||
#include "rsrc.rc"
|
#include "rsrc.rc"
|
||||||
|
|
28
reactos/base/applications/rapps/rappsmsg.mc
Normal file
28
reactos/base/applications/rapps/rappsmsg.mc
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
MessageIdTypedef=ULONG
|
||||||
|
|
||||||
|
SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
|
||||||
|
Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
|
||||||
|
Warning=0x2:STATUS_SEVERITY_WARNING
|
||||||
|
Error=0x3:STATUS_SEVERITY_ERROR)
|
||||||
|
|
||||||
|
FacilityNames=(System=0x0:FACILITY_SYSTEM Application=0xFFF)
|
||||||
|
|
||||||
|
LanguageNames=(English=0x409:MSG00409)
|
||||||
|
|
||||||
|
MessageId=1
|
||||||
|
Severity=Success
|
||||||
|
Facility=Application
|
||||||
|
SymbolicName=MSG_SUCCESS_INSTALL
|
||||||
|
Language=English
|
||||||
|
Installation of the program "%1" is called.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=2
|
||||||
|
Severity=Success
|
||||||
|
Facility=Application
|
||||||
|
SymbolicName=MSG_SUCCESS_REMOVE
|
||||||
|
Language=English
|
||||||
|
Removal of the program "%1" is called.
|
||||||
|
.
|
||||||
|
|
||||||
|
; EOF
|
|
@ -36,6 +36,16 @@
|
||||||
#define IDC_STATUSBAR 1000
|
#define IDC_STATUSBAR 1000
|
||||||
#define IDC_DOWNLOAD_PROGRESS 1001
|
#define IDC_DOWNLOAD_PROGRESS 1001
|
||||||
#define IDC_DOWNLOAD_STATUS 1002
|
#define IDC_DOWNLOAD_STATUS 1002
|
||||||
|
#define IDC_SAVE_WINDOW_POS 1003
|
||||||
|
#define IDC_UPDATE_AVLIST 1004
|
||||||
|
#define IDC_DOWNLOAD_DIR_EDIT 1005
|
||||||
|
#define IDC_DEL_AFTER_INSTALL 1006
|
||||||
|
#define IDC_LOG_ENABLED 1007
|
||||||
|
#define IDC_CHOOSE 1008
|
||||||
|
#define IDC_DEFAULT_SETTINGS 1009
|
||||||
|
#define IDC_INSTALL_TEXT 1010
|
||||||
|
#define IDC_CD_INSTALL 1011
|
||||||
|
#define IDC_DOWNLOAD_INSTALL 1012
|
||||||
|
|
||||||
/* Dialogs */
|
/* Dialogs */
|
||||||
#define IDD_SETTINGS_DIALOG 300
|
#define IDD_SETTINGS_DIALOG 300
|
||||||
|
@ -74,7 +84,9 @@
|
||||||
#define IDS_AVAILABLEFORINST 110
|
#define IDS_AVAILABLEFORINST 110
|
||||||
#define IDS_UPDATES 111
|
#define IDS_UPDATES 111
|
||||||
#define IDS_APPLICATIONS 112
|
#define IDS_APPLICATIONS 112
|
||||||
#define IDS_DOWNLOAD_FOLDER 113
|
#define IDS_CHOOSE_FOLDER_TEXT 113
|
||||||
|
#define IDS_CHOOSE_FOLDER_ERROR 114
|
||||||
|
#define IDS_USER_NOT_ADMIN 115
|
||||||
|
|
||||||
/* Tooltips */
|
/* Tooltips */
|
||||||
#define IDS_TOOLTIP_INSTALL 200
|
#define IDS_TOOLTIP_INSTALL 200
|
||||||
|
|
|
@ -8,6 +8,48 @@
|
||||||
|
|
||||||
#include "rapps.h"
|
#include "rapps.h"
|
||||||
|
|
||||||
|
SETTINGS_INFO NewSettingsInfo;
|
||||||
|
|
||||||
|
#define IS_CHECKED(a, b) \
|
||||||
|
a = (SendDlgItemMessage(hDlg, b, BM_GETCHECK, 0, 0) == BST_CHECKED) ? TRUE : FALSE
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
ChooseFolder(HWND hwnd)
|
||||||
|
{
|
||||||
|
BROWSEINFO fi;
|
||||||
|
LPCITEMIDLIST lpItemList;
|
||||||
|
WCHAR szPath[MAX_PATH], szBuf[MAX_STR_LEN];
|
||||||
|
|
||||||
|
LoadStringW(hInst, IDS_CHOOSE_FOLDER_TEXT, szBuf, sizeof(szBuf) / sizeof(TCHAR));
|
||||||
|
|
||||||
|
ZeroMemory(&fi, sizeof(BROWSEINFO));
|
||||||
|
fi.hwndOwner = hwnd;
|
||||||
|
fi.lpszTitle = szBuf;
|
||||||
|
fi.ulFlags = BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS | BIF_BROWSEFORCOMPUTER | BIF_NEWDIALOGSTYLE;
|
||||||
|
fi.lpfn = NULL;
|
||||||
|
fi.lParam = -1;
|
||||||
|
fi.iImage = 0;
|
||||||
|
|
||||||
|
if (!(lpItemList = SHBrowseForFolder(&fi))) return FALSE;
|
||||||
|
SHGetPathFromIDList(lpItemList, szPath);
|
||||||
|
|
||||||
|
if (wcslen(szPath) == 0) return FALSE;
|
||||||
|
SetDlgItemTextW(hwnd, IDC_DOWNLOAD_DIR_EDIT, szPath);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VOID
|
||||||
|
InitSettingsControls(HWND hDlg, SETTINGS_INFO Info)
|
||||||
|
{
|
||||||
|
SendDlgItemMessage(hDlg, IDC_SAVE_WINDOW_POS, BM_SETCHECK, Info.bSaveWndPos, 0);
|
||||||
|
SendDlgItemMessage(hDlg, IDC_UPDATE_AVLIST, BM_SETCHECK, Info.bUpdateAtStart, 0);
|
||||||
|
SendDlgItemMessage(hDlg, IDC_LOG_ENABLED, BM_SETCHECK, Info.bLogEnabled, 0);
|
||||||
|
SendDlgItemMessage(hDlg, IDC_DEL_AFTER_INSTALL, BM_SETCHECK, Info.bDelInstaller, 0);
|
||||||
|
|
||||||
|
SetWindowTextW(GetDlgItem(hDlg, IDC_DOWNLOAD_DIR_EDIT),
|
||||||
|
Info.szDownloadDir);
|
||||||
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
INT_PTR CALLBACK
|
INT_PTR CALLBACK
|
||||||
|
@ -17,7 +59,8 @@ SettingsDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
{
|
{
|
||||||
|
NewSettingsInfo = SettingsInfo;
|
||||||
|
InitSettingsControls(hDlg, SettingsInfo);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -25,10 +68,67 @@ SettingsDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
switch (LOWORD(wParam))
|
switch (LOWORD(wParam))
|
||||||
{
|
{
|
||||||
|
case IDC_CHOOSE:
|
||||||
|
ChooseFolder(hDlg);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_SAVE_WINDOW_POS:
|
||||||
|
IS_CHECKED(NewSettingsInfo.bSaveWndPos, IDC_SAVE_WINDOW_POS);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_UPDATE_AVLIST:
|
||||||
|
IS_CHECKED(NewSettingsInfo.bUpdateAtStart, IDC_UPDATE_AVLIST);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_LOG_ENABLED:
|
||||||
|
IS_CHECKED(NewSettingsInfo.bLogEnabled, IDC_LOG_ENABLED);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_DEL_AFTER_INSTALL:
|
||||||
|
IS_CHECKED(NewSettingsInfo.bDelInstaller, IDC_DEL_AFTER_INSTALL);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_DEFAULT_SETTINGS:
|
||||||
|
FillDafaultSettings(&NewSettingsInfo);
|
||||||
|
InitSettingsControls(hDlg, NewSettingsInfo);
|
||||||
|
break;
|
||||||
|
|
||||||
case IDOK:
|
case IDOK:
|
||||||
|
{
|
||||||
|
WCHAR szDir[MAX_PATH];
|
||||||
|
DWORD dwAttr;
|
||||||
|
|
||||||
|
GetWindowTextW(GetDlgItem(hDlg, IDC_DOWNLOAD_DIR_EDIT),
|
||||||
|
szDir, MAX_PATH);
|
||||||
|
|
||||||
|
dwAttr = GetFileAttributesW(szDir);
|
||||||
|
if (dwAttr != INVALID_FILE_ATTRIBUTES &&
|
||||||
|
(dwAttr & FILE_ATTRIBUTE_DIRECTORY))
|
||||||
|
{
|
||||||
|
wcscpy(NewSettingsInfo.szDownloadDir, szDir);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
WCHAR szMsgText[MAX_STR_LEN];
|
||||||
|
|
||||||
|
LoadStringW(hInst,
|
||||||
|
IDS_CHOOSE_FOLDER_ERROR,
|
||||||
|
szMsgText, sizeof(szMsgText) / sizeof(WCHAR));
|
||||||
|
|
||||||
|
MessageBoxW(hDlg, szMsgText, NULL, MB_OK | MB_ICONERROR);
|
||||||
|
SetFocus(GetDlgItem(hDlg, IDC_DOWNLOAD_DIR_EDIT));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
SettingsInfo = NewSettingsInfo;
|
||||||
|
SaveSettings(GetParent(hDlg));
|
||||||
|
EndDialog(hDlg, LOWORD(wParam));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case IDCANCEL:
|
case IDCANCEL:
|
||||||
EndDialog(hDlg, LOWORD(wParam));
|
EndDialog(hDlg, LOWORD(wParam));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -26,7 +26,7 @@ static const TBBUTTON Buttons[] =
|
||||||
{ 5, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0},
|
{ 5, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0},
|
||||||
{ 3, ID_REFRESH, TBSTATE_ENABLED, BTNS_BUTTON | BTNS_AUTOSIZE, {0}, 0, 0},
|
{ 3, ID_REFRESH, TBSTATE_ENABLED, BTNS_BUTTON | BTNS_AUTOSIZE, {0}, 0, 0},
|
||||||
{ 5, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0},
|
{ 5, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0},
|
||||||
{ 4, ID_SETTINGS, TBSTATE_INDETERMINATE, BTNS_BUTTON | BTNS_AUTOSIZE, {0}, 0, 0},
|
{ 4, ID_SETTINGS, TBSTATE_ENABLED, BTNS_BUTTON | BTNS_AUTOSIZE, {0}, 0, 0},
|
||||||
{ 5, ID_EXIT, TBSTATE_ENABLED, BTNS_BUTTON | BTNS_AUTOSIZE, {0}, 0, 0}
|
{ 5, ID_EXIT, TBSTATE_ENABLED, BTNS_BUTTON | BTNS_AUTOSIZE, {0}, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,70 @@ HINSTANCE hInst;
|
||||||
HIMAGELIST hImageListView = NULL;
|
HIMAGELIST hImageListView = NULL;
|
||||||
HIMAGELIST hImageTreeView = NULL;
|
HIMAGELIST hImageTreeView = NULL;
|
||||||
INT SelectedEnumType = ENUM_ALL_COMPONENTS;
|
INT SelectedEnumType = ENUM_ALL_COMPONENTS;
|
||||||
|
SETTINGS_INFO SettingsInfo;
|
||||||
|
|
||||||
|
VOID
|
||||||
|
FillDafaultSettings(PSETTINGS_INFO pSettingsInfo)
|
||||||
|
{
|
||||||
|
pSettingsInfo->bSaveWndPos = TRUE;
|
||||||
|
pSettingsInfo->bUpdateAtStart = FALSE;
|
||||||
|
pSettingsInfo->bLogEnabled = TRUE;
|
||||||
|
wcscpy(pSettingsInfo->szDownloadDir, L"C:\\Downloads");
|
||||||
|
pSettingsInfo->bDelInstaller = FALSE;
|
||||||
|
|
||||||
|
pSettingsInfo->Maximized = FALSE;
|
||||||
|
pSettingsInfo->Left = 0;
|
||||||
|
pSettingsInfo->Top = 0;
|
||||||
|
pSettingsInfo->Right = 680;
|
||||||
|
pSettingsInfo->Bottom = 450;
|
||||||
|
}
|
||||||
|
|
||||||
|
static BOOL
|
||||||
|
LoadSettings(VOID)
|
||||||
|
{
|
||||||
|
HKEY hKey;
|
||||||
|
DWORD dwSize;
|
||||||
|
|
||||||
|
if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\ReactOS\\rapps", 0, KEY_READ, &hKey) == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
dwSize = sizeof(SETTINGS_INFO);
|
||||||
|
if (RegQueryValueExW(hKey, L"Settings", NULL, NULL, (LPBYTE)&SettingsInfo, &dwSize) == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
SaveSettings(HWND hwnd)
|
||||||
|
{
|
||||||
|
WINDOWPLACEMENT wp;
|
||||||
|
HKEY hKey;
|
||||||
|
|
||||||
|
if (SettingsInfo.bSaveWndPos)
|
||||||
|
{
|
||||||
|
wp.length = sizeof(WINDOWPLACEMENT);
|
||||||
|
GetWindowPlacement(hwnd, &wp);
|
||||||
|
|
||||||
|
SettingsInfo.Left = wp.rcNormalPosition.left;
|
||||||
|
SettingsInfo.Top = wp.rcNormalPosition.top;
|
||||||
|
SettingsInfo.Right = wp.rcNormalPosition.right;
|
||||||
|
SettingsInfo.Bottom = wp.rcNormalPosition.bottom;
|
||||||
|
SettingsInfo.Maximized = (IsZoomed(hwnd) || (wp.flags & WPF_RESTORETOMAXIMIZED));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (RegCreateKeyExW(HKEY_CURRENT_USER, L"Software\\ReactOS\\rapps", 0, NULL,
|
||||||
|
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL) == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
RegSetValueEx(hKey, L"Settings", 0, REG_BINARY, (LPBYTE)&SettingsInfo, sizeof(SETTINGS_INFO));
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
FreeInstalledAppList(VOID)
|
FreeInstalledAppList(VOID)
|
||||||
|
@ -226,6 +289,15 @@ InitCategoriesList(VOID)
|
||||||
BOOL
|
BOOL
|
||||||
InitControls(HWND hwnd)
|
InitControls(HWND hwnd)
|
||||||
{
|
{
|
||||||
|
if (SettingsInfo.bSaveWndPos)
|
||||||
|
{
|
||||||
|
MoveWindow(hwnd, SettingsInfo.Left, SettingsInfo.Top,
|
||||||
|
SettingsInfo.Right - SettingsInfo.Left,
|
||||||
|
SettingsInfo.Bottom - SettingsInfo.Top, TRUE);
|
||||||
|
|
||||||
|
if (SettingsInfo.Maximized) ShowWindow(hwnd, SW_MAXIMIZE);
|
||||||
|
}
|
||||||
|
|
||||||
if (CreateStatusBar(hwnd) &&
|
if (CreateStatusBar(hwnd) &&
|
||||||
CreateToolBar(hwnd) &&
|
CreateToolBar(hwnd) &&
|
||||||
CreateListView(hwnd) &&
|
CreateListView(hwnd) &&
|
||||||
|
@ -347,7 +419,7 @@ MainWndOnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
HDWP hdwp = BeginDeferWindowPos(5);
|
HDWP hdwp = BeginDeferWindowPos(5);
|
||||||
INT SearchBarWidth = GetWindowWidth(hSearchBar);
|
INT SearchBarWidth = GetWindowWidth(hSearchBar);
|
||||||
INT RichPos = GetWindowHeight(hRichEdit);
|
INT RichPos = GetWindowHeight(hRichEdit);
|
||||||
INT NewPos = GetClientWindowHeight(hMainWnd) - (RichPos + SPLIT_WIDTH + GetWindowHeight(hStatusBar));
|
INT NewPos = HIWORD(lParam) - (RichPos + SPLIT_WIDTH + GetWindowHeight(hStatusBar));
|
||||||
INT VSplitterPos;
|
INT VSplitterPos;
|
||||||
|
|
||||||
/* Size status bar */
|
/* Size status bar */
|
||||||
|
@ -387,7 +459,7 @@ MainWndOnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
while (NewPos < SPLIT_WIDTH + GetWindowHeight(hToolBar))
|
while (NewPos < SPLIT_WIDTH + GetWindowHeight(hToolBar))
|
||||||
{
|
{
|
||||||
RichPos--;
|
RichPos--;
|
||||||
NewPos = GetClientWindowHeight(hMainWnd) - (RichPos +
|
NewPos = HIWORD(lParam) - (RichPos +
|
||||||
SPLIT_WIDTH + GetWindowHeight(hStatusBar));
|
SPLIT_WIDTH + GetWindowHeight(hStatusBar));
|
||||||
}
|
}
|
||||||
SetHSplitterPos(NewPos);
|
SetHSplitterPos(NewPos);
|
||||||
|
@ -408,7 +480,7 @@ MainWndOnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
0,
|
0,
|
||||||
VSplitterPos + SPLIT_WIDTH,
|
VSplitterPos + SPLIT_WIDTH,
|
||||||
GetHSplitterPos() + SPLIT_WIDTH,
|
GetHSplitterPos() + SPLIT_WIDTH,
|
||||||
GetClientWindowWidth(hMainWnd) - (VSplitterPos + SPLIT_WIDTH),
|
LOWORD(lParam) - (VSplitterPos + SPLIT_WIDTH),
|
||||||
RichPos,
|
RichPos,
|
||||||
SWP_NOZORDER|SWP_NOACTIVATE);
|
SWP_NOZORDER|SWP_NOACTIVATE);
|
||||||
|
|
||||||
|
@ -418,7 +490,7 @@ MainWndOnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
0,
|
0,
|
||||||
VSplitterPos + SPLIT_WIDTH,
|
VSplitterPos + SPLIT_WIDTH,
|
||||||
GetHSplitterPos(),
|
GetHSplitterPos(),
|
||||||
GetClientWindowWidth(hMainWnd) - (VSplitterPos + SPLIT_WIDTH),
|
LOWORD(lParam) - (VSplitterPos + SPLIT_WIDTH),
|
||||||
SPLIT_WIDTH,
|
SPLIT_WIDTH,
|
||||||
SWP_NOZORDER|SWP_NOACTIVATE);
|
SWP_NOZORDER|SWP_NOACTIVATE);
|
||||||
|
|
||||||
|
@ -433,6 +505,9 @@ MainWindowProc(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
|
||||||
case WM_CREATE:
|
case WM_CREATE:
|
||||||
if (!InitControls(hwnd))
|
if (!InitControls(hwnd))
|
||||||
PostMessage(hwnd, WM_CLOSE, 0, 0);
|
PostMessage(hwnd, WM_CLOSE, 0, 0);
|
||||||
|
|
||||||
|
if (SettingsInfo.bUpdateAtStart)
|
||||||
|
UpdateAppsDB();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
|
@ -624,12 +699,18 @@ MainWindowProc(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
case WM_DESTROY:
|
case WM_DESTROY:
|
||||||
{
|
{
|
||||||
|
ShowWindow(hwnd, SW_HIDE);
|
||||||
|
SaveSettings(hwnd);
|
||||||
|
|
||||||
|
FreeLogs();
|
||||||
|
|
||||||
if (IS_AVAILABLE_ENUM(SelectedEnumType))
|
if (IS_AVAILABLE_ENUM(SelectedEnumType))
|
||||||
FreeAvailableAppList();
|
FreeAvailableAppList();
|
||||||
if (IS_INSTALLED_ENUM(SelectedEnumType))
|
if (IS_INSTALLED_ENUM(SelectedEnumType))
|
||||||
FreeInstalledAppList();
|
FreeInstalledAppList();
|
||||||
if (hImageListView) ImageList_Destroy(hImageListView);
|
if (hImageListView) ImageList_Destroy(hImageListView);
|
||||||
if (hImageTreeView) ImageList_Destroy(hImageTreeView);
|
if (hImageTreeView) ImageList_Destroy(hImageTreeView);
|
||||||
|
|
||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -645,9 +726,19 @@ wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nSh
|
||||||
WNDCLASSEXW WndClass = {0};
|
WNDCLASSEXW WndClass = {0};
|
||||||
WCHAR szWindowClass[] = L"ROSAPPMGR";
|
WCHAR szWindowClass[] = L"ROSAPPMGR";
|
||||||
WCHAR szWindowName[MAX_STR_LEN];
|
WCHAR szWindowName[MAX_STR_LEN];
|
||||||
|
WCHAR szErrorText[MAX_STR_LEN];
|
||||||
HANDLE hMutex = NULL;
|
HANDLE hMutex = NULL;
|
||||||
MSG Msg;
|
MSG Msg;
|
||||||
|
|
||||||
|
hInst = hInstance;
|
||||||
|
|
||||||
|
if (!IsUserAnAdmin())
|
||||||
|
{
|
||||||
|
LoadStringW(hInst, IDS_USER_NOT_ADMIN, szErrorText, sizeof(szErrorText) / sizeof(WCHAR));
|
||||||
|
MessageBox(0, szErrorText, NULL, MB_OK | MB_ICONWARNING);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
hMutex = CreateMutexW(NULL, FALSE, szWindowClass);
|
hMutex = CreateMutexW(NULL, FALSE, szWindowClass);
|
||||||
if ((!hMutex) || (GetLastError() == ERROR_ALREADY_EXISTS))
|
if ((!hMutex) || (GetLastError() == ERROR_ALREADY_EXISTS))
|
||||||
{
|
{
|
||||||
|
@ -660,7 +751,12 @@ wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nSh
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
hInst = hInstance;
|
if (!LoadSettings())
|
||||||
|
{
|
||||||
|
FillDafaultSettings(&SettingsInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
InitLogs();
|
||||||
|
|
||||||
InitCommonControls();
|
InitCommonControls();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue