diff --git a/rosapps/downloader/download.c b/rosapps/downloader/download.c index a6070b72913..44059ebca2c 100644 --- a/rosapps/downloader/download.c +++ b/rosapps/downloader/download.c @@ -5,7 +5,7 @@ * COPYRIGHT: Copyright 2001 John R. Sheets (for CodeWeavers) * Copyright 2004 Mike McCormack (for CodeWeavers) * Copyright 2005 Ge van Geldorp (gvg@reactos.org) - * Copyright 2007 Dmitry Chapyshev (lentind@yandex.ru) + * Copyright 2007 Dmitry Chapyshev (lentind@yandex.ru) */ /* * Based on Wine dlls/shdocvw/shdocvw_main.c @@ -44,309 +44,307 @@ extern WCHAR Strings [STRING_COUNT][MAX_STRING_LENGHT]; typedef struct _IBindStatusCallbackImpl { - const IBindStatusCallbackVtbl *vtbl; - LONG ref; - HWND hDialog; - BOOL *pbCancelled; + const IBindStatusCallbackVtbl *vtbl; + LONG ref; + HWND hDialog; + BOOL *pbCancelled; } IBindStatusCallbackImpl; static HRESULT WINAPI dlQueryInterface(IBindStatusCallback* This, REFIID riid, void** ppvObject) { - if (NULL == ppvObject) - { - return E_POINTER; - } + if (NULL == ppvObject) + { + return E_POINTER; + } - if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IBindStatusCallback)) - { - IBindStatusCallback_AddRef( This ); - *ppvObject = This; - return S_OK; - } + if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IBindStatusCallback)) + { + IBindStatusCallback_AddRef( This ); + *ppvObject = This; + return S_OK; + } - return E_NOINTERFACE; + return E_NOINTERFACE; } static ULONG WINAPI dlAddRef(IBindStatusCallback* iface) { - IBindStatusCallbackImpl *This = (IBindStatusCallbackImpl *) iface; + IBindStatusCallbackImpl *This = (IBindStatusCallbackImpl *) iface; - return InterlockedIncrement(&This->ref); + return InterlockedIncrement(&This->ref); } static ULONG WINAPI dlRelease(IBindStatusCallback* iface) { - IBindStatusCallbackImpl *This = (IBindStatusCallbackImpl *) iface; - DWORD ref = InterlockedDecrement(&This->ref); + IBindStatusCallbackImpl *This = (IBindStatusCallbackImpl *) iface; + DWORD ref = InterlockedDecrement(&This->ref); - if( !ref ) - { - DestroyWindow( This->hDialog ); - HeapFree(GetProcessHeap(), 0, This); - } + if( !ref ) + { + DestroyWindow( This->hDialog ); + HeapFree(GetProcessHeap(), 0, This); + } - return ref; + return ref; } static HRESULT WINAPI dlOnStartBinding(IBindStatusCallback* iface, DWORD dwReserved, IBinding* pib) { - DPRINT1("OnStartBinding not implemented\n"); + DPRINT1("OnStartBinding not implemented\n"); - return S_OK; + return S_OK; } static HRESULT WINAPI dlGetPriority(IBindStatusCallback* iface, LONG* pnPriority) { - DPRINT1("GetPriority not implemented\n"); + DPRINT1("GetPriority not implemented\n"); - return S_OK; + return S_OK; } static HRESULT WINAPI dlOnLowResource( IBindStatusCallback* iface, DWORD reserved) { - DPRINT1("OnLowResource not implemented\n"); + DPRINT1("OnLowResource not implemented\n"); - return S_OK; + return S_OK; } static HRESULT WINAPI dlOnProgress(IBindStatusCallback* iface, ULONG ulProgress, - ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText) + ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText) { - IBindStatusCallbackImpl *This = (IBindStatusCallbackImpl *) iface; - HWND Item; - LONG r; - WCHAR OldText[100]; + IBindStatusCallbackImpl *This = (IBindStatusCallbackImpl *) iface; + HWND Item; + LONG r; + WCHAR OldText[100]; - Item = GetDlgItem(This->hDialog, IDC_PROGRESS); - if (NULL != Item && 0 != ulProgressMax) - { - SendMessageW(Item, PBM_SETPOS, (ulProgress * 100) / ulProgressMax, 0); - } + Item = GetDlgItem(This->hDialog, IDC_PROGRESS); + if (NULL != Item && 0 != ulProgressMax) + { + SendMessageW(Item, PBM_SETPOS, (ulProgress * 100) / ulProgressMax, 0); + } - Item = GetDlgItem(This->hDialog, IDC_STATUS); - if (NULL != Item && NULL != szStatusText) - { - SendMessageW(Item, WM_GETTEXT, sizeof(OldText) / sizeof(OldText[0]), - (LPARAM) OldText); - if (sizeof(OldText) / sizeof(OldText[0]) - 1 <= wcslen(OldText) || 0 != wcscmp(OldText, szStatusText)) - { - SendMessageW(Item, WM_SETTEXT, 0, (LPARAM) szStatusText); - } - } + Item = GetDlgItem(This->hDialog, IDC_STATUS); + if (NULL != Item && NULL != szStatusText) + { + SendMessageW(Item, WM_GETTEXT, sizeof(OldText) / sizeof(OldText[0]), + (LPARAM) OldText); + if (sizeof(OldText) / sizeof(OldText[0]) - 1 <= wcslen(OldText) || 0 != wcscmp(OldText, szStatusText)) + { + SendMessageW(Item, WM_SETTEXT, 0, (LPARAM) szStatusText); + } + } - SetLastError(0); - r = GetWindowLongPtrW(This->hDialog, GWLP_USERDATA); - if (0 != r || 0 != GetLastError()) - { - *This->pbCancelled = TRUE; - DPRINT("Cancelled\n"); - return E_ABORT; - } + SetLastError(0); + r = GetWindowLongPtrW(This->hDialog, GWLP_USERDATA); + if (0 != r || 0 != GetLastError()) + { + *This->pbCancelled = TRUE; + DPRINT("Cancelled\n"); + return E_ABORT; + } - return S_OK; + return S_OK; } static HRESULT WINAPI dlOnStopBinding(IBindStatusCallback* iface, HRESULT hresult, LPCWSTR szError) { - DPRINT1("OnStopBinding not implemented\n"); + DPRINT1("OnStopBinding not implemented\n"); - return S_OK; + return S_OK; } static HRESULT WINAPI dlGetBindInfo(IBindStatusCallback* iface, DWORD* grfBINDF, BINDINFO* pbindinfo) { - DPRINT1("GetBindInfo not implemented\n"); + DPRINT1("GetBindInfo not implemented\n"); - return S_OK; + return S_OK; } static HRESULT WINAPI dlOnDataAvailable(IBindStatusCallback* iface, DWORD grfBSCF, - DWORD dwSize, FORMATETC* pformatetc, STGMEDIUM* pstgmed) + DWORD dwSize, FORMATETC* pformatetc, STGMEDIUM* pstgmed) { - DPRINT1("OnDataAvailable implemented\n"); + DPRINT1("OnDataAvailable implemented\n"); - return S_OK; + return S_OK; } static HRESULT WINAPI dlOnObjectAvailable(IBindStatusCallback* iface, REFIID riid, IUnknown* punk) { - DPRINT1("OnObjectAvailable implemented\n"); + DPRINT1("OnObjectAvailable implemented\n"); - return S_OK; + return S_OK; } static const IBindStatusCallbackVtbl dlVtbl = { - dlQueryInterface, - dlAddRef, - dlRelease, - dlOnStartBinding, - dlGetPriority, - dlOnLowResource, - dlOnProgress, - dlOnStopBinding, - dlGetBindInfo, - dlOnDataAvailable, - dlOnObjectAvailable + dlQueryInterface, + dlAddRef, + dlRelease, + dlOnStartBinding, + dlGetPriority, + dlOnLowResource, + dlOnProgress, + dlOnStopBinding, + dlGetBindInfo, + dlOnDataAvailable, + dlOnObjectAvailable }; static IBindStatusCallback* CreateDl(HWND Dlg, BOOL *pbCancelled) { - IBindStatusCallbackImpl *This; + IBindStatusCallbackImpl *This; - This = HeapAlloc(GetProcessHeap(), 0, sizeof(IBindStatusCallbackImpl)); - This->vtbl = &dlVtbl; - This->ref = 1; - This->hDialog = Dlg; - This->pbCancelled = pbCancelled; + This = HeapAlloc(GetProcessHeap(), 0, sizeof(IBindStatusCallbackImpl)); + This->vtbl = &dlVtbl; + This->ref = 1; + This->hDialog = Dlg; + This->pbCancelled = pbCancelled; - return (IBindStatusCallback*) This; + return (IBindStatusCallback*) This; } static DWORD WINAPI ThreadFunc(LPVOID Context) { - //static const WCHAR szUrl[] = DownloadUrl; - IBindStatusCallback *dl; - WCHAR path[MAX_PATH]; - LPWSTR p; - STARTUPINFOW si; - PROCESS_INFORMATION pi; - HWND Dlg = (HWND) Context; - DWORD r; - BOOL bCancelled = FALSE; - BOOL bTempfile = FALSE; - HKEY hKey; - DWORD dwSize = MAX_PATH; + //static const WCHAR szUrl[] = DownloadUrl; + IBindStatusCallback *dl; + WCHAR path[MAX_PATH]; + LPWSTR p; + STARTUPINFOW si; + PROCESS_INFORMATION pi; + HWND Dlg = (HWND) Context; + DWORD r; + BOOL bCancelled = FALSE; + BOOL bTempfile = FALSE; + HKEY hKey; + DWORD dwSize = MAX_PATH; - /* built the path for the download */ - p = wcsrchr(SelectedApplication->Location, L'/'); - if (NULL == p) - { - goto end; - } - - /* Create default download path */ - if (GetWindowsDirectory(path, sizeof(path) / sizeof(WCHAR))) - { - WCHAR DPath[256]; - int i; - for (i = 0; i < 4; i++) - { - if (i == 3) - { - DPath[i] = '\0'; - break; - } - DPath[i] = path[i]; - } - LoadString(GetModuleHandle(NULL), IDS_DOWNLOAD_FOLDER, path, sizeof(path) / sizeof(WCHAR)); - wcscat((LPWSTR)DPath, path); - wcscpy(path, DPath); - } - - if (RegOpenKey(HKEY_LOCAL_MACHINE, - TEXT("Software\\ReactOS\\Downloader"), - &hKey) == ERROR_SUCCESS) - { - if ((RegQueryValueEx(hKey, - L"DownloadFolder", - NULL, - NULL, - (LPBYTE)&path, - &dwSize) != ERROR_SUCCESS) && (path[0] == 0)) - { - goto end; - } - } - - + /* built the path for the download */ + p = wcsrchr(SelectedApplication->Location, L'/'); + if (NULL == p) + { + goto end; + } - if (GetFileAttributes(path) == 0xFFFFFFFF) - if (!CreateDirectory((LPCTSTR)path,NULL)) - { - goto end; - } - wcscat(path, L"\\"); - wcscat(path, p + 1); + /* Create default download path */ + if (GetWindowsDirectory(path, sizeof(path) / sizeof(WCHAR))) + { + WCHAR DPath[256]; + int i; + for (i = 0; i < 4; i++) + { + if (i == 3) + { + DPath[i] = '\0'; + break; + } + DPath[i] = path[i]; + } + LoadString(GetModuleHandle(NULL), IDS_DOWNLOAD_FOLDER, path, sizeof(path) / sizeof(WCHAR)); + wcscat((LPWSTR)DPath, path); + wcscpy(path, DPath); + } - /* download it */ - bTempfile = TRUE; - dl = CreateDl(Context, &bCancelled); - r = URLDownloadToFileW(NULL, SelectedApplication->Location, path, 0, dl); - if (NULL != dl) - { - IBindStatusCallback_Release(dl); - } - if (S_OK != r) - { - MessageBoxW(0,Strings[IDS_DOWNLOAD_ERROR],0,0); - goto end; - } - else if (bCancelled) - { - goto end; - } - ShowWindow(Dlg, SW_HIDE); + if (RegOpenKey(HKEY_LOCAL_MACHINE, + TEXT("Software\\ReactOS\\Downloader"), + &hKey) == ERROR_SUCCESS) + { + if ((RegQueryValueEx(hKey, + L"DownloadFolder", + NULL, + NULL, + (LPBYTE)&path, + &dwSize) != ERROR_SUCCESS) && (path[0] == 0)) + { + goto end; + } + } - /* 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; - } - CloseHandle(pi.hThread); - WaitForSingleObject(pi.hProcess, INFINITE); - CloseHandle(pi.hProcess); + if (GetFileAttributes(path) == 0xFFFFFFFF) + if (!CreateDirectory((LPCTSTR)path,NULL)) + { + goto end; + } + wcscat(path, L"\\"); + wcscat(path, p + 1); - end: - if (bTempfile) - { - if (bCancelled) - DeleteFileW(path); - else - { - DWORD dwSize = sizeof(DWORD); - DWORD dwValue, dwType = REG_DWORD; - if (RegQueryValueEx(hKey, - L"DeleteInstaller", - NULL, - &dwType, - (LPBYTE)&dwValue, - &dwSize) == ERROR_SUCCESS) - if (dwValue == 0x1) - DeleteFileW(path); - RegCloseKey(hKey); - } - } - EndDialog(Dlg, 0); - return 0; + /* download it */ + bTempfile = TRUE; + dl = CreateDl(Context, &bCancelled); + r = URLDownloadToFileW(NULL, SelectedApplication->Location, path, 0, dl); + if (NULL != dl) + { + IBindStatusCallback_Release(dl); + } + if (S_OK != r) + { + MessageBoxW(0,Strings[IDS_DOWNLOAD_ERROR],0,0); + 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; + } + CloseHandle(pi.hThread); + WaitForSingleObject(pi.hProcess, INFINITE); + CloseHandle(pi.hProcess); + + end: + if (bTempfile) + { + if (bCancelled) + DeleteFileW(path); + else + { + DWORD dwSize = sizeof(DWORD); + DWORD dwValue, dwType = REG_DWORD; + if (RegQueryValueEx(hKey, + L"DeleteInstaller", + NULL, + &dwType, + (LPBYTE)&dwValue, + &dwSize) == ERROR_SUCCESS) + if (dwValue == 0x1) + DeleteFileW(path); + RegCloseKey(hKey); + } + } + EndDialog(Dlg, 0); + return 0; } INT_PTR CALLBACK DownloadProc(HWND Dlg, UINT Msg, WPARAM wParam, LPARAM lParam) { - HANDLE Thread; - DWORD ThreadId; - HWND Item; + HANDLE Thread; + DWORD ThreadId; + HWND Item; - switch (Msg) - { - case WM_INITDIALOG:/* + switch (Msg) + { + case WM_INITDIALOG:/* Icon = LoadIconW((HINSTANCE) GetWindowLongPtr(Dlg, GWLP_HINSTANCE), MAKEINTRESOURCEW(IDI_ICON_MAIN)); if (NULL != Icon) @@ -354,13 +352,13 @@ DownloadProc(HWND Dlg, UINT Msg, WPARAM wParam, LPARAM lParam) SendMessageW(Dlg, WM_SETICON, ICON_BIG, (LPARAM) Icon); SendMessageW(Dlg, WM_SETICON, ICON_SMALL, (LPARAM) Icon); }*/ - SetWindowLongPtrW(Dlg, GWLP_USERDATA, 0); - Item = GetDlgItem(Dlg, IDC_PROGRESS); - if (NULL != Item) - { - SendMessageW(Item, PBM_SETRANGE, 0, MAKELPARAM(0,100)); - SendMessageW(Item, PBM_SETPOS, 0, 0); - }/* + SetWindowLongPtrW(Dlg, GWLP_USERDATA, 0); + Item = GetDlgItem(Dlg, IDC_PROGRESS); + if (NULL != Item) + { + SendMessageW(Item, PBM_SETRANGE, 0, MAKELPARAM(0,100)); + SendMessageW(Item, PBM_SETPOS, 0, 0); + }/* Item = GetDlgItem(Dlg, IDC_REMOVE); if (NULL != Item) { @@ -375,27 +373,27 @@ DownloadProc(HWND Dlg, UINT Msg, WPARAM wParam, LPARAM lParam) ShowWindow(Item, SW_HIDE); } }*/ - Thread = CreateThread(NULL, 0, ThreadFunc, Dlg, 0, &ThreadId); - if (NULL == Thread) - { - return FALSE; - } - CloseHandle(Thread); - return TRUE; + Thread = CreateThread(NULL, 0, ThreadFunc, Dlg, 0, &ThreadId); + if (NULL == Thread) + { + return FALSE; + } + CloseHandle(Thread); + return TRUE; - case WM_COMMAND: - if (wParam == IDCANCEL) - { - SetWindowLongPtrW(Dlg, GWLP_USERDATA, 1); - PostMessage(Dlg, WM_CLOSE, 0, 0); - } - return FALSE; + case WM_COMMAND: + if (wParam == IDCANCEL) + { + SetWindowLongPtrW(Dlg, GWLP_USERDATA, 1); + PostMessage(Dlg, WM_CLOSE, 0, 0); + } + return FALSE; - case WM_CLOSE: - EndDialog(Dlg, 0); - return TRUE; + case WM_CLOSE: + EndDialog(Dlg, 0); + return TRUE; - default: - return FALSE; - } + default: + return FALSE; + } } diff --git a/rosapps/downloader/downloader.rc b/rosapps/downloader/downloader.rc index cc4ba647098..f3c79ccf003 100644 --- a/rosapps/downloader/downloader.rc +++ b/rosapps/downloader/downloader.rc @@ -1,9 +1,9 @@ #include #include "resources.h" -#define REACTOS_STR_FILE_DESCRIPTION "Download !\0" -#define REACTOS_STR_INTERNAL_NAME "downloader\0" -#define REACTOS_STR_ORIGINAL_FILENAME "downloader.exe\0" +#define REACTOS_STR_FILE_DESCRIPTION "Download !\0" +#define REACTOS_STR_INTERNAL_NAME "downloader\0" +#define REACTOS_STR_ORIGINAL_FILENAME "downloader.exe\0" #include diff --git a/rosapps/downloader/lang/de-DE.rc b/rosapps/downloader/lang/de-DE.rc index 0e0874b149d..28c8dbe734f 100644 --- a/rosapps/downloader/lang/de-DE.rc +++ b/rosapps/downloader/lang/de-DE.rc @@ -5,9 +5,9 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Download..." FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER - PUSHBUTTON "Abbrechen", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Abbrechen", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP END IDD_PROF DIALOGEX 6, 6, 267, 110 @@ -15,47 +15,47 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Einstellungen" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Download Ordner:", -1, 6, 10, 140, 8 - EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "W&дhle...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 - AUTOCHECKBOX "&Installationsdateien nach dem Setup lцschen", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP - LTEXT "Update Server:", -1, 6, 55, 140, 8 - EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP - DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 - PUSHBUTTON "&Abbrechen", IDCANCEL, 207, 90, 54, 15 + LTEXT "Download Ordner:", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "W&дhle...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "&Installationsdateien nach dem Setup lцschen", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Update Server:", -1, 6, 55, 140, 8 + EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 + PUSHBUTTON "&Abbrechen", IDCANCEL, 207, 90, 54, 15 END STRINGTABLE DISCARDABLE BEGIN - IDS_WINDOW_TITLE "Download ! - ReactOS Downloader" - IDS_WELCOME_TITLE "Willkommen im ReactOS Downloader" - IDS_WELCOME "Bitte wдhlen Sie links eine Kategorie. Dies ist Version 1.1." - IDS_NO_APP_TITLE "Keine Anwendung ausgewдhlt" - IDS_NO_APP "Bitte wдhlen Sie eine Anwendung, bevor Sie die Download-Schaltflдche betдtigen. Wenn Sie Hilfe benцtigen, drьcken Sie die Hilfe-Schaltflдche in der oberen rechten Ecke." - IDS_UPDATE_TITLE "Update" - IDS_UPDATE "Diese Funktion wurde noch nicht implementiert." - IDS_HELP_TITLE "Hilfe" - IDS_HELP "Wдhlen Sie links eine Kategorie, wдhlen Sie eine Anwendung und drьcken Sie die Download-Schaltflдche. Um die Anwendungsinformationen zu aktualisieren, drьcken Sie die Schaltflдche neben der Hilfe-Schaltflдche." - IDS_NO_APPS "In dieser Kategorie sind bisher noch keine Anwendungen. Sie kцnnen helfen, indem Sie Anwendungen hinzufьgen." - IDS_CHOOSE_APP "Bitte wдhlen Sie eine Anwendung." - IDS_CHOOSE_SUB "Bitte wдhlen Sie eine Unterkategorie." - IDS_CHOOSE_CATEGORY "Bitte wдhlen Sie eine Kategorie." - IDS_CHOOSE_BOTH "Bitte wдhlen Sie eine Unterkategorie oder eine Anwendung." - IDS_XMLERROR_1 "XML Datei nicht gefunden!" - IDS_XMLERROR_2 "XML Datei kann nicht verarbeitet werden!" - IDS_DOWNLOAD_ERROR "Die Datei konnte nicht heruntergeladen werden.\nBitte prьfen sie, ob eine Verbindung zum Internet besteht." - IDS_VERSION "Version: " - IDS_LICENCE "Lizenz: " - IDS_MAINTAINER "Maintainer: " - IDS_APPS_TITLE "Anwendungen" - IDS_CATS_TITLE "Kategorien" - IDS_CHOOSE_FOLDER "Bitte wдhlen Sie den Ordner..." - IDS_NOTCREATE_REGKEY "Registryschlьssel kцnnte nicht erstellt werden." - IDS_DOWNLOAD_FOLDER "Downloader" - IDS_UNABLECREATE_FOLDER "Es konnte kein Ordner mit diesem Namen erstellt werden!" - IDS_UPDATE_URL "http://svn.reactos.org" - IDS_INSTALL_DEP "%s wird benцtigt um %s ausfьhren zu kцnnen. Soll %s jetzt installiert werden?" - TTT_HELPBUTTON, "Hilfe ьber den Downloader" - TTT_UPDATEBUTTON, "Noch nicht vorhanden" - TTT_PROFBUTTON, "Konfiguriert den Downloader" + IDS_WINDOW_TITLE "Download ! - ReactOS Downloader" + IDS_WELCOME_TITLE "Willkommen im ReactOS Downloader" + IDS_WELCOME "Bitte wдhlen Sie links eine Kategorie. Dies ist Version 1.1." + IDS_NO_APP_TITLE "Keine Anwendung ausgewдhlt" + IDS_NO_APP "Bitte wдhlen Sie eine Anwendung, bevor Sie die Download-Schaltflдche betдtigen. Wenn Sie Hilfe benцtigen, drьcken Sie die Hilfe-Schaltflдche in der oberen rechten Ecke." + IDS_UPDATE_TITLE "Update" + IDS_UPDATE "Diese Funktion wurde noch nicht implementiert." + IDS_HELP_TITLE "Hilfe" + IDS_HELP "Wдhlen Sie links eine Kategorie, wдhlen Sie eine Anwendung und drьcken Sie die Download-Schaltflдche. Um die Anwendungsinformationen zu aktualisieren, drьcken Sie die Schaltflдche neben der Hilfe-Schaltflдche." + IDS_NO_APPS "In dieser Kategorie sind bisher noch keine Anwendungen. Sie kцnnen helfen, indem Sie Anwendungen hinzufьgen." + IDS_CHOOSE_APP "Bitte wдhlen Sie eine Anwendung." + IDS_CHOOSE_SUB "Bitte wдhlen Sie eine Unterkategorie." + IDS_CHOOSE_CATEGORY "Bitte wдhlen Sie eine Kategorie." + IDS_CHOOSE_BOTH "Bitte wдhlen Sie eine Unterkategorie oder eine Anwendung." + IDS_XMLERROR_1 "XML Datei nicht gefunden!" + IDS_XMLERROR_2 "XML Datei kann nicht verarbeitet werden!" + IDS_DOWNLOAD_ERROR "Die Datei konnte nicht heruntergeladen werden.\nBitte prьfen sie, ob eine Verbindung zum Internet besteht." + IDS_VERSION "Version: " + IDS_LICENCE "Lizenz: " + IDS_MAINTAINER "Maintainer: " + IDS_APPS_TITLE "Anwendungen" + IDS_CATS_TITLE "Kategorien" + IDS_CHOOSE_FOLDER "Bitte wдhlen Sie den Ordner..." + IDS_NOTCREATE_REGKEY "Registryschlьssel kцnnte nicht erstellt werden." + IDS_DOWNLOAD_FOLDER "Downloader" + IDS_UNABLECREATE_FOLDER "Es konnte kein Ordner mit diesem Namen erstellt werden!" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s wird benцtigt um %s ausfьhren zu kцnnen. Soll %s jetzt installiert werden?" + TTT_HELPBUTTON "Hilfe ьber den Downloader" + TTT_UPDATEBUTTON "Noch nicht vorhanden" + TTT_PROFBUTTON "Konfiguriert den Downloader" END diff --git a/rosapps/downloader/lang/en-US.rc b/rosapps/downloader/lang/en-US.rc index 30df0c882db..33eebfda2b1 100644 --- a/rosapps/downloader/lang/en-US.rc +++ b/rosapps/downloader/lang/en-US.rc @@ -5,9 +5,9 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Download..." FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER - PUSHBUTTON "Cancel", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Cancel", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP END IDD_PROF DIALOGEX 6, 6, 267, 110 @@ -15,47 +15,47 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Preferences" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Download folder:", -1, 6, 10, 140, 8 - EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "C&hoose...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 - AUTOCHECKBOX "&Delete installation files after setup", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP - LTEXT "Update server:", -1, 6, 55, 140, 8 - EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP - DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 - PUSHBUTTON "&Cancel", IDCANCEL, 207, 90, 54, 15 + LTEXT "Download folder:", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "C&hoose...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "&Delete installation files after setup", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Update server:", -1, 6, 55, 140, 8 + EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 + PUSHBUTTON "&Cancel", IDCANCEL, 207, 90, 54, 15 END STRINGTABLE DISCARDABLE BEGIN - IDS_WINDOW_TITLE "Download ! - ReactOS Downloader" - IDS_WELCOME_TITLE "Welcome to the ReactOS Downloader" - IDS_WELCOME "Please choose a category on the left. This is version 1.1." - IDS_NO_APP_TITLE "No application selected" - IDS_NO_APP "Please select a Application before you click the download button, if you need assistance please click on the question mark button on the top right corner." - IDS_UPDATE_TITLE "Update" - IDS_UPDATE "Sorry this feature is not implemented yet." - IDS_HELP_TITLE "Help" - IDS_HELP "Choose a category on the left, then choose a application and click the download button. To update the application information click the button next to the help button." - IDS_NO_APPS "Sorry, there no applications in this category yet. You can help and add more applications." - IDS_CHOOSE_APP "Please choose an application." - IDS_CHOOSE_SUB "Please choose a subcategory." - IDS_CHOOSE_CATEGORY "Please choose a category." - IDS_CHOOSE_BOTH "Please choose a subcategory or an application." - IDS_XMLERROR_1 "Could not find the xml file !" - IDS_XMLERROR_2 "Could not parse the xml file !" - IDS_DOWNLOAD_ERROR "Unable to download the file.\nPlease check your internet connection." - IDS_VERSION "Version: " - IDS_LICENCE "Licence: " - IDS_MAINTAINER "Maintainer: " - IDS_APPS_TITLE "Applications" - IDS_CATS_TITLE "Categories" - IDS_CHOOSE_FOLDER "Please, choose the folder..." - IDS_NOTCREATE_REGKEY "Could not create the registry key." - IDS_DOWNLOAD_FOLDER "Downloader" - IDS_UNABLECREATE_FOLDER "Unable to create a folder with this name!" - IDS_UPDATE_URL "http://svn.reactos.org" - IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?" - TTT_HELPBUTTON, "Get help about the downloader" - TTT_UPDATEBUTTON, "Not yet available" - TTT_PROFBUTTON, "Let you configure the downloader" + IDS_WINDOW_TITLE "Download ! - ReactOS Downloader" + IDS_WELCOME_TITLE "Welcome to the ReactOS Downloader" + IDS_WELCOME "Please choose a category on the left. This is version 1.1." + IDS_NO_APP_TITLE "No application selected" + IDS_NO_APP "Please select a Application before you click the download button, if you need assistance please click on the question mark button on the top right corner." + IDS_UPDATE_TITLE "Update" + IDS_UPDATE "Sorry this feature is not implemented yet." + IDS_HELP_TITLE "Help" + IDS_HELP "Choose a category on the left, then choose a application and click the download button. To update the application information click the button next to the help button." + IDS_NO_APPS "Sorry, there no applications in this category yet. You can help and add more applications." + IDS_CHOOSE_APP "Please choose an application." + IDS_CHOOSE_SUB "Please choose a subcategory." + IDS_CHOOSE_CATEGORY "Please choose a category." + IDS_CHOOSE_BOTH "Please choose a subcategory or an application." + IDS_XMLERROR_1 "Could not find the xml file !" + IDS_XMLERROR_2 "Could not parse the xml file !" + IDS_DOWNLOAD_ERROR "Unable to download the file.\nPlease check your internet connection." + IDS_VERSION "Version: " + IDS_LICENCE "Licence: " + IDS_MAINTAINER "Maintainer: " + IDS_APPS_TITLE "Applications" + IDS_CATS_TITLE "Categories" + IDS_CHOOSE_FOLDER "Please, choose the folder..." + IDS_NOTCREATE_REGKEY "Could not create the registry key." + IDS_DOWNLOAD_FOLDER "Downloader" + IDS_UNABLECREATE_FOLDER "Unable to create a folder with this name!" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?" + TTT_HELPBUTTON "Get help about the downloader" + TTT_UPDATEBUTTON "Not yet available" + TTT_PROFBUTTON "Let you configure the downloader" END diff --git a/rosapps/downloader/lang/es-ES.rc b/rosapps/downloader/lang/es-ES.rc index e813c543382..9f9d65724c4 100644 --- a/rosapps/downloader/lang/es-ES.rc +++ b/rosapps/downloader/lang/es-ES.rc @@ -10,9 +10,9 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Descargar..." FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER - PUSHBUTTON "Cancelar", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Cancelar", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP END IDD_PROF DIALOGEX 6, 6, 267, 110 @@ -20,47 +20,47 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Preferencias" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Carpeta de descarga:", -1, 6, 10, 140, 8 - EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Seleccionar...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 - AUTOCHECKBOX "&Borrar archivos de instalaciуn tras la instalaciуn", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP - LTEXT "Actualizar servidor:", -1, 6, 55, 140, 8 - EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP - DEFPUSHBUTTON "&Aceptar", IDOK, 147, 90, 54, 15 - PUSHBUTTON "&Cancelar", IDCANCEL, 207, 90, 54, 15 + LTEXT "Carpeta de descarga:", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Seleccionar...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "&Borrar archivos de instalaciуn tras la instalaciуn", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Actualizar servidor:", -1, 6, 55, 140, 8 + EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "&Aceptar", IDOK, 147, 90, 54, 15 + PUSHBUTTON "&Cancelar", IDCANCEL, 207, 90, 54, 15 END STRINGTABLE DISCARDABLE BEGIN - IDS_WINDOW_TITLE "ЎDescargar! - Descargador de ReactOS" - IDS_WELCOME_TITLE "Bienvenido al descargador de ReactOS" - IDS_WELCOME "Por favor selecciona una categorнa de la izquierda. Esta es la versiуn 1.1." - IDS_NO_APP_TITLE "Ninguna aplicaciуn seleccionada" - IDS_NO_APP "Por favor seleccione una Aplicaciуn antes de pulsar el botуn de Descarga, si necesita asistencia por favor pulsa el botуn con la interrogaciуn en la esquina superior derecha." - IDS_UPDATE_TITLE "Actualizar" - IDS_UPDATE "Perdуn esta caracterнstica no a sido implementada todavнa." - IDS_HELP_TITLE "Ayuda" - IDS_HELP "Selecciona una categorнa de la izquierda, entonces selecciona una aplicaciуn y pulsa el botуn de descargar. Para actualizar la informaciуn de la aplicaciуn pulsa el botуn junto al botуn de ayuda." - IDS_NO_APPS "Perdуn, aun no hay ninguna aplicaciуn en esta categorнa. Puedes ayudar y aсadir mбs aplicaciones." - IDS_CHOOSE_APP "Por favor selecciona una aplicaciуn." - IDS_CHOOSE_SUB "Por favor selecciona una subcategorнa." - IDS_CHOOSE_CATEGORY "Por favor selecciona una categorнa." - IDS_CHOOSE_BOTH "Por favor selecciona una subcategoria o una aplicaciуn." - IDS_XMLERROR_1 "ЎNo se a encontrado el archivo xml!" - IDS_XMLERROR_2 "ЎNo se ha podido analizar el archivo xml!" - IDS_DOWNLOAD_ERROR "Imposible descargar el archivo.\nPor favor verifica tu conexiуn a internet." - IDS_VERSION "Versiуn: " - IDS_LICENCE "Licencia: " - IDS_MAINTAINER "Mantenido por: " - IDS_APPS_TITLE "Aplicaciones" - IDS_CATS_TITLE "Categorias" - IDS_CHOOSE_FOLDER "Por favor, seleccione la carpeta..." - IDS_NOTCREATE_REGKEY "No se puede crear la llave del registro." - IDS_DOWNLOAD_FOLDER "Downloader" - IDS_UNABLECREATE_FOLDER "ЎImposible crear una carpeta con este nombre!" - IDS_UPDATE_URL "http://svn.reactos.org" - IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?" - TTT_HELPBUTTON, "Obtenga ayuda acerca de Downloader" - TTT_UPDATEBUTTON, "No disponible todavнa" - TTT_PROFBUTTON, "Le permite configurar Downloader" + IDS_WINDOW_TITLE "ЎDescargar! - Descargador de ReactOS" + IDS_WELCOME_TITLE "Bienvenido al descargador de ReactOS" + IDS_WELCOME "Por favor selecciona una categorнa de la izquierda. Esta es la versiуn 1.1." + IDS_NO_APP_TITLE "Ninguna aplicaciуn seleccionada" + IDS_NO_APP "Por favor seleccione una Aplicaciуn antes de pulsar el botуn de Descarga, si necesita asistencia por favor pulsa el botуn con la interrogaciуn en la esquina superior derecha." + IDS_UPDATE_TITLE "Actualizar" + IDS_UPDATE "Perdуn esta caracterнstica no a sido implementada todavнa." + IDS_HELP_TITLE "Ayuda" + IDS_HELP "Selecciona una categorнa de la izquierda, entonces selecciona una aplicaciуn y pulsa el botуn de descargar. Para actualizar la informaciуn de la aplicaciуn pulsa el botуn junto al botуn de ayuda." + IDS_NO_APPS "Perdуn, aun no hay ninguna aplicaciуn en esta categorнa. Puedes ayudar y aсadir mбs aplicaciones." + IDS_CHOOSE_APP "Por favor selecciona una aplicaciуn." + IDS_CHOOSE_SUB "Por favor selecciona una subcategorнa." + IDS_CHOOSE_CATEGORY "Por favor selecciona una categorнa." + IDS_CHOOSE_BOTH "Por favor selecciona una subcategoria o una aplicaciуn." + IDS_XMLERROR_1 "ЎNo se a encontrado el archivo xml!" + IDS_XMLERROR_2 "ЎNo se ha podido analizar el archivo xml!" + IDS_DOWNLOAD_ERROR "Imposible descargar el archivo.\nPor favor verifica tu conexiуn a internet." + IDS_VERSION "Versiуn: " + IDS_LICENCE "Licencia: " + IDS_MAINTAINER "Mantenido por: " + IDS_APPS_TITLE "Aplicaciones" + IDS_CATS_TITLE "Categorias" + IDS_CHOOSE_FOLDER "Por favor, seleccione la carpeta..." + IDS_NOTCREATE_REGKEY "No se puede crear la llave del registro." + IDS_DOWNLOAD_FOLDER "Downloader" + IDS_UNABLECREATE_FOLDER "ЎImposible crear una carpeta con este nombre!" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?" + TTT_HELPBUTTON "Obtenga ayuda acerca de Downloader" + TTT_UPDATEBUTTON "No disponible todavнa" + TTT_PROFBUTTON "Le permite configurar Downloader" END diff --git a/rosapps/downloader/lang/fr-FR.rc b/rosapps/downloader/lang/fr-FR.rc index 304b5c9b2e4..320cb21d824 100644 --- a/rosapps/downloader/lang/fr-FR.rc +++ b/rosapps/downloader/lang/fr-FR.rc @@ -5,9 +5,9 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Tйlйchargement..." FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER - PUSHBUTTON "Annuler", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Annuler", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP END IDD_PROF DIALOGEX 6, 6, 267, 110 @@ -15,47 +15,47 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Prйfйrences" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Rйpertoire de tйlйchargement :", -1, 6, 10, 140, 8 - EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "C&hoisir...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 - AUTOCHECKBOX "Supprimer les fichiers aprиs l'installation", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP - LTEXT "Serveur de mise-а-jour :", -1, 6, 55, 140, 8 - EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP - DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 - PUSHBUTTON "Annuler", IDCANCEL, 207, 90, 54, 15 + LTEXT "Rйpertoire de tйlйchargement :", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "C&hoisir...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "Supprimer les fichiers aprиs l'installation", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Serveur de mise-а-jour :", -1, 6, 55, 140, 8 + EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 + PUSHBUTTON "Annuler", IDCANCEL, 207, 90, 54, 15 END STRINGTABLE DISCARDABLE BEGIN - IDS_WINDOW_TITLE "Tйlйcharger ! - Tйlйchargeur de ReactOS" - IDS_WELCOME_TITLE "Bienvenue dans le Tйlйchargeur de ReactOS" - IDS_WELCOME "Veuillez choisir une catйgorie sur la gauche. C'est la version 1.1." - IDS_NO_APP_TITLE "Aucune application selectionnйe" - IDS_NO_APP "Veuillez sйlectionner une application avant de cliquer sur le bouton Tйlйcharger, si vous avez besoin d'aide, veuillez cliquer sur le point d'interrogation dans le coin supйrieur droit." - IDS_UPDATE_TITLE "Mise а jour" - IDS_UPDATE "Dйsolй, cette fonctionnalitй n'est pas encore implйmentйe." - IDS_HELP_TITLE "Aide" - IDS_HELP "Choisissez une catйgorie sur la gauche, puis choisissez une application et cliquez sur le bouton Tйlйcharger. Pour mettre а jour les informations sur l'application, cliquez sur le bouton а cфtй du bouton d'aide." - IDS_NO_APPS "Dйsolй, il n'y a pas encore d'application dans cette catйgorie. Vous pouvez contribuer et ajouter plus d'applications." - IDS_CHOOSE_APP "Veuillez choisir une application." - IDS_CHOOSE_SUB "Veuillez choisir une sous-catйgorie." - IDS_CHOOSE_CATEGORY "Veuillez choisir une catйgorie." - IDS_CHOOSE_BOTH "Veuillez choisir une sous-catйgorie ou une application." - IDS_XMLERROR_1 "Impossible de trouver le fichier xml !" - IDS_XMLERROR_2 "Impossible d'analyser le fichier xml !" - IDS_DOWNLOAD_ERROR "Impossible de tйlйcharger le fichier.\nVeuillez vйrifier votre connexion Internet." - IDS_VERSION "Version: " - IDS_LICENCE "Licence: " - IDS_MAINTAINER "Maintainer: " - IDS_APPS_TITLE "Applications" - IDS_CATS_TITLE "Catйgories" - IDS_CHOOSE_FOLDER "Veuillez choisir le rйpertoire..." - IDS_NOTCREATE_REGKEY "Йchec lors de la crйation de la clй registre." - IDS_DOWNLOAD_FOLDER "Downloader" - IDS_UNABLECREATE_FOLDER "Йchec lors du rйpertoire avec ce nom !" - IDS_UPDATE_URL "http://svn.reactos.org" - IDS_INSTALL_DEP "%s est nйcessaire pour lancer %s. Voulez-vous installer %s maintenant ?" - TTT_HELPBUTTON, "Obtenez de l'aide а propros du tйlйchargeur" - TTT_UPDATEBUTTON, "Pas encore disponible" - TTT_PROFBUTTON, "Vous permet de configurer le tйlйchargeur" + IDS_WINDOW_TITLE "Tйlйcharger ! - Tйlйchargeur de ReactOS" + IDS_WELCOME_TITLE "Bienvenue dans le Tйlйchargeur de ReactOS" + IDS_WELCOME "Veuillez choisir une catйgorie sur la gauche. C'est la version 1.1." + IDS_NO_APP_TITLE "Aucune application selectionnйe" + IDS_NO_APP "Veuillez sйlectionner une application avant de cliquer sur le bouton Tйlйcharger, si vous avez besoin d'aide, veuillez cliquer sur le point d'interrogation dans le coin supйrieur droit." + IDS_UPDATE_TITLE "Mise а jour" + IDS_UPDATE "Dйsolй, cette fonctionnalitй n'est pas encore implйmentйe." + IDS_HELP_TITLE "Aide" + IDS_HELP "Choisissez une catйgorie sur la gauche, puis choisissez une application et cliquez sur le bouton Tйlйcharger. Pour mettre а jour les informations sur l'application, cliquez sur le bouton а cфtй du bouton d'aide." + IDS_NO_APPS "Dйsolй, il n'y a pas encore d'application dans cette catйgorie. Vous pouvez contribuer et ajouter plus d'applications." + IDS_CHOOSE_APP "Veuillez choisir une application." + IDS_CHOOSE_SUB "Veuillez choisir une sous-catйgorie." + IDS_CHOOSE_CATEGORY "Veuillez choisir une catйgorie." + IDS_CHOOSE_BOTH "Veuillez choisir une sous-catйgorie ou une application." + IDS_XMLERROR_1 "Impossible de trouver le fichier xml !" + IDS_XMLERROR_2 "Impossible d'analyser le fichier xml !" + IDS_DOWNLOAD_ERROR "Impossible de tйlйcharger le fichier.\nVeuillez vйrifier votre connexion Internet." + IDS_VERSION "Version: " + IDS_LICENCE "Licence: " + IDS_MAINTAINER "Maintainer: " + IDS_APPS_TITLE "Applications" + IDS_CATS_TITLE "Catйgories" + IDS_CHOOSE_FOLDER "Veuillez choisir le rйpertoire..." + IDS_NOTCREATE_REGKEY "Йchec lors de la crйation de la clй registre." + IDS_DOWNLOAD_FOLDER "Downloader" + IDS_UNABLECREATE_FOLDER "Йchec lors du rйpertoire avec ce nom !" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s est nйcessaire pour lancer %s. Voulez-vous installer %s maintenant ?" + TTT_HELPBUTTON "Obtenez de l'aide а propros du tйlйchargeur" + TTT_UPDATEBUTTON "Pas encore disponible" + TTT_PROFBUTTON "Vous permet de configurer le tйlйchargeur" END diff --git a/rosapps/downloader/lang/id-ID.rc b/rosapps/downloader/lang/id-ID.rc index 68f7cf4bd18..20b0eceaedf 100644 --- a/rosapps/downloader/lang/id-ID.rc +++ b/rosapps/downloader/lang/id-ID.rc @@ -5,9 +5,9 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Download..." FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER - PUSHBUTTON "Batal", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Batal", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP END IDD_PROF DIALOGEX 6, 6, 267, 110 @@ -15,47 +15,47 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Proferences" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Download folder:", -1, 6, 10, 140, 8 - EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "C&hoose...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 - AUTOCHECKBOX "&Delete installation files after setup", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP - LTEXT "Update server:", -1, 6, 55, 140, 8 - EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP - DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 - PUSHBUTTON "&Cancel", IDCANCEL, 207, 90, 54, 15 + LTEXT "Download folder:", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "C&hoose...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "&Delete installation files after setup", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Update server:", -1, 6, 55, 140, 8 + EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 + PUSHBUTTON "&Cancel", IDCANCEL, 207, 90, 54, 15 END STRINGTABLE DISCARDABLE BEGIN - IDS_WINDOW_TITLE "Download ! - ReactOS Downloader" - IDS_WELCOME_TITLE "Selamat datang di ReactOS Downloader" - IDS_WELCOME "Silahkan pilih kategori di sebelah kiri. Ini versi 1.1." - IDS_NO_APP_TITLE "Tidak ada aplikasi yang dipilih" - IDS_NO_APP "Silahkan pilih Aplikasi sebelum anda mengklik tombol download, jika anda membutuhkan asistensi silahkan klik pada tombol di sudut kanan atas." - IDS_UPDATE_TITLE "Mutakhirkan" - IDS_UPDATE "Maaf fitur ini belum diimplementasikan." - IDS_HELP_TITLE "Bantuan" - IDS_HELP "Pilih kategori di sisi kiri, lalu pilih aplikasi dan klik tombol download. Untuk memutakhirkan informasi aplikasi klik tombol disebelah tombol bantuan." - IDS_NO_APPS "Maaf, belum ada aplikasi dalam kategori ini. Anda dapat membantu dan menambahkan aplikasi lebih banyak." - IDS_CHOOSE_APP "Silahkan pilih aplikasi." - IDS_CHOOSE_SUB "Silahkan pilih subkategori." - IDS_CHOOSE_CATEGORY "Silahkan pilih kategori." - IDS_CHOOSE_BOTH "Silahkan pilih subkategori atau aplikasi." - IDS_XMLERROR_1 "Tidak dapat menemukan file xml !" - IDS_XMLERROR_2 "Tidak dapat mengurai file xml !" - IDS_DOWNLOAD_ERROR "Tidak bisa mendownload file.\nSilahkan periksa koneksi internet anda." - IDS_VERSION "Versi: " - IDS_LICENCE "Lisensi: " - IDS_MAINTAINER "Pemelihara: " - IDS_APPS_TITLE "Applications" - IDS_CATS_TITLE "Categories" - IDS_CHOOSE_FOLDER "Please, choose the folder..." - IDS_NOTCREATE_REGKEY "Could not create the registry key." - IDS_DOWNLOAD_FOLDER "Downloader" - IDS_UNABLECREATE_FOLDER "Unable to create a folder with this name!" - IDS_UPDATE_URL "http://svn.reactos.org" - IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?" - TTT_HELPBUTTON, "Get help about the downloader" - TTT_UPDATEBUTTON, "Not yet available" - TTT_PROFBUTTON, "Let you configure the downloader" + IDS_WINDOW_TITLE "Download ! - ReactOS Downloader" + IDS_WELCOME_TITLE "Selamat datang di ReactOS Downloader" + IDS_WELCOME "Silahkan pilih kategori di sebelah kiri. Ini versi 1.1." + IDS_NO_APP_TITLE "Tidak ada aplikasi yang dipilih" + IDS_NO_APP "Silahkan pilih Aplikasi sebelum anda mengklik tombol download, jika anda membutuhkan asistensi silahkan klik pada tombol di sudut kanan atas." + IDS_UPDATE_TITLE "Mutakhirkan" + IDS_UPDATE "Maaf fitur ini belum diimplementasikan." + IDS_HELP_TITLE "Bantuan" + IDS_HELP "Pilih kategori di sisi kiri, lalu pilih aplikasi dan klik tombol download. Untuk memutakhirkan informasi aplikasi klik tombol disebelah tombol bantuan." + IDS_NO_APPS "Maaf, belum ada aplikasi dalam kategori ini. Anda dapat membantu dan menambahkan aplikasi lebih banyak." + IDS_CHOOSE_APP "Silahkan pilih aplikasi." + IDS_CHOOSE_SUB "Silahkan pilih subkategori." + IDS_CHOOSE_CATEGORY "Silahkan pilih kategori." + IDS_CHOOSE_BOTH "Silahkan pilih subkategori atau aplikasi." + IDS_XMLERROR_1 "Tidak dapat menemukan file xml !" + IDS_XMLERROR_2 "Tidak dapat mengurai file xml !" + IDS_DOWNLOAD_ERROR "Tidak bisa mendownload file.\nSilahkan periksa koneksi internet anda." + IDS_VERSION "Versi: " + IDS_LICENCE "Lisensi: " + IDS_MAINTAINER "Pemelihara: " + IDS_APPS_TITLE "Applications" + IDS_CATS_TITLE "Categories" + IDS_CHOOSE_FOLDER "Please, choose the folder..." + IDS_NOTCREATE_REGKEY "Could not create the registry key." + IDS_DOWNLOAD_FOLDER "Downloader" + IDS_UNABLECREATE_FOLDER "Unable to create a folder with this name!" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?" + TTT_HELPBUTTON "Get help about the downloader" + TTT_UPDATEBUTTON "Not yet available" + TTT_PROFBUTTON "Let you configure the downloader" END diff --git a/rosapps/downloader/lang/it-IT.rc b/rosapps/downloader/lang/it-IT.rc index 7db4792644f..9fe34a0c177 100644 --- a/rosapps/downloader/lang/it-IT.rc +++ b/rosapps/downloader/lang/it-IT.rc @@ -5,9 +5,9 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Download..." FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER - PUSHBUTTON "Cancel", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Cancel", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP END IDD_PROF DIALOGEX 6, 6, 267, 110 @@ -15,47 +15,47 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Proferences" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Download folder:", -1, 6, 10, 140, 8 - EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "C&hoose...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 - AUTOCHECKBOX "&Delete installation files after setup", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP - LTEXT "Update server:", -1, 6, 55, 140, 8 - EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP - DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 - PUSHBUTTON "&Cancel", IDCANCEL, 207, 90, 54, 15 + LTEXT "Download folder:", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "C&hoose...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "&Delete installation files after setup", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Update server:", -1, 6, 55, 140, 8 + EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 + PUSHBUTTON "&Cancel", IDCANCEL, 207, 90, 54, 15 END STRINGTABLE DISCARDABLE BEGIN - IDS_WINDOW_TITLE "Download ! - ReactOS Downloader" - IDS_WELCOME_TITLE "Benvenuto al ReactOS Downloader" - IDS_WELCOME "Scegli una categoria a sinistra. Questa и la versione 1.1." - IDS_NO_APP_TITLE "Nessuna applicazione selezionata" - IDS_NO_APP "Scegli una Applicazione prima di premere il bottone di download, se serve assistenza clicca sul punto di domanda nell'angolo in alto a destra." - IDS_UPDATE_TITLE "Aggiorna" - IDS_UPDATE "Funzione non ancora implementata." - IDS_HELP_TITLE "Aiuto" - IDS_HELP "Scegli una categoria a sinistra, poi scegli una applicazione e clicca il bottone download. Per aggiornare le informazioni sulla applicazione clicca il bottone accanto a quello di aiuto." - IDS_NO_APPS "Non ci sono ancora applicazioni in questa categoria. Puoi aiutare aggiungendone altre." - IDS_CHOOSE_APP "Scegli una applicazione." - IDS_CHOOSE_SUB "Scegli una sottocategoria." - IDS_CHOOSE_CATEGORY "Scegli una categoria." - IDS_CHOOSE_BOTH "Scegli una sottocategoria o una applicazione." - IDS_XMLERROR_1 "File xml non trovato !" - IDS_XMLERROR_2 "Impossibile trattare il contenuto del file xml !" - IDS_DOWNLOAD_ERROR "Download del file impossibile.\nVerifica la connessione a Internet." - IDS_VERSION "Versione: " - IDS_LICENCE "Licenza: " - IDS_MAINTAINER "Manutentore: " - IDS_APPS_TITLE "Applications" - IDS_CATS_TITLE "Categories" - IDS_CHOOSE_FOLDER "Please, choose the folder..." - IDS_NOTCREATE_REGKEY "Could not create the registry key." - IDS_DOWNLOAD_FOLDER "Downloader" - IDS_UNABLECREATE_FOLDER "Unable to create a folder with this name!" - IDS_UPDATE_URL "http://svn.reactos.org" - IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?" - TTT_HELPBUTTON, "Get help about the downloader" - TTT_UPDATEBUTTON, "Not yet available" - TTT_PROFBUTTON, "Let you configure the downloader" + IDS_WINDOW_TITLE "Download ! - ReactOS Downloader" + IDS_WELCOME_TITLE "Benvenuto al ReactOS Downloader" + IDS_WELCOME "Scegli una categoria a sinistra. Questa и la versione 1.1." + IDS_NO_APP_TITLE "Nessuna applicazione selezionata" + IDS_NO_APP "Scegli una Applicazione prima di premere il bottone di download, se serve assistenza clicca sul punto di domanda nell'angolo in alto a destra." + IDS_UPDATE_TITLE "Aggiorna" + IDS_UPDATE "Funzione non ancora implementata." + IDS_HELP_TITLE "Aiuto" + IDS_HELP "Scegli una categoria a sinistra, poi scegli una applicazione e clicca il bottone download. Per aggiornare le informazioni sulla applicazione clicca il bottone accanto a quello di aiuto." + IDS_NO_APPS "Non ci sono ancora applicazioni in questa categoria. Puoi aiutare aggiungendone altre." + IDS_CHOOSE_APP "Scegli una applicazione." + IDS_CHOOSE_SUB "Scegli una sottocategoria." + IDS_CHOOSE_CATEGORY "Scegli una categoria." + IDS_CHOOSE_BOTH "Scegli una sottocategoria o una applicazione." + IDS_XMLERROR_1 "File xml non trovato !" + IDS_XMLERROR_2 "Impossibile trattare il contenuto del file xml !" + IDS_DOWNLOAD_ERROR "Download del file impossibile.\nVerifica la connessione a Internet." + IDS_VERSION "Versione: " + IDS_LICENCE "Licenza: " + IDS_MAINTAINER "Manutentore: " + IDS_APPS_TITLE "Applications" + IDS_CATS_TITLE "Categories" + IDS_CHOOSE_FOLDER "Please, choose the folder..." + IDS_NOTCREATE_REGKEY "Could not create the registry key." + IDS_DOWNLOAD_FOLDER "Downloader" + IDS_UNABLECREATE_FOLDER "Unable to create a folder with this name!" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?" + TTT_HELPBUTTON "Get help about the downloader" + TTT_UPDATEBUTTON "Not yet available" + TTT_PROFBUTTON "Let you configure the downloader" END diff --git a/rosapps/downloader/lang/ru-RU.rc b/rosapps/downloader/lang/ru-RU.rc index 7817ea800ce..614c3c5b5f7 100644 --- a/rosapps/downloader/lang/ru-RU.rc +++ b/rosapps/downloader/lang/ru-RU.rc @@ -7,9 +7,9 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Загрузка..." FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", IDC_STATUS, 10, 30, 200, 17, SS_CENTER - PUSHBUTTON "Отмена", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 17, SS_CENTER + PUSHBUTTON "Отмена", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP END IDD_PROF DIALOGEX 6, 6, 267, 110 @@ -17,47 +17,47 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Настройки" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Папка для закачки:", -1, 6, 10, 140, 8 - EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Выбрать...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 - AUTOCHECKBOX "&Удалять установочные файлы после установки", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP - LTEXT "Сервер обновлений:", -1, 6, 55, 140, 8 - EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP - DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 - PUSHBUTTON "О&тмена", IDCANCEL, 207, 90, 54, 15 + LTEXT "Папка для закачки:", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Выбрать...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "&Удалять установочные файлы после установки", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Сервер обновлений:", -1, 6, 55, 140, 8 + EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 + PUSHBUTTON "О&тмена", IDCANCEL, 207, 90, 54, 15 END STRINGTABLE DISCARDABLE BEGIN - IDS_WINDOW_TITLE "Скачать! - Менеджер закачек ReactOS" - IDS_WELCOME_TITLE "Добро пожаловать в Менеджер закачек ReactOS" - IDS_WELCOME "Пожалуйста выберите категорию справа. Версия 1.1" - IDS_NO_APP_TITLE "Приложение не выбрано" - IDS_NO_APP "Пожалуйста, выберите приложение прежде, чем нажать кнопку загрузки. Если вам нужна справка, то нажмите кнопку со знаком вопроса в верхнем правом углу." - IDS_UPDATE_TITLE "Обновить" - IDS_UPDATE "Извените, данная возможность на данным момент недоступна." - IDS_HELP_TITLE "Справка" - IDS_HELP "Выберите категорию слева, затем выберите приложение и нажмите кнопку загрузки. Для получения информации об обновлениях нажмите кнопку рядом с кнопкой справки." - IDS_NO_APPS "Извените, на данный момент в этой категории приложений нет, но вы можете помочь добавить их." - IDS_CHOOSE_APP "Пожалуйста выберите приложение." - IDS_CHOOSE_SUB "Пожалуйста выберите подкатегорию." - IDS_CHOOSE_CATEGORY "Пожалуйста выберите категорию." - IDS_CHOOSE_BOTH "Пожалуйста выберите подкатегорию или приложение." - IDS_XMLERROR_1 "Не удалось найти xml-файл!" - IDS_XMLERROR_2 "Не удалось обработать xml-файл!" - IDS_DOWNLOAD_ERROR "Не удается загрузить файл.\nПожалуйста проверьте ваше подключение к интернет." - IDS_VERSION "Версия: " - IDS_LICENCE "Лицензия: " - IDS_MAINTAINER "Производитель: " - IDS_APPS_TITLE "Приложения" - IDS_CATS_TITLE "Категории" - IDS_CHOOSE_FOLDER "Пожалуйства выберите папку..." - IDS_NOTCREATE_REGKEY "Не удалось создать ключ в реестре." - IDS_DOWNLOAD_FOLDER "Скачать!" - IDS_UNABLECREATE_FOLDER "Не удалось создать папку с таким именем!" - IDS_UPDATE_URL "http://svn.reactos.org" - IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?" - TTT_HELPBUTTON, "Get help about the downloader" - TTT_UPDATEBUTTON, "Not yet available" - TTT_PROFBUTTON, "Let you configure the downloader" + IDS_WINDOW_TITLE "Скачать! - Менеджер закачек ReactOS" + IDS_WELCOME_TITLE "Добро пожаловать в Менеджер закачек ReactOS" + IDS_WELCOME "Пожалуйста выберите категорию справа. Версия 1.1" + IDS_NO_APP_TITLE "Приложение не выбрано" + IDS_NO_APP "Пожалуйста, выберите приложение прежде, чем нажать кнопку загрузки. Если вам нужна справка, то нажмите кнопку со знаком вопроса в верхнем правом углу." + IDS_UPDATE_TITLE "Обновить" + IDS_UPDATE "Извените, данная возможность на данным момент недоступна." + IDS_HELP_TITLE "Справка" + IDS_HELP "Выберите категорию слева, затем выберите приложение и нажмите кнопку загрузки. Для получения информации об обновлениях нажмите кнопку рядом с кнопкой справки." + IDS_NO_APPS "Извените, на данный момент в этой категории приложений нет, но вы можете помочь добавить их." + IDS_CHOOSE_APP "Пожалуйста выберите приложение." + IDS_CHOOSE_SUB "Пожалуйста выберите подкатегорию." + IDS_CHOOSE_CATEGORY "Пожалуйста выберите категорию." + IDS_CHOOSE_BOTH "Пожалуйста выберите подкатегорию или приложение." + IDS_XMLERROR_1 "Не удалось найти xml-файл!" + IDS_XMLERROR_2 "Не удалось обработать xml-файл!" + IDS_DOWNLOAD_ERROR "Не удается загрузить файл.\nПожалуйста проверьте ваше подключение к интернет." + IDS_VERSION "Версия: " + IDS_LICENCE "Лицензия: " + IDS_MAINTAINER "Производитель: " + IDS_APPS_TITLE "Приложения" + IDS_CATS_TITLE "Категории" + IDS_CHOOSE_FOLDER "Пожалуйства выберите папку..." + IDS_NOTCREATE_REGKEY "Не удалось создать ключ в реестре." + IDS_DOWNLOAD_FOLDER "Downloader" + IDS_UNABLECREATE_FOLDER "Не удалось создать папку с таким именем!" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?" + TTT_HELPBUTTON "Показать справку программы" + TTT_UPDATEBUTTON "Сейчас недоступно" + TTT_PROFBUTTON "Выполнить настройку программы" END diff --git a/rosapps/downloader/lang/uk-UA.rc b/rosapps/downloader/lang/uk-UA.rc index 612344aa21c..04333fac3e6 100644 --- a/rosapps/downloader/lang/uk-UA.rc +++ b/rosapps/downloader/lang/uk-UA.rc @@ -13,9 +13,9 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Завантаження..." FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER - PUSHBUTTON "Скасувати", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Скасувати", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP END IDD_PROF DIALOGEX 6, 6, 267, 110 @@ -23,47 +23,47 @@ STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE CAPTION "Настройки" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Папка для завантаження:", -1, 6, 10, 140, 8 - EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Вибрати...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 - AUTOCHECKBOX "&Видаляти настановні файли після установки", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP - LTEXT "Сервер оновлень:", -1, 6, 55, 140, 8 - EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP - DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 - PUSHBUTTON "&Скасувати", IDCANCEL, 207, 90, 54, 15 + LTEXT "Папка для завантаження:", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Вибрати...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "&Видаляти настановні файли після установки", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Сервер оновлень:", -1, 6, 55, 140, 8 + EDITTEXT IDC_UPDATE_SERVER_EDIT, 6, 65, 255, 14, WS_VISIBLE | WS_TABSTOP + DEFPUSHBUTTON "&OK", IDOK, 147, 90, 54, 15 + PUSHBUTTON "&Скасувати", IDCANCEL, 207, 90, 54, 15 END STRINGTABLE DISCARDABLE BEGIN - IDS_WINDOW_TITLE "Завантажити ! - Завантажувач ReactOS" - IDS_WELCOME_TITLE "Ласкаво просимо у Завантажувач ReactOS" - IDS_WELCOME "Будь ласка виберіть категорію зліва. Це версія 1.1." - IDS_NO_APP_TITLE "Додаток не вибраний" - IDS_NO_APP "Будь ласка, виберіть додаток перш ніж натиснути кнопку завантаження. Якщо Вам потрібна допомога, натисніть кнопку зі знаком питання у верхньому правому кутку." - IDS_UPDATE_TITLE "Оновити" - IDS_UPDATE "Вибачте, дана можливість ще недоступна." - IDS_HELP_TITLE "Довідка" - IDS_HELP "Виберіть категорію зліва, потім виберіть додаток і натисніть кнопку завантаження. Для отримання інформації про оновлення натисніть кнопку поряд з кнопкою довідки." - IDS_NO_APPS "Вибачте, в цій категорії ще немає додатків. Ви можете допомогти і додати більше додатків." - IDS_CHOOSE_APP "Будь ласка виберіть додаток." - IDS_CHOOSE_SUB "Будь ласка виберіть підкатегорію." - IDS_CHOOSE_CATEGORY "Будь ласка виберіть категорію." - IDS_CHOOSE_BOTH "Будь ласка виберіть підкатегорію або додаток." - IDS_XMLERROR_1 "Не вдалося знайти файл XML !" - IDS_XMLERROR_2 "Не вдалося обробити файл XML !" - IDS_DOWNLOAD_ERROR "Неможливо завантажити файл.\nБудь ласка перевірте ваше інтернет-з'єднання." - IDS_VERSION "Версія: " - IDS_LICENCE "Ліцензія: " - IDS_MAINTAINER "Виробник: " - IDS_APPS_TITLE "Додатки" - IDS_CATS_TITLE "Категорії" - IDS_CHOOSE_FOLDER "Будь ласка виберіть папку..." - IDS_NOTCREATE_REGKEY "Не вдалося створити ключ у реєстрі." - IDS_DOWNLOAD_FOLDER "Downloader" - IDS_UNABLECREATE_FOLDER "Не вдалося створити папку з таким ім'ям!" - IDS_UPDATE_URL "http://svn.reactos.org" - IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?" - TTT_HELPBUTTON, "Отримайти допомогу про downloader" - TTT_UPDATEBUTTON, "Поки що не доступно" - TTT_PROFBUTTON, "Налаштувати downloader" + IDS_WINDOW_TITLE "Завантажити ! - Завантажувач ReactOS" + IDS_WELCOME_TITLE "Ласкаво просимо у Завантажувач ReactOS" + IDS_WELCOME "Будь ласка виберіть категорію зліва. Це версія 1.1." + IDS_NO_APP_TITLE "Додаток не вибраний" + IDS_NO_APP "Будь ласка, виберіть додаток перш ніж натиснути кнопку завантаження. Якщо Вам потрібна допомога, натисніть кнопку зі знаком питання у верхньому правому кутку." + IDS_UPDATE_TITLE "Оновити" + IDS_UPDATE "Вибачте, дана можливість ще недоступна." + IDS_HELP_TITLE "Довідка" + IDS_HELP "Виберіть категорію зліва, потім виберіть додаток і натисніть кнопку завантаження. Для отримання інформації про оновлення натисніть кнопку поряд з кнопкою довідки." + IDS_NO_APPS "Вибачте, в цій категорії ще немає додатків. Ви можете допомогти і додати більше додатків." + IDS_CHOOSE_APP "Будь ласка виберіть додаток." + IDS_CHOOSE_SUB "Будь ласка виберіть підкатегорію." + IDS_CHOOSE_CATEGORY "Будь ласка виберіть категорію." + IDS_CHOOSE_BOTH "Будь ласка виберіть підкатегорію або додаток." + IDS_XMLERROR_1 "Не вдалося знайти файл XML !" + IDS_XMLERROR_2 "Не вдалося обробити файл XML !" + IDS_DOWNLOAD_ERROR "Неможливо завантажити файл.\nБудь ласка перевірте ваше інтернет-з'єднання." + IDS_VERSION "Версія: " + IDS_LICENCE "Ліцензія: " + IDS_MAINTAINER "Виробник: " + IDS_APPS_TITLE "Додатки" + IDS_CATS_TITLE "Категорії" + IDS_CHOOSE_FOLDER "Будь ласка виберіть папку..." + IDS_NOTCREATE_REGKEY "Не вдалося створити ключ у реєстрі." + IDS_DOWNLOAD_FOLDER "Downloader" + IDS_UNABLECREATE_FOLDER "Не вдалося створити папку з таким ім'ям!" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?" + TTT_HELPBUTTON "Отримайти допомогу про downloader" + TTT_UPDATEBUTTON "Поки що не доступно" + TTT_PROFBUTTON "Налаштувати downloader" END diff --git a/rosapps/downloader/main.c b/rosapps/downloader/main.c index f2f27ea2c56..9f62842f702 100644 --- a/rosapps/downloader/main.c +++ b/rosapps/downloader/main.c @@ -2,7 +2,7 @@ * LICENSE: GPL - See COPYING in the top level directory * FILE: base/applications/downloader/xml.c * PURPOSE: Main program - * PROGRAMMERS: Maarten Bosma, Lester Kortenhoeven + * PROGRAMMERS: Maarten Bosma, Lester Kortenhoeven, Dmitry Chapyshev */ #include @@ -33,564 +33,564 @@ WCHAR Strings [STRING_COUNT][MAX_STRING_LENGHT]; BOOL getUninstaller(WCHAR* RegName, WCHAR* Uninstaller) { - const DWORD ArraySize = 200; + const DWORD ArraySize = 200; - HKEY hKey1; - HKEY hKey2; - DWORD Type = 0; - DWORD Size = ArraySize; - WCHAR Value[ArraySize]; - WCHAR KeyName[ArraySize]; - LONG i = 0; + HKEY hKey1; + HKEY hKey2; + DWORD Type = 0; + DWORD Size = ArraySize; + WCHAR Value[ArraySize]; + WCHAR KeyName[ArraySize]; + LONG i = 0; - if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall",0,KEY_READ,&hKey1) == ERROR_SUCCESS) { - while (RegEnumKeyExW(hKey1,i,KeyName,&Size,NULL,NULL,NULL,NULL) == ERROR_SUCCESS) { - ++i; - RegOpenKeyExW(hKey1,KeyName,0,KEY_READ,&hKey2); - Size = ArraySize; - if (RegQueryValueExW(hKey2,L"DisplayName",0,&Type,(LPBYTE)Value,&Size) == ERROR_SUCCESS) { - Size = ArraySize; - if (StrCmpW(Value,RegName) == 0) { - if (RegQueryValueExW(hKey2,L"UninstallString",0,&Type,(LPBYTE)Uninstaller,&Size) == ERROR_SUCCESS) { - RegCloseKey(hKey2); - RegCloseKey(hKey1); - return TRUE; - } else { - RegCloseKey(hKey2); - RegCloseKey(hKey1); - return FALSE; - } - } - } - RegCloseKey(hKey2); - Size = ArraySize; - } - RegCloseKey(hKey1); - } - return FALSE; + if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall",0,KEY_READ,&hKey1) == ERROR_SUCCESS) { + while (RegEnumKeyExW(hKey1,i,KeyName,&Size,NULL,NULL,NULL,NULL) == ERROR_SUCCESS) { + ++i; + RegOpenKeyExW(hKey1,KeyName,0,KEY_READ,&hKey2); + Size = ArraySize; + if (RegQueryValueExW(hKey2,L"DisplayName",0,&Type,(LPBYTE)Value,&Size) == ERROR_SUCCESS) { + Size = ArraySize; + if (StrCmpW(Value,RegName) == 0) { + if (RegQueryValueExW(hKey2,L"UninstallString",0,&Type,(LPBYTE)Uninstaller,&Size) == ERROR_SUCCESS) { + RegCloseKey(hKey2); + RegCloseKey(hKey1); + return TRUE; + } else { + RegCloseKey(hKey2); + RegCloseKey(hKey1); + return FALSE; + } + } + } + RegCloseKey(hKey2); + Size = ArraySize; + } + RegCloseKey(hKey1); + } + return FALSE; } void ShowMessage (WCHAR* title, WCHAR* message) { - DescriptionHeadline = title; - DescriptionText = message; - InvalidateRect(hwnd,NULL,TRUE); - UpdateWindow(hwnd); + DescriptionHeadline = title; + DescriptionText = message; + InvalidateRect(hwnd,NULL,TRUE); + UpdateWindow(hwnd); } void AddItems(HWND hwnd, struct Category* Category, struct Category* Parent) { - TV_INSERTSTRUCTW Insert; + TV_INSERTSTRUCTW Insert; - Insert.item.lParam = (UINT)Category; - Insert.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;; - Insert.item.pszText = Category->Name; - Insert.item.cchTextMax = lstrlenW(Category->Name); - Insert.item.iImage = Category->Icon; - Insert.item.iSelectedImage = Category->Icon; - Insert.hInsertAfter = TVI_LAST; - Insert.hParent = Category->Parent ? Category->Parent->TreeviewItem : TVI_ROOT; + Insert.item.lParam = (UINT)Category; + Insert.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;; + Insert.item.pszText = Category->Name; + Insert.item.cchTextMax = lstrlenW(Category->Name); + Insert.item.iImage = Category->Icon; + Insert.item.iSelectedImage = Category->Icon; + Insert.hInsertAfter = TVI_LAST; + Insert.hParent = Category->Parent ? Category->Parent->TreeviewItem : TVI_ROOT; - Category->TreeviewItem = (HTREEITEM)SendMessage(hwnd, TVM_INSERTITEM, 0, (LPARAM)&Insert); + Category->TreeviewItem = (HTREEITEM)SendMessage(hwnd, TVM_INSERTITEM, 0, (LPARAM)&Insert); - if(Category->Next) - AddItems (hwnd,Category->Next,Parent); + if(Category->Next) + AddItems (hwnd,Category->Next,Parent); - if(Category->Children) - AddItems (hwnd,Category->Children,Category); + if(Category->Children) + AddItems (hwnd,Category->Children,Category); } void CategoryChoosen(HWND hwnd, struct Category* Category) { - struct Application* CurrentApplication; - TV_INSERTSTRUCTW Insert; - SelectedApplication = NULL; + struct Application* CurrentApplication; + TV_INSERTSTRUCTW Insert; + SelectedApplication = NULL; - if(Category->Children && !Category->Apps) - ShowMessage(Category->Name, Strings[IDS_CHOOSE_SUB]); - else if(!Category->Children && Category->Apps) - ShowMessage(Category->Name, Strings[IDS_CHOOSE_APP]); - else if(Category->Children && Category->Apps) - ShowMessage(Category->Name, Strings[IDS_CHOOSE_BOTH]); - else - ShowMessage(Category->Name, Strings[IDS_NO_APPS]); + if(Category->Children && !Category->Apps) + ShowMessage(Category->Name, Strings[IDS_CHOOSE_SUB]); + else if(!Category->Children && Category->Apps) + ShowMessage(Category->Name, Strings[IDS_CHOOSE_APP]); + else if(Category->Children && Category->Apps) + ShowMessage(Category->Name, Strings[IDS_CHOOSE_BOTH]); + else + ShowMessage(Category->Name, Strings[IDS_NO_APPS]); - (void)TreeView_DeleteItem(hwnd, TVI_ROOT); - (void)TreeView_DeleteItem(hwnd, TVI_ROOT); // Delete twice to bypass bug in windows + (void)TreeView_DeleteItem(hwnd, TVI_ROOT); + (void)TreeView_DeleteItem(hwnd, TVI_ROOT); // Delete twice to bypass bug in windows - Insert.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE; - Insert.hInsertAfter = TVI_LAST; - Insert.hParent = TVI_ROOT; + Insert.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE; + Insert.hInsertAfter = TVI_LAST; + Insert.hParent = TVI_ROOT; - CurrentApplication = Category->Apps; + CurrentApplication = Category->Apps; - WCHAR Uninstaller[200]; - while(CurrentApplication) - { - Insert.item.lParam = (UINT)CurrentApplication; - Insert.item.pszText = CurrentApplication->Name; - Insert.item.cchTextMax = lstrlenW(CurrentApplication->Name); - Insert.item.iImage = 10; - if(StrCmpW(CurrentApplication->RegName,L"")) { - if(getUninstaller(CurrentApplication->RegName, Uninstaller)) - Insert.item.iImage = 9; - } - SendMessage(hwnd, TVM_INSERTITEM, 0, (LPARAM)&Insert); - CurrentApplication = CurrentApplication->Next; - } + WCHAR Uninstaller[200]; + while(CurrentApplication) + { + Insert.item.lParam = (UINT)CurrentApplication; + Insert.item.pszText = CurrentApplication->Name; + Insert.item.cchTextMax = lstrlenW(CurrentApplication->Name); + Insert.item.iImage = 10; + if(StrCmpW(CurrentApplication->RegName,L"")) { + if(getUninstaller(CurrentApplication->RegName, Uninstaller)) + Insert.item.iImage = 9; + } + SendMessage(hwnd, TVM_INSERTITEM, 0, (LPARAM)&Insert); + CurrentApplication = CurrentApplication->Next; + } } BOOL CreateToolTip(HWND hwndTool, HWND hDlg, WCHAR* pText) { - if (!hwndTool || !hDlg || !pText) - return FALSE; + if (!hwndTool || !hDlg || !pText) + return FALSE; - HWND hwndTip = CreateWindowExW(0, TOOLTIPS_CLASS, NULL, - WS_POPUP |TTS_ALWAYSTIP | TTS_BALLOON, - CW_USEDEFAULT, CW_USEDEFAULT, - CW_USEDEFAULT, CW_USEDEFAULT, - hDlg, NULL, - GetModuleHandle(NULL), NULL); - if (!hwndTip) - return FALSE; + HWND hwndTip = CreateWindowExW(0, TOOLTIPS_CLASS, NULL, + WS_POPUP |TTS_ALWAYSTIP | TTS_BALLOON, + CW_USEDEFAULT, CW_USEDEFAULT, + CW_USEDEFAULT, CW_USEDEFAULT, + hDlg, NULL, + GetModuleHandle(NULL), NULL); + if (!hwndTip) + return FALSE; - TOOLINFO toolInfo = {0}; - toolInfo.cbSize = sizeof(toolInfo); - toolInfo.hwnd = hDlg; - toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS; - toolInfo.uId = (UINT_PTR)hwndTool; - toolInfo.lpszText = pText; - SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo); + TOOLINFO toolInfo = {0}; + toolInfo.cbSize = sizeof(toolInfo); + toolInfo.hwnd = hDlg; + toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS; + toolInfo.uId = (UINT_PTR)hwndTool; + toolInfo.lpszText = pText; + SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo); - return TRUE; + return TRUE; } BOOL SetupControls (HWND hwnd) { - TV_INSERTSTRUCTW Insert = {0}; - HIMAGELIST hImageList; - HINSTANCE hInstance = GetModuleHandle(NULL); - WCHAR Cats[MAX_STRING_LENGHT], Apps[MAX_STRING_LENGHT]; - WCHAR Tooltip1[MAX_STRING_LENGHT], Tooltip2[MAX_STRING_LENGHT], Tooltip3[MAX_STRING_LENGHT]; - TCHAR Buf[MAX_PATH]; - char Tmp[MAX_PATH]; - int i; + TV_INSERTSTRUCTW Insert = {0}; + HIMAGELIST hImageList; + HINSTANCE hInstance = GetModuleHandle(NULL); + WCHAR Cats[MAX_STRING_LENGHT], Apps[MAX_STRING_LENGHT]; + WCHAR Tooltip1[MAX_STRING_LENGHT], Tooltip2[MAX_STRING_LENGHT], Tooltip3[MAX_STRING_LENGHT]; + TCHAR Buf[MAX_PATH]; + char Tmp[MAX_PATH]; + int i; - // Getting downloader.xml path - if(!GetSystemDirectory(Buf,sizeof(Buf)/sizeof(char))) return FALSE; - lstrcat((LPTSTR)Buf, L"\\downloader.xml"); - for (i = 0; i < _tcslen(Buf) + 1; i++) Tmp[i] = Buf[i]; + // Getting downloader.xml path + if(!GetSystemDirectory(Buf,sizeof(Buf)/sizeof(char))) return FALSE; + lstrcat((LPTSTR)Buf, L"\\downloader.xml"); + for (i = 0; i < _tcslen(Buf) + 1; i++) Tmp[i] = Buf[i]; - // Parse the XML file - if (!ProcessXML(Tmp, &Root)) - return FALSE; + // Parse the XML file + if (!ProcessXML(Tmp, &Root)) + return FALSE; - LoadStringW(hInstance, IDS_CATS_TITLE, Cats, MAX_STRING_LENGHT); - LoadStringW(hInstance, IDS_APPS_TITLE, Apps, MAX_STRING_LENGHT); + LoadStringW(hInstance, IDS_CATS_TITLE, Cats, MAX_STRING_LENGHT); + LoadStringW(hInstance, IDS_APPS_TITLE, Apps, MAX_STRING_LENGHT); - // Set up the controls - hCategories = CreateWindowExW(0, WC_TREEVIEWW, Cats, - WS_CHILD|WS_VISIBLE|WS_BORDER|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS|TVS_SHOWSELALWAYS, - 0, 0, 0, 0, hwnd, NULL, hInstance, NULL); + // Set up the controls + hCategories = CreateWindowExW(0, WC_TREEVIEWW, Cats, + WS_CHILD|WS_VISIBLE|WS_BORDER|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS|TVS_SHOWSELALWAYS, + 0, 0, 0, 0, hwnd, NULL, hInstance, NULL); - hApps = CreateWindowExW(0, WC_TREEVIEWW, Apps, - WS_CHILD|WS_VISIBLE|WS_BORDER|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS|TVS_SHOWSELALWAYS, - 0, 0, 0, 0, hwnd, NULL, hInstance, NULL); + hApps = CreateWindowExW(0, WC_TREEVIEWW, Apps, + WS_CHILD|WS_VISIBLE|WS_BORDER|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS|TVS_SHOWSELALWAYS, + 0, 0, 0, 0, hwnd, NULL, hInstance, NULL); - hLogo = LoadBitmap(GetModuleHandle(NULL), - MAKEINTRESOURCE(IDB_LOGO)); - hUnderline = LoadBitmap(GetModuleHandle(NULL), - MAKEINTRESOURCE(IDB_UNDERLINE)); + hLogo = LoadBitmap(GetModuleHandle(NULL), + MAKEINTRESOURCE(IDB_LOGO)); + hUnderline = LoadBitmap(GetModuleHandle(NULL), + MAKEINTRESOURCE(IDB_UNDERLINE)); - hHelpButton = CreateWindowW(L"Button", L"", - WS_CHILD | WS_VISIBLE | BS_ICON, - 550, 10, 40, 40, - hwnd, 0, hInstance, NULL); - LoadString(hInstance, TTT_HELPBUTTON, Tooltip1, MAX_STRING_LENGHT); - CreateToolTip(hHelpButton, hwnd, Tooltip1); - - hUpdateButton = CreateWindowW(L"Button", L"", - WS_CHILD | WS_VISIBLE | BS_ICON, - 450, 10, 40, 40, - hwnd, 0, hInstance, NULL); - LoadString(hInstance, TTT_UPDATEBUTTON, Tooltip2, MAX_STRING_LENGHT); - CreateToolTip(hUpdateButton, hwnd, Tooltip2); - - hProfButton = CreateWindowW(L"Button", L"", - WS_CHILD | WS_VISIBLE | BS_ICON, - 500, 10, 40, 40, - hwnd, 0, hInstance, NULL); - LoadString(hInstance, TTT_PROFBUTTON, Tooltip3, MAX_STRING_LENGHT); - CreateToolTip(hProfButton, hwnd, Tooltip3); - - hDownloadButton = CreateWindowW(L"Button", L"", - WS_CHILD | WS_VISIBLE | BS_BITMAP, - 330, 505, 140, 33, - hwnd, 0, hInstance, NULL); - - hUninstallButton = CreateWindowW(L"Button", L"", - WS_CHILD | WS_VISIBLE | BS_BITMAP, - 260, 505, 140, 33, - hwnd, 0, hInstance, NULL); + hHelpButton = CreateWindowW(L"Button", L"", + WS_CHILD | WS_VISIBLE | BS_ICON, + 550, 10, 40, 40, + hwnd, 0, hInstance, NULL); + LoadString(hInstance, TTT_HELPBUTTON, Tooltip1, MAX_STRING_LENGHT); + CreateToolTip(hHelpButton, hwnd, Tooltip1); - SendMessageW(hProfButton, - BM_SETIMAGE, - (WPARAM)IMAGE_ICON, - (LPARAM)(HANDLE)LoadIcon(hInstance,MAKEINTRESOURCE(IDI_PROF))); - SendMessageW(hHelpButton, - BM_SETIMAGE, - (WPARAM)IMAGE_ICON, - (LPARAM)(HANDLE)LoadIcon(hInstance, MAKEINTRESOURCE(IDI_HELP))); - SendMessageW(hUpdateButton, - BM_SETIMAGE, - (WPARAM)IMAGE_ICON, - (LPARAM)(HANDLE)LoadIcon(hInstance, MAKEINTRESOURCE(IDI_UPDATE))); - SendMessageW(hDownloadButton, - BM_SETIMAGE, - (WPARAM)IMAGE_BITMAP, - (LPARAM)(HANDLE)LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_DOWNLOAD))); - SendMessageW(hUninstallButton, - BM_SETIMAGE, - (WPARAM)IMAGE_BITMAP, - (LPARAM)(HANDLE)LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_UNINSTALL))); - ShowWindow(hUninstallButton, SW_HIDE); + hUpdateButton = CreateWindowW(L"Button", L"", + WS_CHILD | WS_VISIBLE | BS_ICON, + 450, 10, 40, 40, + hwnd, 0, hInstance, NULL); + LoadString(hInstance, TTT_UPDATEBUTTON, Tooltip2, MAX_STRING_LENGHT); + CreateToolTip(hUpdateButton, hwnd, Tooltip2); - // Set deflaut entry for hApps - Insert.item.mask = TVIF_TEXT|TVIF_IMAGE; - Insert.item.pszText = Strings[IDS_CHOOSE_CATEGORY]; - Insert.item.cchTextMax = lstrlenW(Strings[IDS_CHOOSE_CATEGORY]); - Insert.item.iImage = 0; - SendMessage(hApps, TVM_INSERTITEM, 0, (LPARAM)&Insert); + hProfButton = CreateWindowW(L"Button", L"", + WS_CHILD | WS_VISIBLE | BS_ICON, + 500, 10, 40, 40, + hwnd, 0, hInstance, NULL); + LoadString(hInstance, TTT_PROFBUTTON, Tooltip3, MAX_STRING_LENGHT); + CreateToolTip(hProfButton, hwnd, Tooltip3); - // Create Tree Icons - hImageList = ImageList_Create(16, 16, ILC_COLORDDB, 1, 1); - SendMessageW(hCategories, TVM_SETIMAGELIST, TVSIL_NORMAL, (LPARAM)(HIMAGELIST)hImageList); - SendMessageW(hApps, TVM_SETIMAGELIST, TVSIL_NORMAL, (LPARAM)(HIMAGELIST)hImageList); + hDownloadButton = CreateWindowW(L"Button", L"", + WS_CHILD | WS_VISIBLE | BS_BITMAP, + 330, 505, 140, 33, + hwnd, 0, hInstance, NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_0)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_1)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_2)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_3)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_4)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_5)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_6)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_7)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_8)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_9)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_10)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_11)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_12)), NULL); - ImageList_Add(hImageList, - LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_13)), NULL); + hUninstallButton = CreateWindowW(L"Button", L"", + WS_CHILD | WS_VISIBLE | BS_BITMAP, + 260, 505, 140, 33, + hwnd, 0, hInstance, NULL); - // Fill the TreeViews - AddItems (hCategories, Root.Children, NULL); + SendMessageW(hProfButton, + BM_SETIMAGE, + (WPARAM)IMAGE_ICON, + (LPARAM)(HANDLE)LoadIcon(hInstance,MAKEINTRESOURCE(IDI_PROF))); + SendMessageW(hHelpButton, + BM_SETIMAGE, + (WPARAM)IMAGE_ICON, + (LPARAM)(HANDLE)LoadIcon(hInstance, MAKEINTRESOURCE(IDI_HELP))); + SendMessageW(hUpdateButton, + BM_SETIMAGE, + (WPARAM)IMAGE_ICON, + (LPARAM)(HANDLE)LoadIcon(hInstance, MAKEINTRESOURCE(IDI_UPDATE))); + SendMessageW(hDownloadButton, + BM_SETIMAGE, + (WPARAM)IMAGE_BITMAP, + (LPARAM)(HANDLE)LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_DOWNLOAD))); + SendMessageW(hUninstallButton, + BM_SETIMAGE, + (WPARAM)IMAGE_BITMAP, + (LPARAM)(HANDLE)LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_UNINSTALL))); + ShowWindow(hUninstallButton, SW_HIDE); - return TRUE; + // Set deflaut entry for hApps + Insert.item.mask = TVIF_TEXT|TVIF_IMAGE; + Insert.item.pszText = Strings[IDS_CHOOSE_CATEGORY]; + Insert.item.cchTextMax = lstrlenW(Strings[IDS_CHOOSE_CATEGORY]); + Insert.item.iImage = 0; + SendMessage(hApps, TVM_INSERTITEM, 0, (LPARAM)&Insert); + + // Create Tree Icons + hImageList = ImageList_Create(16, 16, ILC_COLORDDB, 1, 1); + SendMessageW(hCategories, TVM_SETIMAGELIST, TVSIL_NORMAL, (LPARAM)(HIMAGELIST)hImageList); + SendMessageW(hApps, TVM_SETIMAGELIST, TVSIL_NORMAL, (LPARAM)(HIMAGELIST)hImageList); + + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_0)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_1)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_2)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_3)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_4)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_5)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_6)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_7)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_8)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_9)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_10)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_11)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_12)), NULL); + ImageList_Add(hImageList, + LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_TREEVIEW_ICON_13)), NULL); + + // Fill the TreeViews + AddItems (hCategories, Root.Children, NULL); + + return TRUE; } static void ResizeControl (HWND hwnd, int x1, int y1, int x2, int y2) { - // Make resizing a little easier - MoveWindow(hwnd, x1, y1, x2-x1, y2-y1, TRUE); + // Make resizing a little easier + MoveWindow(hwnd, x1, y1, x2-x1, y2-y1, TRUE); } static void DrawBitmap (HDC hdc, int x, int y, HBITMAP hBmp) { - BITMAP bm; - HDC hdcMem = CreateCompatibleDC(hdc); + BITMAP bm; + HDC hdcMem = CreateCompatibleDC(hdc); - SelectObject(hdcMem, hBmp); - GetObject(hBmp, sizeof(bm), &bm); - TransparentBlt(hdc, x, y, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, bm.bmWidth, bm.bmHeight, 0xFFFFFF); + SelectObject(hdcMem, hBmp); + GetObject(hBmp, sizeof(bm), &bm); + TransparentBlt(hdc, x, y, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, bm.bmWidth, bm.bmHeight, 0xFFFFFF); - DeleteDC(hdcMem); + DeleteDC(hdcMem); } static void DrawDescription (HDC hdc, RECT DescriptionRect) { - int i; - HFONT Font; - RECT Rect = {DescriptionRect.left+5, DescriptionRect.top+3, DescriptionRect.right-2, DescriptionRect.top+22}; + int i; + HFONT Font; + RECT Rect = {DescriptionRect.left+5, DescriptionRect.top+3, DescriptionRect.right-2, DescriptionRect.top+22}; - // Backgroud - Rectangle(hdc, DescriptionRect.left, DescriptionRect.top, DescriptionRect.right, DescriptionRect.bottom); + // Backgroud + Rectangle(hdc, DescriptionRect.left, DescriptionRect.top, DescriptionRect.right, DescriptionRect.bottom); - // Underline - for (i=DescriptionRect.left+1;iRegName, L"")) { - if(getUninstaller(App->RegName, Uninstaller)) { - return TRUE; - } - } - return FALSE; + WCHAR Uninstaller[200]; + if(StrCmpW(App->RegName, L"")) { + if(getUninstaller(App->RegName, Uninstaller)) { + return TRUE; + } + } + return FALSE; } struct Application* GetDependency(const WCHAR* Dependency) { - struct Category* Category = Root.Children; + struct Category* Category = Root.Children; - while (Category->Next) - { - while (Category->Apps) - { - if(StrCmpW(Category->Apps->RegName, Dependency) == 0) - return Category->Apps; - Category->Apps = Category->Apps->Next; - } - Category = Category->Next; - } - return NULL; + while (Category->Next) + { + while (Category->Apps) + { + if(StrCmpW(Category->Apps->RegName, Dependency) == 0) + return Category->Apps; + Category->Apps = Category->Apps->Next; + } + Category = Category->Next; + } + return NULL; } LRESULT CALLBACK WndProc (HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { - static RECT DescriptionRect; - struct Application* AppToInstall; - WCHAR InstallDep[260]; - WCHAR InstallDepBuffer[260]; - WCHAR Title[260]; + static RECT DescriptionRect; + struct Application* AppToInstall; + WCHAR InstallDep[260]; + WCHAR InstallDepBuffer[260]; + WCHAR Title[260]; - switch (Message) - { - case WM_CREATE: - { - if(!SetupControls(hwnd)) - return -1; - ShowMessage(Strings[IDS_WELCOME_TITLE], Strings[IDS_WELCOME]); - } - break; + switch (Message) + { + case WM_CREATE: + { + if(!SetupControls(hwnd)) + return -1; + ShowMessage(Strings[IDS_WELCOME_TITLE], Strings[IDS_WELCOME]); + } + break; - case WM_PAINT: - { - PAINTSTRUCT ps; - HDC hdc = BeginPaint(hwnd, &ps); - HDC BackbufferHdc = CreateCompatibleDC(hdc); - HBITMAP BackbufferBmp = CreateCompatibleBitmap(hdc, ps.rcPaint.right, ps.rcPaint.bottom); - SelectObject(BackbufferHdc, BackbufferBmp); + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc = BeginPaint(hwnd, &ps); + HDC BackbufferHdc = CreateCompatibleDC(hdc); + HBITMAP BackbufferBmp = CreateCompatibleBitmap(hdc, ps.rcPaint.right, ps.rcPaint.bottom); + SelectObject(BackbufferHdc, BackbufferBmp); - FillRect(BackbufferHdc, &ps.rcPaint, CreateSolidBrush(RGB(235,235,235))); - DrawBitmap(BackbufferHdc, 10, 12, hLogo); - DrawDescription(BackbufferHdc, DescriptionRect); + FillRect(BackbufferHdc, &ps.rcPaint, CreateSolidBrush(RGB(235,235,235))); + DrawBitmap(BackbufferHdc, 10, 12, hLogo); + DrawDescription(BackbufferHdc, DescriptionRect); - BitBlt(hdc, 0, 0, ps.rcPaint.right, ps.rcPaint.bottom, BackbufferHdc, 0, 0, SRCCOPY); - DeleteObject(BackbufferBmp); - DeleteDC(BackbufferHdc); - EndPaint(hwnd, &ps); - } - break; + BitBlt(hdc, 0, 0, ps.rcPaint.right, ps.rcPaint.bottom, BackbufferHdc, 0, 0, SRCCOPY); + DeleteObject(BackbufferBmp); + DeleteDC(BackbufferHdc); + EndPaint(hwnd, &ps); + } + break; - case WM_COMMAND: - { - if(HIWORD(wParam) == BN_CLICKED) - { - if (lParam == (LPARAM)hProfButton) - { - DialogBox(GetModuleHandle(NULL), - MAKEINTRESOURCE(IDD_PROF), - hwnd, - ProfDlgProc); - } - if (lParam == (LPARAM)hDownloadButton) - { - if(SelectedApplication) - { - /* install dependencies */ - if(StrCmpW(SelectedApplication->Depends, L"")) - { - AppToInstall = SelectedApplication; - SelectedApplication = GetDependency(SelectedApplication->Depends); - if (SelectedApplication) - if (!IsApplicationInstalled(SelectedApplication)) - { - LoadString(GetModuleHandle(NULL), IDS_INSTALL_DEP, InstallDep, sizeof(InstallDep) / sizeof(WCHAR)); - LoadString(GetModuleHandle(NULL), IDS_WINDOW_TITLE, Title, sizeof(Title) / sizeof(WCHAR)); - _snwprintf(InstallDepBuffer, sizeof(InstallDepBuffer) / sizeof(WCHAR), InstallDep, SelectedApplication->Name, AppToInstall->Name, SelectedApplication->Name); - if (MessageBox(hwnd, InstallDepBuffer, Title, MB_YESNO | MB_ICONINFORMATION) == IDYES) - { - DialogBoxW(GetModuleHandle(NULL), MAKEINTRESOURCEW(IDD_DOWNLOAD), 0, DownloadProc); - } - } - SelectedApplication = AppToInstall; - } + case WM_COMMAND: + { + if(HIWORD(wParam) == BN_CLICKED) + { + if (lParam == (LPARAM)hProfButton) + { + DialogBox(GetModuleHandle(NULL), + MAKEINTRESOURCE(IDD_PROF), + hwnd, + ProfDlgProc); + } + if (lParam == (LPARAM)hDownloadButton) + { + if(SelectedApplication) + { + /* install dependencies */ + if(StrCmpW(SelectedApplication->Depends, L"")) + { + AppToInstall = SelectedApplication; + SelectedApplication = GetDependency(SelectedApplication->Depends); + if (SelectedApplication) + if (!IsApplicationInstalled(SelectedApplication)) + { + LoadString(GetModuleHandle(NULL), IDS_INSTALL_DEP, InstallDep, sizeof(InstallDep) / sizeof(WCHAR)); + LoadString(GetModuleHandle(NULL), IDS_WINDOW_TITLE, Title, sizeof(Title) / sizeof(WCHAR)); + _snwprintf(InstallDepBuffer, sizeof(InstallDepBuffer) / sizeof(WCHAR), InstallDep, SelectedApplication->Name, AppToInstall->Name, SelectedApplication->Name); + if (MessageBox(hwnd, InstallDepBuffer, Title, MB_YESNO | MB_ICONINFORMATION) == IDYES) + { + DialogBoxW(GetModuleHandle(NULL), MAKEINTRESOURCEW(IDD_DOWNLOAD), 0, DownloadProc); + } + } + SelectedApplication = AppToInstall; + } - /* download and install the app */ - DialogBoxW(GetModuleHandle(NULL), MAKEINTRESOURCEW(IDD_DOWNLOAD), 0, DownloadProc); - - /* install req. hacks to get it working */ - if(StrCmpW(SelectedApplication->PostInstallAction, L"")) - { - AppToInstall = SelectedApplication; - CopyMemory(SelectedApplication->Location, SelectedApplication->PostInstallAction, sizeof(SelectedApplication->Location)); - DialogBoxW(GetModuleHandle(NULL), MAKEINTRESOURCEW(IDD_DOWNLOAD), 0, DownloadProc); - SelectedApplication = AppToInstall; - } - } - else - ShowMessage(Strings[IDS_NO_APP_TITLE], Strings[IDS_NO_APP]); - } - else if (lParam == (LPARAM)hUninstallButton) - { - if(SelectedApplication) - { - WCHAR Uninstaller[200]; - if(StrCmpW(SelectedApplication->RegName, L"")) { - if(getUninstaller(SelectedApplication->RegName, Uninstaller)) - startUninstaller(Uninstaller); - } - } - } - else if (lParam == (LPARAM)hUpdateButton) - { - ShowMessage(Strings[IDS_UPDATE_TITLE], Strings[IDS_UPDATE]); - } - else if (lParam == (LPARAM)hHelpButton) - { - ShowMessage(Strings[IDS_HELP_TITLE], Strings[IDS_HELP]); - } - } - } - break; + /* download and install the app */ + DialogBoxW(GetModuleHandle(NULL), MAKEINTRESOURCEW(IDD_DOWNLOAD), 0, DownloadProc); + + /* install req. hacks to get it working */ + if(StrCmpW(SelectedApplication->PostInstallAction, L"")) + { + AppToInstall = SelectedApplication; + CopyMemory(SelectedApplication->Location, SelectedApplication->PostInstallAction, sizeof(SelectedApplication->Location)); + DialogBoxW(GetModuleHandle(NULL), MAKEINTRESOURCEW(IDD_DOWNLOAD), 0, DownloadProc); + SelectedApplication = AppToInstall; + } + } + else + ShowMessage(Strings[IDS_NO_APP_TITLE], Strings[IDS_NO_APP]); + } + else if (lParam == (LPARAM)hUninstallButton) + { + if(SelectedApplication) + { + WCHAR Uninstaller[200]; + if(StrCmpW(SelectedApplication->RegName, L"")) { + if(getUninstaller(SelectedApplication->RegName, Uninstaller)) + startUninstaller(Uninstaller); + } + } + } + else if (lParam == (LPARAM)hUpdateButton) + { + ShowMessage(Strings[IDS_UPDATE_TITLE], Strings[IDS_UPDATE]); + } + else if (lParam == (LPARAM)hHelpButton) + { + ShowMessage(Strings[IDS_HELP_TITLE], Strings[IDS_HELP]); + } + } + } + break; - case WM_NOTIFY: - { - LPNMHDR data = (LPNMHDR)lParam; - if(data->code == TVN_SELCHANGED) - { - BOOL bShowUninstaller = FALSE; - if(data->hwndFrom == hCategories) - { - struct Category* Category = (struct Category*) ((LPNMTREEVIEW)lParam)->itemNew.lParam; - CategoryChoosen (hApps, Category); - } - else if(data->hwndFrom == hApps) - { - SelectedApplication = (struct Application*) ((LPNMTREEVIEW)lParam)->itemNew.lParam; - if(SelectedApplication) - { - ApplicationText[0]=L'\0'; - if(StrCmpW(SelectedApplication->Version, L"")) { - StrCatW(ApplicationText, Strings[IDS_VERSION]); - StrCatW(ApplicationText, SelectedApplication->Version); - StrCatW(ApplicationText, L"\n"); - } - if(StrCmpW(SelectedApplication->Licence, L"")) { - StrCatW(ApplicationText, Strings[IDS_LICENCE]); - StrCatW(ApplicationText, SelectedApplication->Licence); - StrCatW(ApplicationText, L"\n"); - } - if(StrCmpW(SelectedApplication->Maintainer, L"")) { - StrCatW(ApplicationText, Strings[IDS_MAINTAINER]); - StrCatW(ApplicationText, SelectedApplication->Maintainer); - StrCatW(ApplicationText, L"\n"); - } - if(StrCmpW(SelectedApplication->Licence, L"") || StrCmpW(SelectedApplication->Version, L"") || StrCmpW(SelectedApplication->Maintainer, L"")) - StrCatW(ApplicationText, L"\n"); - StrCatW(ApplicationText, SelectedApplication->Description); - ShowMessage(SelectedApplication->Name, ApplicationText); - WCHAR Uninstaller[200]; - if(StrCmpW(SelectedApplication->RegName, L"")) { - if(getUninstaller(SelectedApplication->RegName, Uninstaller)) { - bShowUninstaller = TRUE; - } - } - } - } - if (bShowUninstaller) - showUninstaller(); - else - hideUninstaller(); - } - } - break; + case WM_NOTIFY: + { + LPNMHDR data = (LPNMHDR)lParam; + if(data->code == TVN_SELCHANGED) + { + BOOL bShowUninstaller = FALSE; + if(data->hwndFrom == hCategories) + { + struct Category* Category = (struct Category*) ((LPNMTREEVIEW)lParam)->itemNew.lParam; + CategoryChoosen (hApps, Category); + } + else if(data->hwndFrom == hApps) + { + SelectedApplication = (struct Application*) ((LPNMTREEVIEW)lParam)->itemNew.lParam; + if(SelectedApplication) + { + ApplicationText[0]=L'\0'; + if(StrCmpW(SelectedApplication->Version, L"")) { + StrCatW(ApplicationText, Strings[IDS_VERSION]); + StrCatW(ApplicationText, SelectedApplication->Version); + StrCatW(ApplicationText, L"\n"); + } + if(StrCmpW(SelectedApplication->Licence, L"")) { + StrCatW(ApplicationText, Strings[IDS_LICENCE]); + StrCatW(ApplicationText, SelectedApplication->Licence); + StrCatW(ApplicationText, L"\n"); + } + if(StrCmpW(SelectedApplication->Maintainer, L"")) { + StrCatW(ApplicationText, Strings[IDS_MAINTAINER]); + StrCatW(ApplicationText, SelectedApplication->Maintainer); + StrCatW(ApplicationText, L"\n"); + } + if(StrCmpW(SelectedApplication->Licence, L"") || StrCmpW(SelectedApplication->Version, L"") || StrCmpW(SelectedApplication->Maintainer, L"")) + StrCatW(ApplicationText, L"\n"); + StrCatW(ApplicationText, SelectedApplication->Description); + ShowMessage(SelectedApplication->Name, ApplicationText); + WCHAR Uninstaller[200]; + if(StrCmpW(SelectedApplication->RegName, L"")) { + if(getUninstaller(SelectedApplication->RegName, Uninstaller)) { + bShowUninstaller = TRUE; + } + } + } + } + if (bShowUninstaller) + showUninstaller(); + else + hideUninstaller(); + } + } + break; - case WM_SIZING: - { - LPRECT pRect = (LPRECT)lParam; - if (pRect->right-pRect->left < 520) - pRect->right = pRect->left + 520; + case WM_SIZING: + { + LPRECT pRect = (LPRECT)lParam; + if (pRect->right-pRect->left < 520) + pRect->right = pRect->left + 520; - if (pRect->bottom-pRect->top < 300) - pRect->bottom = pRect->top + 300; - } - break; + if (pRect->bottom-pRect->top < 300) + pRect->bottom = pRect->top + 300; + } + break; - case WM_SIZE: - { - int Split_Hozizontal = (HIWORD(lParam)-(45+60))/2 + 60; - int Split_Vertical = 200; + case WM_SIZE: + { + int Split_Hozizontal = (HIWORD(lParam)-(45+60))/2 + 60; + int Split_Vertical = 200; - ResizeControl(hCategories, 10, 60, Split_Vertical, HIWORD(lParam)-10); - ResizeControl(hApps, Split_Vertical+5, 60, LOWORD(lParam)-10, Split_Hozizontal); - RECT Rect = {Split_Vertical+5, Split_Hozizontal+5, LOWORD(lParam)-10, HIWORD(lParam)-50}; - DescriptionRect = Rect; + ResizeControl(hCategories, 10, 60, Split_Vertical, HIWORD(lParam)-10); + ResizeControl(hApps, Split_Vertical+5, 60, LOWORD(lParam)-10, Split_Hozizontal); + RECT Rect = {Split_Vertical+5, Split_Hozizontal+5, LOWORD(lParam)-10, HIWORD(lParam)-50}; + DescriptionRect = Rect; - MoveWindow(hHelpButton, LOWORD(lParam)-50, 10, 40, 40, TRUE); - MoveWindow(hUpdateButton, LOWORD(lParam)-150, 10, 40, 40, TRUE); - MoveWindow(hProfButton, LOWORD(lParam)-100, 10, 40, 40, TRUE); - if(IsWindowVisible(hUninstallButton)) - MoveWindow(hDownloadButton, (Split_Vertical+LOWORD(lParam))/2, HIWORD(lParam)-45, 140, 35, TRUE); - else - MoveWindow(hDownloadButton, (Split_Vertical+LOWORD(lParam))/2-70, HIWORD(lParam)-45, 140, 35, TRUE); - MoveWindow(hUninstallButton, (Split_Vertical+LOWORD(lParam))/2-140, HIWORD(lParam)-45, 140, 35, TRUE); - } - break; + MoveWindow(hHelpButton, LOWORD(lParam)-50, 10, 40, 40, TRUE); + MoveWindow(hUpdateButton, LOWORD(lParam)-150, 10, 40, 40, TRUE); + MoveWindow(hProfButton, LOWORD(lParam)-100, 10, 40, 40, TRUE); + if(IsWindowVisible(hUninstallButton)) + MoveWindow(hDownloadButton, (Split_Vertical+LOWORD(lParam))/2, HIWORD(lParam)-45, 140, 35, TRUE); + else + MoveWindow(hDownloadButton, (Split_Vertical+LOWORD(lParam))/2-70, HIWORD(lParam)-45, 140, 35, TRUE); + MoveWindow(hUninstallButton, (Split_Vertical+LOWORD(lParam))/2-140, HIWORD(lParam)-45, 140, 35, TRUE); + } + break; - case WM_DESTROY: - { - DeleteObject(hLogo); - if(Root.Children) - FreeTree(Root.Children); - PostQuitMessage(0); - return 0; - } - break; - } + case WM_DESTROY: + { + DeleteObject(hLogo); + if(Root.Children) + FreeTree(Root.Children); + PostQuitMessage(0); + return 0; + } + break; + } - return DefWindowProc (hwnd, Message, wParam, lParam); + return DefWindowProc (hwnd, Message, wParam, lParam); } INT WINAPI wWinMain (HINSTANCE hInstance, - HINSTANCE hPrevInst, - LPTSTR lpCmdLine, - INT nCmdShow) + HINSTANCE hPrevInst, + LPTSTR lpCmdLine, + INT nCmdShow) { - int i; - WNDCLASSEXW WndClass = {0}; - MSG msg; + int i; + WNDCLASSEXW WndClass = {0}; + MSG msg; - InitCommonControls(); + InitCommonControls(); - // Load strings - for(i=0; iChildren = malloc(sizeof(struct Category)); - memset(Current->Children, 0, sizeof(struct Category)); - Current->Children->Parent = Current; - Current = Current->Children; - } - else - { - Current->Next = malloc(sizeof(struct Category)); - memset(Current->Next, 0, sizeof(struct Category)); - Current->Next->Parent = Current->Parent; - Current = Current->Next; - } - TagOpen = TRUE; + else if(!strcmp(tag, "category") && !CurrentApplication) + { + if (!Current) + { + Current = malloc(sizeof(struct Category)); + memset(Current, 0, sizeof(struct Category)); + } + else if (TagOpen) + { + Current->Children = malloc(sizeof(struct Category)); + memset(Current->Children, 0, sizeof(struct Category)); + Current->Children->Parent = Current; + Current = Current->Children; + } + else + { + Current->Next = malloc(sizeof(struct Category)); + memset(Current->Next, 0, sizeof(struct Category)); + Current->Next->Parent = Current->Parent; + Current = Current->Next; + } + TagOpen = TRUE; - for (i=0; arg[i]; i+=2) - { - if(!strcmp(arg[i], "name")) - { - MultiByteToWideChar(CP_UTF8, 0, arg[i+1], -1, Current->Name, 0x100); - } - if(!strcmp(arg[i], "icon")) - { - Current->Icon = atoi(arg[i+1]); - } - } - } + for (i=0; arg[i]; i+=2) + { + if(!strcmp(arg[i], "name")) + { + MultiByteToWideChar(CP_UTF8, 0, arg[i+1], -1, Current->Name, 0x100); + } + if(!strcmp(arg[i], "icon")) + { + Current->Icon = atoi(arg[i+1]); + } + } + } - else if(!strcmp(tag, "application") && !CurrentApplication) - { - if(Current->Apps) - { - CurrentApplication = Current->Apps; - while(CurrentApplication->Next) - CurrentApplication = CurrentApplication->Next; - CurrentApplication->Next = malloc(sizeof(struct Application)); - memset(CurrentApplication->Next, 0, sizeof(struct Application)); - CurrentApplication = CurrentApplication->Next; - } - else - { - Current->Apps = malloc(sizeof(struct Application)); - memset(Current->Apps, 0, sizeof(struct Application)); - CurrentApplication = Current->Apps; - } + else if(!strcmp(tag, "application") && !CurrentApplication) + { + if(Current->Apps) + { + CurrentApplication = Current->Apps; + while(CurrentApplication->Next) + CurrentApplication = CurrentApplication->Next; + CurrentApplication->Next = malloc(sizeof(struct Application)); + memset(CurrentApplication->Next, 0, sizeof(struct Application)); + CurrentApplication = CurrentApplication->Next; + } + else + { + Current->Apps = malloc(sizeof(struct Application)); + memset(Current->Apps, 0, sizeof(struct Application)); + CurrentApplication = Current->Apps; + } - for (i=0; arg[i]; i+=2) - { - if(!strcmp(arg[i], "name")) - { - MultiByteToWideChar(CP_UTF8, 0, arg[i+1], -1, CurrentApplication->Name, 0x100); - } - } - } - else if (CurrentApplication) - { - strncpy(CurrentTag, tag, 0x100); - } - else - MessageBoxW(0,Strings[IDS_XMLERROR_2],0,0); + for (i=0; arg[i]; i+=2) + { + if(!strcmp(arg[i], "name")) + { + MultiByteToWideChar(CP_UTF8, 0, arg[i+1], -1, CurrentApplication->Name, 0x100); + } + } + } + else if (CurrentApplication) + { + strncpy(CurrentTag, tag, 0x100); + } + else + MessageBoxW(0,Strings[IDS_XMLERROR_2],0,0); } void text (void* usrdata, const char* data, int len) { - if (!CurrentApplication) - return; + if (!CurrentApplication) + return; - if(!strcmp(CurrentTag, "maintainer")) - { - int currentlengt = lstrlenW(CurrentApplication->Maintainer); - MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->Maintainer[currentlengt], 0x100-currentlengt); - } - else if(!strcmp(CurrentTag, "regname")) - { - int currentlengt = lstrlenW(CurrentApplication->RegName); - MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->RegName[currentlengt], 0x100-currentlengt); - } - else if(!strcmp(CurrentTag, "description")) - { - int currentlengt = lstrlenW(CurrentApplication->Description); - MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->Description[currentlengt], 0x400-currentlengt); - } - else if(!strcmp(CurrentTag, "location")) - { - int currentlengt = lstrlenW(CurrentApplication->Location); - MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->Location[currentlengt], 0x100-currentlengt); - } - else if(!strcmp(CurrentTag, "version")) - { - int currentlengt = lstrlenW(CurrentApplication->Version); - MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->Version[currentlengt], 0x400-currentlengt); - } - else if(!strcmp(CurrentTag, "licence")) - { - int currentlengt = lstrlenW(CurrentApplication->Licence); - MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->Licence[currentlengt], 0x100-currentlengt); - } - else if(!strcmp(CurrentTag, "depends")) - { - int currentlengt = lstrlenW(CurrentApplication->Depends); - MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->Depends[currentlengt], 0x100-currentlengt); - } - else if(!strcmp(CurrentTag, "postinstallaction")) - { - int currentlengt = lstrlenW(CurrentApplication->PostInstallAction); - MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->PostInstallAction[currentlengt], 0x100-currentlengt); - } + if(!strcmp(CurrentTag, "maintainer")) + { + int currentlengt = lstrlenW(CurrentApplication->Maintainer); + MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->Maintainer[currentlengt], 0x100-currentlengt); + } + else if(!strcmp(CurrentTag, "regname")) + { + int currentlengt = lstrlenW(CurrentApplication->RegName); + MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->RegName[currentlengt], 0x100-currentlengt); + } + else if(!strcmp(CurrentTag, "description")) + { + int currentlengt = lstrlenW(CurrentApplication->Description); + MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->Description[currentlengt], 0x400-currentlengt); + } + else if(!strcmp(CurrentTag, "location")) + { + int currentlengt = lstrlenW(CurrentApplication->Location); + MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->Location[currentlengt], 0x100-currentlengt); + } + else if(!strcmp(CurrentTag, "version")) + { + int currentlengt = lstrlenW(CurrentApplication->Version); + MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->Version[currentlengt], 0x400-currentlengt); + } + else if(!strcmp(CurrentTag, "licence")) + { + int currentlengt = lstrlenW(CurrentApplication->Licence); + MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->Licence[currentlengt], 0x100-currentlengt); + } + else if(!strcmp(CurrentTag, "depends")) + { + int currentlengt = lstrlenW(CurrentApplication->Depends); + MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->Depends[currentlengt], 0x100-currentlengt); + } + else if(!strcmp(CurrentTag, "postinstallaction")) + { + int currentlengt = lstrlenW(CurrentApplication->PostInstallAction); + MultiByteToWideChar(CP_UTF8, 0, data, len, &CurrentApplication->PostInstallAction[currentlengt], 0x100-currentlengt); + } } void tag_closed (void* tree, const char* tag) { - CurrentTag[0] = 0; + CurrentTag[0] = 0; - if(!strcmp(tag, "category")) - { - if (TagOpen) - { - TagOpen = FALSE; - } - else - { - Current = Current->Parent; - } - } - else if(!strcmp(tag, "application")) - { - CurrentApplication = NULL; - } + if(!strcmp(tag, "category")) + { + if (TagOpen) + { + TagOpen = FALSE; + } + else + { + Current = Current->Parent; + } + } + else if(!strcmp(tag, "application")) + { + CurrentApplication = NULL; + } } BOOL ProcessXML (const char* filename, struct Category* Root) { - int done = 0; - char buffer[255]; - FILE* file; - XML_Parser parser; + int done = 0; + char buffer[255]; + FILE* file; + XML_Parser parser; - if(Current) - return FALSE; + if(Current) + return FALSE; - Current = Root; - TagOpen = TRUE; + Current = Root; + TagOpen = TRUE; - file = fopen("downloader.xml", "r"); - if(!file) - { - file = fopen(filename, "r"); - if(!file) - { - MessageBoxW(0,Strings[IDS_XMLERROR_1],0,0); - return FALSE; - } - } + file = fopen("downloader.xml", "r"); + if(!file) + { + file = fopen(filename, "r"); + if(!file) + { + MessageBoxW(0,Strings[IDS_XMLERROR_1],0,0); + return FALSE; + } + } - parser = XML_ParserCreate(NULL); - XML_SetElementHandler(parser, tag_opened, tag_closed); - XML_SetCharacterDataHandler(parser, text); + parser = XML_ParserCreate(NULL); + XML_SetElementHandler(parser, tag_opened, tag_closed); + XML_SetCharacterDataHandler(parser, text); - while (!done) - { - size_t len = fread (buffer, 1, sizeof(buffer), file); - done = len < sizeof(buffer); + while (!done) + { + size_t len = fread (buffer, 1, sizeof(buffer), file); + done = len < sizeof(buffer); - if(!XML_Parse(parser, buffer, len, done)) - { - MessageBoxW(0,Strings[IDS_XMLERROR_2],0,0); - return FALSE; - } - } + if(!XML_Parse(parser, buffer, len, done)) + { + MessageBoxW(0,Strings[IDS_XMLERROR_2],0,0); + return FALSE; + } + } - XML_ParserFree(parser); - fclose(file); + XML_ParserFree(parser); + fclose(file); - return TRUE; + return TRUE; } void FreeApps (struct Application* Apps) { - if (Apps->Next) - FreeApps(Apps->Next); + if (Apps->Next) + FreeApps(Apps->Next); - free(Apps); + free(Apps); } void FreeTree (struct Category* Node) { - if (Node->Children) - FreeTree(Node->Children); + if (Node->Children) + FreeTree(Node->Children); - if (Node->Next) - FreeTree(Node->Next); + if (Node->Next) + FreeTree(Node->Next); - if (Node->Apps) - FreeApps(Node->Apps); + if (Node->Apps) + FreeApps(Node->Apps); - free(Node); + free(Node); }