[ros-diffs] [dchapyshev] 43081: - 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

dchapyshev at svn.reactos.org dchapyshev at svn.reactos.org
Sat Sep 19 18:04:38 CEST 2009


Author: dchapyshev
Date: Sat Sep 19 18:04:38 2009
New Revision: 43081

URL: http://svn.reactos.org/svn/reactos?rev=43081&view=rev
Log:
- 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

Added:
    trunk/reactos/base/applications/rapps/rappsmsg.mc   (with props)
Modified:
    trunk/reactos/base/applications/rapps/available.c
    trunk/reactos/base/applications/rapps/installed.c
    trunk/reactos/base/applications/rapps/lang/bg-BG.rc
    trunk/reactos/base/applications/rapps/lang/de-DE.rc
    trunk/reactos/base/applications/rapps/lang/en-US.rc
    trunk/reactos/base/applications/rapps/lang/es-ES.rc
    trunk/reactos/base/applications/rapps/lang/ja-JP.rc
    trunk/reactos/base/applications/rapps/lang/no-NO.rc
    trunk/reactos/base/applications/rapps/lang/pl-PL.rc
    trunk/reactos/base/applications/rapps/lang/ru-RU.rc
    trunk/reactos/base/applications/rapps/lang/sk-SK.rc
    trunk/reactos/base/applications/rapps/lang/uk-UA.rc
    trunk/reactos/base/applications/rapps/loaddlg.c
    trunk/reactos/base/applications/rapps/misc.c
    trunk/reactos/base/applications/rapps/rapps.h
    trunk/reactos/base/applications/rapps/rapps.rbuild
    trunk/reactos/base/applications/rapps/rapps.rc
    trunk/reactos/base/applications/rapps/resource.h
    trunk/reactos/base/applications/rapps/settingsdlg.c
    trunk/reactos/base/applications/rapps/toolbar.c
    trunk/reactos/base/applications/rapps/winmain.c

Modified: trunk/reactos/base/applications/rapps/available.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/available.c?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/available.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/available.c [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -34,6 +34,76 @@
     ADD_TEXT(IDS_AINFO_SIZE, Info->szSize, CFE_BOLD, 0);
     ADD_TEXT(IDS_AINFO_URLSITE, Info->szUrlSite, CFE_BOLD, CFE_LINK);
     ADD_TEXT(IDS_AINFO_DESCRIPTION, Info->szDesc, CFE_BOLD, 0);
+
+    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;
 }
@@ -75,10 +145,10 @@
     hFind = FindFirstFileW(szPath, &FindFileData);
     if (hFind == INVALID_HANDLE_VALUE)
     {
-		if (GetFileAttributesW(szCabPath) == 0xFFFFFFFF)
-			DownloadApplicationsDB(APPLICATION_DATEBASE_URL);
+        if (GetFileAttributesW(szCabPath) == INVALID_FILE_ATTRIBUTES)
+            DownloadApplicationsDB(APPLICATION_DATEBASE_URL);
 
-		ExtractFilesFromCab(szCabPath, szAppsPath);
+        ExtractFilesFromCab(szCabPath, szAppsPath);
         hFind = FindFirstFileW(szPath, &FindFileData);
         if (hFind == INVALID_HANDLE_VALUE)
             return FALSE;

Modified: trunk/reactos/base/applications/rapps/installed.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/installed.c?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/installed.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/installed.c [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -84,6 +84,7 @@
     WCHAR szModify[] = L"ModifyPath";
     WCHAR szUninstall[] = L"UninstallString";
     WCHAR szPath[MAX_PATH];
+    WCHAR szAppName[MAX_STR_LEN];
     DWORD dwType, dwSize;
     INT ItemIndex;
     LVITEM Item;
@@ -102,6 +103,9 @@
     {
         ItemIndex = Index;
     }
+
+    ListView_GetItemText(hListView, ItemIndex, 0, szAppName, sizeof(szAppName) / sizeof(WCHAR));
+    WriteLogMessage(EVENTLOG_SUCCESS, MSG_SUCCESS_REMOVE, szAppName);
 
     ZeroMemory(&Item, sizeof(LVITEM));
 

Modified: trunk/reactos/base/applications/rapps/lang/bg-BG.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/lang/bg-BG.rc?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/lang/bg-BG.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/lang/bg-BG.rc [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -4,7 +4,7 @@
 BEGIN
 	POPUP "&Ôàéë"
 	BEGIN
-		MENUITEM "Íà&ñòðîéêè", ID_SETTINGS, GRAYED
+		MENUITEM "Íà&ñòðîéêè", ID_SETTINGS
 		MENUITEM SEPARATOR
 		MENUITEM "Èç&õîä",     ID_EXIT
 	END
@@ -44,22 +44,39 @@
 	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
-CAPTION "Íàñòðîéêè"
+CAPTION "Settings"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "Äîáðå", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Îòêàç", IDCANCEL, 320, 212, 60, 14
+	GROUPBOX "General", -1, 4, 2, 240, 61
+	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
 
-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
-CAPTION "Ñâàëÿíå è ñëàãàíå"
+CAPTION "Program installation"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "Äîáðå", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Îòêàç", IDCANCEL, 320, 212, 60, 14
+	LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
+
+	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
 
 IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE  0, 0, 220, 76
@@ -163,5 +180,7 @@
 	IDS_AVAILABLEFORINST "Íàëè÷íî çà ñëàãàíå"
 	IDS_UPDATES "Îáíîâëåíèÿ"
 	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

Modified: trunk/reactos/base/applications/rapps/lang/de-DE.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/lang/de-DE.rc?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/lang/de-DE.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/lang/de-DE.rc [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -4,7 +4,7 @@
 BEGIN
 	POPUP "&Datei"
 	BEGIN
-		MENUITEM "&Einstellungen", ID_SETTINGS, GRAYED
+		MENUITEM "&Einstellungen", ID_SETTINGS
 		MENUITEM SEPARATOR
 		MENUITEM "&Beenden",     ID_EXIT
 	END
@@ -44,22 +44,39 @@
 	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
-CAPTION "Einstellungen"
+CAPTION "Settings"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Abbrechen", IDCANCEL, 320, 212, 60, 14
+	GROUPBOX "General", -1, 4, 2, 240, 61
+	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
 
-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
-CAPTION "Herunterladen und installieren"
+CAPTION "Program installation"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Abbrechen", IDCANCEL, 320, 212, 60, 14
+	LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
+
+	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
 
 IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE  0, 0, 220, 76
@@ -163,5 +180,7 @@
 	IDS_AVAILABLEFORINST "Zur Installation verfügbar"
 	IDS_UPDATES "Updates"
 	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

Modified: trunk/reactos/base/applications/rapps/lang/en-US.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/lang/en-US.rc?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/lang/en-US.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/lang/en-US.rc [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -4,7 +4,7 @@
 BEGIN
 	POPUP "&File"
 	BEGIN
-		MENUITEM "&Settings", ID_SETTINGS, GRAYED
+		MENUITEM "&Settings", ID_SETTINGS
 		MENUITEM SEPARATOR
 		MENUITEM "E&xit",     ID_EXIT
 	END
@@ -44,22 +44,39 @@
 	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
 CAPTION "Settings"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Cancel", IDCANCEL, 320, 212, 60, 14
+	GROUPBOX "General", -1, 4, 2, 240, 61
+	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
 
-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
-CAPTION "Download and Install"
+CAPTION "Program installation"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Cancel", IDCANCEL, 320, 212, 60, 14
+	LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
+
+	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
 
 IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE  0, 0, 220, 76
@@ -156,12 +173,14 @@
 	IDS_UNINSTALL "Uninstall"
 	IDS_MODIFY "Modify"
 	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_URL "http://www.reactos.org"
 	IDS_INSTALLED "Installed"
 	IDS_AVAILABLEFORINST "Available for installation"
 	IDS_UPDATES "Updates"
 	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

Modified: trunk/reactos/base/applications/rapps/lang/es-ES.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/lang/es-ES.rc?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/lang/es-ES.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/lang/es-ES.rc [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -4,7 +4,7 @@
 BEGIN
 	POPUP "&Archivo"
 	BEGIN
-		MENUITEM "&Ajustes", ID_SETTINGS, GRAYED
+		MENUITEM "&Ajustes", ID_SETTINGS
 		MENUITEM SEPARATOR
 		MENUITEM "Sa&lir",     ID_EXIT
 	END
@@ -44,22 +44,39 @@
 	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
-CAPTION "Ajustes"
+CAPTION "Settings"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "Aceptar", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Cancelar", IDCANCEL, 320, 212, 60, 14
+	GROUPBOX "General", -1, 4, 2, 240, 61
+	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
 
-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
-CAPTION "Descargar e Instalar"
+CAPTION "Program installation"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "Aceptar", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Cancelar", IDCANCEL, 320, 212, 60, 14
+	LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
+
+	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
 
 IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE  0, 0, 220, 76
@@ -156,12 +173,14 @@
 	IDS_UNINSTALL "Desinstalar"
 	IDS_MODIFY "Modificar"
 	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_URL "http://www.reactos.org"
 	IDS_INSTALLED "Instaladas"
 	IDS_AVAILABLEFORINST "Disponible para instalación"
 	IDS_UPDATES "Actualizaciones"
 	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

Modified: trunk/reactos/base/applications/rapps/lang/ja-JP.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/lang/ja-JP.rc?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/lang/ja-JP.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/lang/ja-JP.rc [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -4,7 +4,7 @@
 BEGIN
 	POPUP "ƒtƒ@ƒCƒ‹(&F)"
 	BEGIN
-		MENUITEM "Ý’è(&S)",            ID_SETTINGS, GRAYED
+		MENUITEM "Ý’è(&S)",            ID_SETTINGS
 		MENUITEM SEPARATOR
 		MENUITEM "I—¹(&X)",            ID_EXIT
 	END
@@ -44,22 +44,39 @@
 	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
-CAPTION "Ý’è"
-FONT 9, "MS UI Gothic"
+CAPTION "Settings"
+FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "ƒLƒƒƒ“ƒZƒ‹", IDCANCEL, 320, 212, 60, 14
+	GROUPBOX "General", -1, 4, 2, 240, 61
+	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
 
-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
-CAPTION "ƒ_ƒEƒ“ƒ[ƒh‚ƃCƒ“ƒXƒg[ƒ‹"
-FONT 9, "MS UI Gothic"
+CAPTION "Program installation"
+FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "ƒLƒƒƒ“ƒZƒ‹", IDCANCEL, 320, 212, 60, 14
+	LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
+
+	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
 
 IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE  0, 0, 220, 76
@@ -163,5 +180,7 @@
 	IDS_AVAILABLEFORINST "ƒCƒ“ƒXƒg[ƒ‹‰Â”\\"
 	IDS_UPDATES "ƒAƒbƒvƒf[ƒg"
 	IDS_APPLICATIONS "ƒAƒvƒŠƒP[ƒVƒ‡ƒ“"
-	IDS_DOWNLOAD_FOLDER "ƒ_ƒEƒ“ƒ[ƒh"
+	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

Modified: trunk/reactos/base/applications/rapps/lang/no-NO.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/lang/no-NO.rc?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/lang/no-NO.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/lang/no-NO.rc [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -4,7 +4,7 @@
 BEGIN
 	POPUP "&Fil"
 	BEGIN
-		MENUITEM "&Innstillinger", ID_SETTINGS, GRAYED
+		MENUITEM "&Innstillinger", ID_SETTINGS
 		MENUITEM SEPARATOR
 		MENUITEM "A&vslutt",     ID_EXIT
 	END
@@ -44,22 +44,39 @@
 	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
-CAPTION "Innstillinger"
+CAPTION "Settings"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Avbryt", IDCANCEL, 320, 212, 60, 14
+	GROUPBOX "General", -1, 4, 2, 240, 61
+	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
 
-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
-CAPTION "Last ned og installere"
+CAPTION "Program installation"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Avbryt", IDCANCEL, 320, 212, 60, 14
+	LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
+
+	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
 
 IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE  0, 0, 220, 76
@@ -163,5 +180,7 @@
 	IDS_AVAILABLEFORINST "Tilgjengelig for installasjon"
 	IDS_UPDATES "Oppdateringer"
 	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

Modified: trunk/reactos/base/applications/rapps/lang/pl-PL.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/lang/pl-PL.rc?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/lang/pl-PL.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/lang/pl-PL.rc [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -6,7 +6,7 @@
 BEGIN
 	POPUP "&Plik"
 	BEGIN
-		MENUITEM "&Ustawienia", ID_SETTINGS, GRAYED
+		MENUITEM "&Ustawienia", ID_SETTINGS
 		MENUITEM SEPARATOR
 		MENUITEM "&Wyjœcie",     ID_EXIT
 	END
@@ -46,22 +46,39 @@
 	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
-CAPTION "Ustawienia"
+CAPTION "Settings"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Anuluj", IDCANCEL, 320, 212, 60, 14
+	GROUPBOX "General", -1, 4, 2, 240, 61
+	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
 
-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
-CAPTION "Œci¹gnij i zainstaluj"
+CAPTION "Program installation"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Anuluj", IDCANCEL, 320, 212, 60, 14
+	LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
+
+	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
 
 IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE  0, 0, 220, 76
@@ -165,5 +182,7 @@
 	IDS_AVAILABLEFORINST "Dostêpne"
 	IDS_UPDATES "Uaktualnienia"
 	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

Modified: trunk/reactos/base/applications/rapps/lang/ru-RU.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/lang/ru-RU.rc?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/lang/ru-RU.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/lang/ru-RU.rc [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -4,7 +4,7 @@
 BEGIN
 	POPUP "&Ôàéë"
 	BEGIN
-		MENUITEM "&Ïàðàìåòðû",   ID_SETTINGS, GRAYED
+		MENUITEM "&Ïàðàìåòðû",   ID_SETTINGS
 		MENUITEM SEPARATOR
 		MENUITEM "&Âûõîä",       ID_EXIT
 	END
@@ -44,22 +44,39 @@
 	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
 CAPTION "Ïàðàìåòðû"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Îòìåíà", IDCANCEL, 320, 212, 60, 14
+	GROUPBOX "Îáùèå", -1, 4, 2, 240, 61
+	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
 
-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
-CAPTION "Ñêà÷àòü è óñòàíîâèòü"
+CAPTION "Óñòàíîâêà ïðîãðàììû"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Îòìåíà", IDCANCEL, 320, 212, 60, 14
+	LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
+
+	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
 
 IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE  0, 0, 220, 76
@@ -113,7 +130,7 @@
 	IDS_INFO_UPDATEINFO "\nÈíôîðìàöèÿ îá îáíîâëåíèÿõ: "
 	IDS_INFO_INFOABOUT "\nÈíôîðìàöèÿ î ïðîãðàììå: "
 	IDS_INFO_COMMENTS "\nÊîììåíòàðèè: "
-	IDS_INFO_INSTLOCATION "\nÓñòàíîâëåíî èç: "
+	IDS_INFO_INSTLOCATION "\nÓñòàíîâëåíî â: "
 	IDS_INFO_INSTALLSRC "\nÈñòî÷íèê óñòàíîâêè: "
 	IDS_INFO_UNINSTALLSTR "\nÑòðîêà äëÿ óäàëåíèÿ: "
 	IDS_INFO_MODIFYPATH "\nÑòðîêà äëÿ èçìåíåíèÿ: "
@@ -163,5 +180,7 @@
 	IDS_AVAILABLEFORINST "Äîñòóïíî äëÿ óñòàíîâêè"
 	IDS_UPDATES "Îáíîâëåíèÿ"
 	IDS_APPLICATIONS "Ïðèëîæåíèÿ"
-	IDS_DOWNLOAD_FOLDER "Downloads"
+	IDS_CHOOSE_FOLDER_TEXT "Âûáåðèòå ïàïêó, êîòîðàÿ áóäåò èñïîëüçîâàòüñÿ äëÿ çàãðóçêè ïðîãðàìì:"
+	IDS_CHOOSE_FOLDER_ERROR "Âû óêàçàëè íåñóùåñòâóþùóþ ïàïêó!"
+	IDS_USER_NOT_ADMIN "Âû äîëæíû áûòü àäìèíèñòðàòîðîì äëÿ çàïóñêà ""Ìåíåäæåðà ïðèëîæåíèé ReactOS""!"
 END

Modified: trunk/reactos/base/applications/rapps/lang/sk-SK.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/lang/sk-SK.rc?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/lang/sk-SK.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/lang/sk-SK.rc [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -9,7 +9,7 @@
 BEGIN
 	POPUP "&Súbor"
 	BEGIN
-		MENUITEM "&Nastavenia",   ID_SETTINGS, GRAYED
+		MENUITEM "&Nastavenia",   ID_SETTINGS
 		MENUITEM SEPARATOR
 		MENUITEM "S&konèi",      ID_EXIT
 	END
@@ -49,22 +49,39 @@
 	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
-CAPTION "Nastavenia"
+CAPTION "Settings"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Zruši", IDCANCEL, 320, 212, 60, 14
+	GROUPBOX "General", -1, 4, 2, 240, 61
+	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
 
-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
-CAPTION "Stiahnu a nainštalova"
+CAPTION "Program installation"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "OK", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "Zruši", IDCANCEL, 320, 212, 60, 14
+	LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
+
+	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
 
 IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE  0, 0, 220, 76
@@ -168,5 +185,7 @@
 	IDS_AVAILABLEFORINST "Dostupné pre nainštalovanie"
 	IDS_UPDATES "Aktualizá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

Modified: trunk/reactos/base/applications/rapps/lang/uk-UA.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/lang/uk-UA.rc?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/lang/uk-UA.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/lang/uk-UA.rc [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -12,7 +12,7 @@
 BEGIN
 	POPUP "&Ôàéë"
 	BEGIN
-		MENUITEM "&Íàëàøòóâàííÿ", ID_SETTINGS, GRAYED
+		MENUITEM "&Íàëàøòóâàííÿ", ID_SETTINGS
 		MENUITEM SEPARATOR
 		MENUITEM "Â&èõ³ä",     ID_EXIT
 	END
@@ -52,22 +52,39 @@
 	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
-CAPTION "Íàëàøòóâàííÿ"
+CAPTION "Settings"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "Òàê", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "ͳ", IDCANCEL, 320, 212, 60, 14
+	GROUPBOX "General", -1, 4, 2, 240, 61
+	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
 
-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
-CAPTION "Çàâàíòàæèòè ³ âñòàíîâèòè"
+CAPTION "Program installation"
 FONT 8, "MS Shell Dlg"
 BEGIN
-	PUSHBUTTON "Òàê", IDOK, 255, 212, 60, 14
-	PUSHBUTTON "ͳ", IDCANCEL, 320, 212, 60, 14
+	LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
+
+	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
 
 IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE  0, 0, 220, 76
@@ -171,5 +188,7 @@
 	IDS_AVAILABLEFORINST "Äîñòóïí³ äëÿ âñòàíîâëåííÿ"
 	IDS_UPDATES "Îíîâëåííÿ"
 	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

Modified: trunk/reactos/base/applications/rapps/loaddlg.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/loaddlg.c?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/loaddlg.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/loaddlg.c [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -37,6 +37,7 @@
 #include <urlmon.h>
 
 static PAPPLICATION_INFO AppInfo;
+static HICON hIcon = NULL;
 
 typedef struct _IBindStatusCallbackImpl
 {
@@ -220,31 +221,11 @@
     DWORD r;
     BOOL bCancelled = FALSE;
     BOOL bTempfile = FALSE;
-    HKEY hKey = NULL;
-    DWORD dwSize = MAX_PATH;
+    BOOL bCab = FALSE;
 
     /* built the path for the download */
     p = wcsrchr(AppInfo->szUrlDownload, L'/');
     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)
     {
@@ -253,32 +234,18 @@
             AppInfo->szUrlDownload[wcslen(AppInfo->szUrlDownload) - 2] == 'a' &&
             AppInfo->szUrlDownload[wcslen(AppInfo->szUrlDownload) - 1] == 'b')
         {
+            bCab = TRUE;
             if (!GetCurrentDirectoryW(MAX_PATH, path))
                 goto end;
         }
         else
         {
-            if (RegOpenKeyW(HKEY_LOCAL_MACHINE,
-                            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);
-            }
+            wcscpy(path, SettingsInfo.szDownloadDir);
         }
     }
     else goto end;
 
-    if (GetFileAttributesW(path) == 0xFFFFFFFF)
+    if (GetFileAttributesW(path) == INVALID_FILE_ATTRIBUTES)
     {
         if (!CreateDirectoryW(path, NULL))
             goto end;
@@ -292,36 +259,30 @@
     dl = CreateDl(Context, &bCancelled);
     r = URLDownloadToFileW(NULL, AppInfo->szUrlDownload, path, 0, dl);
     if (dl) IBindStatusCallback_Release(dl);
-    if (S_OK != r)
-    {
-        MessageBoxW(0, L"Download error!", NULL, 0);
-        goto end;
-    }
-    else if (bCancelled)
-    {
-        goto end;
-    }
+    if (S_OK != r) goto end;
+    else if (bCancelled) goto end;
+
     ShowWindow(Dlg, SW_HIDE);
 
     /* run it */
     memset(&si, 0, sizeof(si));
     si.cb = sizeof(si);
     r = CreateProcessW(path, NULL, NULL, NULL, 0, 0, NULL, NULL, &si, &pi);
-    if (0 == r)
-    {
-        goto end;
-    }
+    if (0 == r) goto end;
+
     CloseHandle(pi.hThread);
     WaitForSingleObject(pi.hProcess, INFINITE);
     CloseHandle(pi.hProcess);
 
-    end:
-        if (bTempfile)
-        {
-            if (bCancelled)
-                DeleteFileW(path);
-        }
+end:
+    if (bTempfile)
+    {
+        if (bCancelled || (SettingsInfo.bDelInstaller && !bCab))
+            DeleteFileW(path);
+    }
+
     EndDialog(Dlg, 0);
+
     return 0;
 }
 
@@ -336,6 +297,13 @@
     switch (Msg)
     {
         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);
             Item = GetDlgItem(Dlg, IDC_DOWNLOAD_PROGRESS);
@@ -359,6 +327,7 @@
             return FALSE;
 
         case WM_CLOSE:
+            if (hIcon) DestroyIcon(hIcon);
             EndDialog(Dlg, 0);
             return TRUE;
 
@@ -375,6 +344,8 @@
 
     AppInfo = (PAPPLICATION_INFO) ListViewGetlParam(Index);
     if (!AppInfo) return FALSE;
+
+    WriteLogMessage(EVENTLOG_SUCCESS, MSG_SUCCESS_INSTALL, AppInfo->szName);
 
     DialogBoxW(hInst,
                MAKEINTRESOURCEW(IDD_DOWNLOAD_DIALOG),

Modified: trunk/reactos/base/applications/rapps/misc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/misc.c?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/misc.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/misc.c [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -12,6 +12,8 @@
 /* SESSION Operation */
 #define EXTRACT_FILLFILELIST  0x00000001
 #define EXTRACT_EXTRACTFILES  0x00000002
+
+static HANDLE hLog = NULL;
 
 typedef struct
 {
@@ -244,3 +246,106 @@
 
     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;
+}

Modified: trunk/reactos/base/applications/rapps/rapps.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/rapps.h?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/rapps.h [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/rapps.h [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -5,7 +5,10 @@
 #include <commctrl.h>
 #include <richedit.h>
 #include <shlwapi.h>
+#include <shlobj.h>
 #include <wchar.h>
+
+#include <rappsmsg.h>
 
 #include "resource.h"
 
@@ -55,9 +58,9 @@
 {
     INT Category;
     WCHAR szName[MAX_PATH];
-	WCHAR szRegName[MAX_PATH];
+    WCHAR szRegName[MAX_PATH];
     WCHAR szVersion[MAX_PATH];
-	WCHAR szLicence[MAX_PATH];
+    WCHAR szLicence[MAX_PATH];
     WCHAR szDesc[MAX_PATH];
     WCHAR szSize[MAX_PATH];
     WCHAR szUrlSite[MAX_PATH];
@@ -66,10 +69,27 @@
 
 } 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 */
 typedef BOOL (CALLBACK *AVAILENUMPROC)(APPLICATION_INFO Info);
 BOOL EnumAvailableApplications(INT EnumType, AVAILENUMPROC lpEnumProc);
 BOOL ShowAvailableAppInfo(INT Index);
+BOOL UpdateAppsDB(VOID);
 
 /* installdlg.c */
 BOOL InstallApplication(INT Index);
@@ -86,6 +106,9 @@
 extern HWND hMainWnd;
 extern HINSTANCE hInst;
 extern INT SelectedEnumType;
+extern SETTINGS_INFO SettingsInfo;
+VOID SaveSettings(HWND hwnd);
+VOID FillDafaultSettings(PSETTINGS_INFO pSettingsInfo);
 
 /* listview.c */
 extern HWND hListView;
@@ -111,6 +134,9 @@
 VOID ShowPopupMenu(HWND hwnd, UINT MenuID);
 BOOL StartProcess(LPWSTR lpPath, BOOL Wait);
 BOOL ExtractFilesFromCab(LPWSTR lpCabName, LPWSTR lpOutputPath);
+VOID InitLogs(VOID);
+VOID FreeLogs(VOID);
+BOOL WriteLogMessage(WORD wType, DWORD dwEventID, LPWSTR lpMsg);
 
 /* parser.c */
 INT ParserGetString(LPCWSTR section, LPCWSTR entry, LPWSTR buffer, UINT len, LPCWSTR filename);

Modified: trunk/reactos/base/applications/rapps/rapps.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/rapps.rbuild?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/rapps.rbuild [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/rapps.rbuild [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -1,4 +1,7 @@
+<group>
 <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>
 
 	<library>advapi32</library>
@@ -11,6 +14,8 @@
 	<library>shell32</library>
 	<library>shlwapi</library>
 	<library>ntdll</library>
+
+	<dependency>rappsmsg</dependency>
 
 	<file>aboutdlg.c</file>
 	<file>available.c</file>
@@ -29,3 +34,7 @@
 	<file>winmain.c</file>
 	<file>rapps.rc</file>
 </module>
+<module name="rappsmsg" type="messageheader">
+	<file>rappsmsg.mc</file>
+</module>
+</group>

Modified: trunk/reactos/base/applications/rapps/rapps.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/rapps.rc?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/rapps.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/rapps.rc [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -37,4 +37,6 @@
 
 1 24 DISCARDABLE "manifest.xml"
 
+#include <rappsmsg.rc>
+
 #include "rsrc.rc"

Added: trunk/reactos/base/applications/rapps/rappsmsg.mc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/rappsmsg.mc?rev=43081&view=auto
==============================================================================
--- trunk/reactos/base/applications/rapps/rappsmsg.mc (added)
+++ trunk/reactos/base/applications/rapps/rappsmsg.mc [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -1,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

Propchange: trunk/reactos/base/applications/rapps/rappsmsg.mc
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/reactos/base/applications/rapps/resource.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/resource.h?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/resource.h [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/resource.h [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -36,6 +36,16 @@
 #define IDC_STATUSBAR            1000
 #define IDC_DOWNLOAD_PROGRESS    1001
 #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 */
 #define IDD_SETTINGS_DIALOG      300
@@ -74,7 +84,9 @@
 #define IDS_AVAILABLEFORINST     110
 #define IDS_UPDATES              111
 #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 */
 #define IDS_TOOLTIP_INSTALL      200

Modified: trunk/reactos/base/applications/rapps/settingsdlg.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/settingsdlg.c?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/settingsdlg.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/settingsdlg.c [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -8,6 +8,48 @@
 
 #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
 INT_PTR CALLBACK
@@ -17,7 +59,8 @@
     {
         case WM_INITDIALOG:
         {
-
+            NewSettingsInfo = SettingsInfo;
+            InitSettingsControls(hDlg, SettingsInfo);
         }
         break;
 
@@ -25,10 +68,67 @@
         {
             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:
+                {
+                    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:
                     EndDialog(hDlg, LOWORD(wParam));
-                break;
+                    break;
             }
         }
         break;

Modified: trunk/reactos/base/applications/rapps/toolbar.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/toolbar.c?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/toolbar.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/toolbar.c [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -26,7 +26,7 @@
     { 5, 0,            TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0},
     { 3, ID_REFRESH,   TBSTATE_ENABLED, BTNS_BUTTON | BTNS_AUTOSIZE, {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}
 };
 

Modified: trunk/reactos/base/applications/rapps/winmain.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/winmain.c?rev=43081&r1=43080&r2=43081&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/winmain.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/winmain.c [iso-8859-1] Sat Sep 19 18:04:38 2009
@@ -13,7 +13,70 @@
 HIMAGELIST hImageListView = NULL;
 HIMAGELIST hImageTreeView = NULL;
 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
 FreeInstalledAppList(VOID)
@@ -226,6 +289,15 @@
 BOOL
 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) &&
         CreateToolBar(hwnd) &&
         CreateListView(hwnd) &&
@@ -347,7 +419,7 @@
     HDWP hdwp = BeginDeferWindowPos(5);
     INT SearchBarWidth = GetWindowWidth(hSearchBar);
     INT RichPos = GetWindowHeight(hRichEdit);
-    INT NewPos = GetClientWindowHeight(hMainWnd) - (RichPos + SPLIT_WIDTH + GetWindowHeight(hStatusBar));
+    INT NewPos = HIWORD(lParam) - (RichPos + SPLIT_WIDTH + GetWindowHeight(hStatusBar));
     INT VSplitterPos;
 
     /* Size status bar */
@@ -387,7 +459,7 @@
     while (NewPos < SPLIT_WIDTH + GetWindowHeight(hToolBar))
     {
         RichPos--;
-        NewPos = GetClientWindowHeight(hMainWnd) - (RichPos +
+        NewPos = HIWORD(lParam) - (RichPos +
                  SPLIT_WIDTH + GetWindowHeight(hStatusBar));
     }
     SetHSplitterPos(NewPos);
@@ -408,7 +480,7 @@
                    0,
                    VSplitterPos + SPLIT_WIDTH,
                    GetHSplitterPos() + SPLIT_WIDTH,
-                   GetClientWindowWidth(hMainWnd) - (VSplitterPos + SPLIT_WIDTH),
+                   LOWORD(lParam) - (VSplitterPos + SPLIT_WIDTH),
                    RichPos,
                    SWP_NOZORDER|SWP_NOACTIVATE);
 
@@ -418,7 +490,7 @@
                    0,
                    VSplitterPos + SPLIT_WIDTH,
                    GetHSplitterPos(),
-                   GetClientWindowWidth(hMainWnd) - (VSplitterPos + SPLIT_WIDTH),
+                   LOWORD(lParam) - (VSplitterPos + SPLIT_WIDTH),
                    SPLIT_WIDTH,
                    SWP_NOZORDER|SWP_NOACTIVATE);
 
@@ -433,6 +505,9 @@
         case WM_CREATE:
             if (!InitControls(hwnd))
                 PostMessage(hwnd, WM_CLOSE, 0, 0);
+
+            if (SettingsInfo.bUpdateAtStart)
+                UpdateAppsDB();
             break;
 
         case WM_COMMAND:
@@ -624,12 +699,18 @@
 
         case WM_DESTROY:
         {
+            ShowWindow(hwnd, SW_HIDE);
+            SaveSettings(hwnd);
+
+            FreeLogs();
+
             if (IS_AVAILABLE_ENUM(SelectedEnumType))
                 FreeAvailableAppList();
             if (IS_INSTALLED_ENUM(SelectedEnumType))
                 FreeInstalledAppList();
             if (hImageListView) ImageList_Destroy(hImageListView);
             if (hImageTreeView) ImageList_Destroy(hImageTreeView);
+
             PostQuitMessage(0);
             return 0;
         }
@@ -645,8 +726,18 @@
     WNDCLASSEXW WndClass = {0};
     WCHAR szWindowClass[] = L"ROSAPPMGR";
     WCHAR szWindowName[MAX_STR_LEN];
+    WCHAR szErrorText[MAX_STR_LEN];
     HANDLE hMutex = NULL;
     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);
     if ((!hMutex) || (GetLastError() == ERROR_ALREADY_EXISTS))
@@ -660,7 +751,12 @@
         return 1;
     }
 
-    hInst = hInstance;
+    if (!LoadSettings())
+    {
+        FillDafaultSettings(&SettingsInfo);
+    }
+
+    InitLogs();
 
     InitCommonControls();
 




More information about the Ros-diffs mailing list