diff --git a/reactos/base/applications/applications.rbuild b/reactos/base/applications/applications.rbuild index 30ae12b2501..18b0a759ad4 100644 --- a/reactos/base/applications/applications.rbuild +++ b/reactos/base/applications/applications.rbuild @@ -16,6 +16,9 @@ + + + diff --git a/reactos/base/applications/downloader/download.c b/reactos/base/applications/downloader/download.c new file mode 100644 index 00000000000..1dc77c65b97 --- /dev/null +++ b/reactos/base/applications/downloader/download.c @@ -0,0 +1,402 @@ +/* PROJECT: ReactOS Downloader (was GetFirefox) + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/applications/downloader/download.c + * PURPOSE: Displaying a download dialog + * 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) + */ +/* + * Based on Wine dlls/shdocvw/shdocvw_main.c + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#define COBJMACROS +#define WIN32_NO_STATUS +#include +#include +#include +#include +#include + +#include "resources.h" +#include "structures.h" + +#define NDEBUG +#include + +extern struct Application* SelectedApplication; +extern WCHAR Strings [STRING_COUNT][MAX_STRING_LENGHT]; + +typedef struct _IBindStatusCallbackImpl +{ + 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 (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IBindStatusCallback)) + { + IBindStatusCallback_AddRef( This ); + *ppvObject = This; + return S_OK; + } + + return E_NOINTERFACE; +} + +static ULONG WINAPI +dlAddRef(IBindStatusCallback* iface) +{ + IBindStatusCallbackImpl *This = (IBindStatusCallbackImpl *) iface; + + return InterlockedIncrement(&This->ref); +} + +static ULONG WINAPI +dlRelease(IBindStatusCallback* iface) +{ + IBindStatusCallbackImpl *This = (IBindStatusCallbackImpl *) iface; + DWORD ref = InterlockedDecrement(&This->ref); + + if( !ref ) + { + DestroyWindow( This->hDialog ); + HeapFree(GetProcessHeap(), 0, This); + } + + return ref; +} + +static HRESULT WINAPI +dlOnStartBinding(IBindStatusCallback* iface, DWORD dwReserved, IBinding* pib) +{ + DPRINT1("OnStartBinding not implemented\n"); + + return S_OK; +} + +static HRESULT WINAPI +dlGetPriority(IBindStatusCallback* iface, LONG* pnPriority) +{ + DPRINT1("GetPriority not implemented\n"); + + return S_OK; +} + +static HRESULT WINAPI +dlOnLowResource( IBindStatusCallback* iface, DWORD reserved) +{ + DPRINT1("OnLowResource not implemented\n"); + + return S_OK; +} + +static HRESULT WINAPI +dlOnProgress(IBindStatusCallback* iface, ULONG ulProgress, + ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText) +{ + 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, ((ULONGLONG)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); + } + } + + 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; +} + +static HRESULT WINAPI +dlOnStopBinding(IBindStatusCallback* iface, HRESULT hresult, LPCWSTR szError) +{ + DPRINT1("OnStopBinding not implemented\n"); + + return S_OK; +} + +static HRESULT WINAPI +dlGetBindInfo(IBindStatusCallback* iface, DWORD* grfBINDF, BINDINFO* pbindinfo) +{ + DPRINT1("GetBindInfo not implemented\n"); + + return S_OK; +} + +static HRESULT WINAPI +dlOnDataAvailable(IBindStatusCallback* iface, DWORD grfBSCF, + DWORD dwSize, FORMATETC* pformatetc, STGMEDIUM* pstgmed) +{ + DPRINT1("OnDataAvailable implemented\n"); + + return S_OK; +} + +static HRESULT WINAPI +dlOnObjectAvailable(IBindStatusCallback* iface, REFIID riid, IUnknown* punk) +{ + DPRINT1("OnObjectAvailable implemented\n"); + + return S_OK; +} + +static const IBindStatusCallbackVtbl dlVtbl = +{ + dlQueryInterface, + dlAddRef, + dlRelease, + dlOnStartBinding, + dlGetPriority, + dlOnLowResource, + dlOnProgress, + dlOnStopBinding, + dlGetBindInfo, + dlOnDataAvailable, + dlOnObjectAvailable +}; + +static IBindStatusCallback* +CreateDl(HWND Dlg, BOOL *pbCancelled) +{ + IBindStatusCallbackImpl *This; + + This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IBindStatusCallbackImpl)); + if (!This) + return NULL; + + This->vtbl = &dlVtbl; + This->ref = 1; + This->hDialog = Dlg; + This->pbCancelled = pbCancelled; + + 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; + + /* 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; + } + } + + if (GetFileAttributes(path) == 0xFFFFFFFF) + if (!CreateDirectory((LPCTSTR)path,NULL)) + { + goto end; + } + wcscat(path, L"\\"); + wcscat(path, p + 1); + + /* 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; + + switch (Msg) + { + case WM_INITDIALOG:/* + Icon = LoadIconW((HINSTANCE) GetWindowLongPtr(Dlg, GWLP_HINSTANCE), + MAKEINTRESOURCEW(IDI_ICON_MAIN)); + if (NULL != Icon) + { + 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); + }/* + Item = GetDlgItem(Dlg, IDC_REMOVE); + if (NULL != Item) + { + if (GetShortcutName(ShortcutName) && + INVALID_FILE_ATTRIBUTES != GetFileAttributesW(ShortcutName)) + { + SendMessageW(Item, BM_SETCHECK, BST_CHECKED, 0); + } + else + { + SendMessageW(Item, BM_SETCHECK, BST_UNCHECKED, 0); + ShowWindow(Item, SW_HIDE); + } + }*/ + 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_CLOSE: + EndDialog(Dlg, 0); + return TRUE; + + default: + return FALSE; + } +} diff --git a/reactos/base/applications/downloader/downloader.rbuild b/reactos/base/applications/downloader/downloader.rbuild new file mode 100644 index 00000000000..6aca8fc5acc --- /dev/null +++ b/reactos/base/applications/downloader/downloader.rbuild @@ -0,0 +1,26 @@ + + + downloader.xml + + . + . + + kernel32 + advapi32 + ntdll + user32 + gdi32 + shell32 + comctl32 + msimg32 + shlwapi + urlmon + uuid + expat + + main.c + xml.c + download.c + downloader.rc + + diff --git a/reactos/base/applications/downloader/downloader.rc b/reactos/base/applications/downloader/downloader.rc new file mode 100644 index 00000000000..e4cdb19724a --- /dev/null +++ b/reactos/base/applications/downloader/downloader.rc @@ -0,0 +1,10 @@ +#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" + +#include + +#include "rsrc.rc" diff --git a/reactos/base/applications/downloader/downloader.xml b/reactos/base/applications/downloader/downloader.xml new file mode 100644 index 00000000000..fb29bd30d40 --- /dev/null +++ b/reactos/base/applications/downloader/downloader.xml @@ -0,0 +1,297 @@ + + + + Mozilla Firefox (1.5) + MPL/GPL/LGPL + 1.5.0.12 + The most popular and one of the best free Web Browsers out there. + http://svn.reactos.org/packages/Firefox%20Setup%201.5.0.12.exe + + + Mozilla Firefox (2.0.0.20) + MPL/GPL/LGPL + 2.0.0.20 + The most popular and one of the best free Web Browsers out there. + http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.20/win32/en-US/Firefox%20Setup%202.0.0.20.exe + + + Opera + Freeware + 9.63 + The popular Opera Browser with many advanced features and including a Mail and BitTorrent client. + http://ftp.opera.com/pub/opera/win/963/en/Opera_963_classic_Setup.exe + + + Mozilla Thunderbird (2.0.0.19) + MPL/GPL/LGPL + 2.0.0.19 + The most popular and one of the best free Mail Clients out there. + http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/2.0.0.19/win32/en-US/Thunderbird%20Setup%202.0.0.19.exe + + + SeaMonkey (1.1.14) + 1.1.14 + Mozilla Suite is alive. This is the one and only Browser, Mail, Chat, and Composer bundle you will ever need. + http://releases.mozilla.org/pub/mozilla.org/seamonkey/releases/1.1.14/seamonkey-1.1.14.en-US.win32.installer.exe + + + Mozilla ActiveX Control v1.7.12 (ReactOS special) + 1.7.12 + Essential Component to get ReactOS Explorer's and other applications' Internet Browsing feature running. + http://ovh.dl.sourceforge.net/sourceforge/reactos/MozillaControl1712-ReactOS.exe + + + The Off By One Web Browser + The Off By One Browser is a very small and fast web browser with full HTML 3.2 support. + http://offbyone.com/offbyone/images/OffByOneSetup.exe + + + mIRC + Shareware + 6.35 + The most popular client for the Internet Relay Chat (IRC) + http://mirc.bigchief.dk/mirc635.exe + + + This tool allows you to access your Windows shared folders/printers with ReactOS. + http://svn.reactos.org/packages/samba-tng.exe + + + Miranda IM + 0.7.4 + Open source multiprotocol instant messaging application - May not work completely. + http://ovh.dl.sourceforge.net/sourceforge/miranda/miranda-im-v0.7.4-unicode.exe + + + PuTTY version 0.60 + MIT + 0.60 + A free SSH, Telnet, rlogin, and raw TCP client. + http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.60-installer.exe + + + + + "AbiWord 2.6.4 (remove only)" + 2.6.4 + Word processor. + http://www.abiword.org/downloads/abiword/2.6.4/Windows/abiword-setup-2.6.4.exe + + + OpenOffice.org 2.4.2 + 2.4.2 + THE Open Source Office Suite. + http://ftp.plusline.de/OpenOffice/stable/2.4.2/OOo_2.4.2_Win32Intel_install_wJRE_en-US.exe + + + OpenOffice.org 3.0.1 + 3.0.1 + THE Open Source Office Suite. + http://ftp.tu-chemnitz.de/pub/openoffice/stable/3.0.1/OOo_3.0.1_Win32Intel_install_en-US.exe + + + + + IrfanView (remove only) + 4.23 + Viewer for all kinds of graphics/audio files/video files. + http://irfanview.tuwien.ac.at/iview423_setup.exe + + + 4.22 + Additional Plugins for supporting more file types. + http://irfanview.tuwien.ac.at/plugins/irfanview_plugins_422_setup.exe + + + Tux Paint 0.9.19 + 0.9.19 + An Open Source bitmap graphics editor geared towards young children. + http://ovh.dl.sourceforge.net/sourceforge/tuxpaint/tuxpaint-0.9.19-win32-installer.exe + + + GlidewrapZbag + 0.84c + glidewrapper needed to run Diablo 2 on ReactOS. + http://www.zeckensack.de/glide/archive/GlideWrapper084c.exe + + + + + msxml3 + 3.0 + MSXML3 is needed for some MSI Installers. + http://download.microsoft.com/download/8/8/8/888f34b7-4f54-4f06-8dac-fa29b19f33dd/msxml3.msi + + + mfc40 + 4.0 + MFC 4 is needed by some applications + http://download.microsoft.com/download/ole/ole2v/3.5/w351/en-us/ole2v.exe + + + + vb5run + 5.0 + Visual Basic 5 Runtime + http://download.microsoft.com/download/vb50pro/utility/1/win98/en-us/msvbvm50.exe + + + + vb6run + 6.0 + Visual Basic 6 Runtime + http://download.microsoft.com/download/vb60pro/install/6/win98me/en-us/vbrun60.exe + + + + vc6run + 6.0 + Visual Studio 6 Runtime + http://download.microsoft.com/download/vc60pro/update/1/w9xnt4/en-us/vc6redistsetup_enu.exe + + + + vc2005run + 7.0 + Visual Studio 2005 Runtime + http://download.microsoft.com/download/d/3/4/d342efa6-3266-4157-a2ec-5174867be706/vcredist_x86.exe + + + + vc2005sp1run + 7.1 + Visual Studio 2005 Runtime SP1 + http://download.microsoft.com/download/e/1/c/e1c773de-73ba-494a-a5ba-f24906ecf088/vcredist_x86.exe + + + + vc2008run + 8.0 + Visual Studio 2008 Runtime + http://download.microsoft.com/download/1/1/1/1116b75a-9ec3-481a-a3c8-1777b5381140/vcredist_x86.exe + + + + + + + ReactOS Build Environment 1.2 + 1.2 + Allows you to build the ReactOS Source. For more instructions see ReactOS wiki. + http://ovh.dl.sourceforge.net/sourceforge/reactos/RosBE-1.2.exe + + + MinGW 5.1.3 + 5.1.3 + A Port of the GNU toolchain with GCC, GDB, GNU make, etc. + http://ovh.dl.sourceforge.net/sourceforge/mingw/MinGW-5.1.3.exe + + + FreeBASIC 0.18.4b + 0.18.4b + Open Source BASIC Compiler. The BASIC syntax is compatible to QBASIC. + http://ovh.dl.sourceforge.net/sourceforge/fbc/FreeBASIC-v0.18.4b-win32.exe + + + + + ScummVM 0.11.1 + 0.11.1 + SamNMax, Day of Tentacle, etc on ReactOS + http://ovh.dl.sourceforge.net/sourceforge/scummvm/scummvm-0.11.1-win32.exe + + + Diablo II Shareware + 1.4 + Diablo 2 Shareware. zeckensack's glide wrapper is req. to run it. + http://ftp.freenet.de./pub/filepilot/windows/spiele/diabloiidemo.exe + GlidewrapZbag + http://svn.reactos.org/downloads/d2fix.exe + + + Nice Clone of Chip's Challenge originally made for the Atari Lynx. Includes free CCLP2 Graphics Pack, so you dont need the copyrighted Original. + http://www.muppetlabs.com/~breadbox/pub/software/tworld/tworld-1.3.0-win32-CCLP2.exe + + + OpenTTD 0.6.0 + 0.6.0 + Open Source clone of the "Transport Tycoon Deluxe" game engine. You need a copy of Transport Tycoon. + http://ovh.dl.sourceforge.net/sourceforge/openttd/openttd-0.6.0-win32.exe + + + LBreakout2 2.4.1 + 2.4.1 + Breakout Clone using SDL libs. + http://ovh.dl.sourceforge.net/sourceforge/lgames/lbreakout2-2.4.1-win32.exe + + + LGeneral 1.1 + 1.1 + Panzer General Clone using SDL libs. + http://ovh.dl.sourceforge.net/sourceforge/lgames/lgeneral-1.1-win32.exe + + + LMarbles 1.0.6 + 1.0.6 + Atomix Clone using SDL libs. + http://ovh.dl.sourceforge.net/sourceforge/lgames/lmarbles-1.0.6-win32.exe + + + WinBoard 4.2.7b + 4.2.7b + GPL 3 + WinBoard is a graphical chessboard for the Windows/ReactOS that can serve as a user interface for GNU Chess, Crafty, and other chess engines, for the Internet Chess Servers, and for electronic mail correspondence chess. + http://ftp.gnu.org/gnu/winboard/winboard-4_2_7b.exe + + + + + + + + + + + 7-Zip 4.57 + 4.57 + Utility to create and open 7zip, zip, tar, rar and other archive files. + http://ovh.dl.sourceforge.net/sourceforge/sevenzip/7z457.exe + + + µTorrent + 1.8 + Small and fast BitTorrent Client + http://download.utorrent.com/1.8.2/utorrent-1.8.2.upx.exe + + + Audiograbber 1.83 SE + 1.83 SE + A very good CD Ripper/Audio File Converter. + http://www.audiograbber.de/files/4898276276/agsetup183se.exe + + + + + 5.10.00.3610 + Unzip in the "ReactOS" folder then restart ReactOS twice. + http://svn.reactos.org/packages/ac97_vbox.exe + + + + + 1.2.13 + Needed for many Open Source Games to run. You need 7-Zip or a similar Utility to extract it. + http://www.libsdl.org/release/SDL-1.2.13-win32.zip + + + 1.2.8 + Needed for some Open Source Games to run. You need 7-Zip or a similar Utility to extract it. + http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.8-win32.zip + + + 0.72 + DOSBox is a DOS emulator. + http://ovh.dl.sourceforge.net/sourceforge/dosbox/DOSBox0.72-win32-installer.exe + + + diff --git a/reactos/base/applications/downloader/lang/bg-BG.rc b/reactos/base/applications/downloader/lang/bg-BG.rc new file mode 100644 index 00000000000..ee1a13978e5 --- /dev/null +++ b/reactos/base/applications/downloader/lang/bg-BG.rc @@ -0,0 +1,60 @@ +LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT + +IDD_DOWNLOAD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +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 +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE +CAPTION "Предпочитания" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Папка за сваляне:", -1, 6, 10, 144, 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 "&Добре", IDOK, 147, 90, 54, 15 + PUSHBUTTON "&Отказ", IDCANCEL, 207, 90, 54, 15 +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_WINDOW_TITLE "Свали! - Свалячът на РеактОС" + IDS_WELCOME_TITLE "Свалячът на РеактОС ви приветства" + 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" + TTT_HELPBUTTON, "Помощ за сваляча" + TTT_UPDATEBUTTON, "Все още не е готово" + TTT_PROFBUTTON, "Позволява настройка на сваляча" +END diff --git a/reactos/base/applications/downloader/lang/de-DE.rc b/reactos/base/applications/downloader/lang/de-DE.rc new file mode 100644 index 00000000000..27184de338c --- /dev/null +++ b/reactos/base/applications/downloader/lang/de-DE.rc @@ -0,0 +1,61 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | 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 +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | 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 +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" +END diff --git a/reactos/base/applications/downloader/lang/el-GR.rc b/reactos/base/applications/downloader/lang/el-GR.rc new file mode 100644 index 00000000000..ad044670b60 --- /dev/null +++ b/reactos/base/applications/downloader/lang/el-GR.rc @@ -0,0 +1,61 @@ +LANGUAGE LANG_GREEK, SUBLANG_DEFAULT + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | 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 "ўкхсп", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | 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 +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_WINDOW_TITLE "Download ! - ReactOS Downloader" + IDS_WELCOME_TITLE "Кблют Юлибфе уфпн ReactOS Downloader" + IDS_WELCOME "Рбсбкблю ерйлЭофе кбфзгпсЯб уфб бсйуфесЬ. БхфЮ еЯнбй з Экдпуз 1.1." + IDS_NO_APP_TITLE "Ден ерйлЭчизке ецбсмпгЮ" + 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 "ЕнзмЭсщуз" + IDS_UPDATE "Sorry this feature is not implemented yet." + IDS_HELP_TITLE "ВпЮиейб" + IDS_HELP "ЕрйлЭофе кбфзгпсЯб уфб бсйуфесЬ, мефЬ ерйлЭофе мйб ецбсмпгЮ кбй рбфЮуфе фп кпхмрЯ download. 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 "Рбсбкблю ерйлЭофе мйб ецбсмпгЮ." + IDS_CHOOSE_SUB "Рбсбкблю ерйлЭофе мйб хрпкбфзгпсЯб." + IDS_CHOOSE_CATEGORY "Рбсбкблю ерйлЭофе мйб кбфзгпсЯб." + IDS_CHOOSE_BOTH "Рбсбкблю ерйлЭофе мйб хрпкбфзгпсЯб Ю мйб ецбсмпгЮ." + IDS_XMLERROR_1 "Де всЭизке фп бсчеЯп xml !" + IDS_XMLERROR_2 "Could not parse the xml file !" + IDS_DOWNLOAD_ERROR "Ден Юфбн дхнбфь фп кбфЭвбумб фпх бсчеЯпх.\nРбсбкблпэме елЭофе фзн internet уэндеуЮ убт." + IDS_VERSION "ёкдпуз: " + IDS_LICENCE "ўдейб: " + IDS_MAINTAINER "Maintainer: " + IDS_APPS_TITLE "ЕцбсмпгЭт" + IDS_CATS_TITLE "КбфзгпсЯет" + IDS_CHOOSE_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 еЯнбй брбйфпэменп гйб фзн екфЭлеуз фпх %s. Нб егкбфбуфбиеЯ фп %s фюсб;" + TTT_HELPBUTTON "ВсеЯфе впЮиейб гйб фпн downloader" + TTT_UPDATEBUTTON "јчй бкьмб дйбиЭуймп" + TTT_PROFBUTTON "Let you configure the downloader" +END diff --git a/reactos/base/applications/downloader/lang/en-US.rc b/reactos/base/applications/downloader/lang/en-US.rc new file mode 100644 index 00000000000..9c6031cb427 --- /dev/null +++ b/reactos/base/applications/downloader/lang/en-US.rc @@ -0,0 +1,61 @@ +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | 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 +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | 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 +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" +END diff --git a/reactos/base/applications/downloader/lang/es-ES.rc b/reactos/base/applications/downloader/lang/es-ES.rc new file mode 100644 index 00000000000..ed4d08abbc3 --- /dev/null +++ b/reactos/base/applications/downloader/lang/es-ES.rc @@ -0,0 +1,66 @@ +/* + *Spanish Language resource file + * Actualizado Javier Remacha 2007-12-01,2007-12-31 + */ + +LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | 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 +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | 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 +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 en necesario para ejecutar %s. їDesea instalar %s ahora?" + TTT_HELPBUTTON "Obtenga ayuda acerca de Downloader" + TTT_UPDATEBUTTON "No disponible todavнa" + TTT_PROFBUTTON "Le permite configurar Downloader" +END diff --git a/reactos/base/applications/downloader/lang/fr-FR.rc b/reactos/base/applications/downloader/lang/fr-FR.rc new file mode 100644 index 00000000000..eb3ae76a6b3 --- /dev/null +++ b/reactos/base/applications/downloader/lang/fr-FR.rc @@ -0,0 +1,61 @@ +LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | 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 +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | 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 +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" +END diff --git a/reactos/base/applications/downloader/lang/id-ID.rc b/reactos/base/applications/downloader/lang/id-ID.rc new file mode 100644 index 00000000000..1b88e2cf3a8 --- /dev/null +++ b/reactos/base/applications/downloader/lang/id-ID.rc @@ -0,0 +1,61 @@ +LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | 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 +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | 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 +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" +END diff --git a/reactos/base/applications/downloader/lang/it-IT.rc b/reactos/base/applications/downloader/lang/it-IT.rc new file mode 100644 index 00000000000..925dc6b51f1 --- /dev/null +++ b/reactos/base/applications/downloader/lang/it-IT.rc @@ -0,0 +1,61 @@ +LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE +CAPTION "Scarica..." +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 "Annulla", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE +CAPTION "Preferenze" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Cartella dove scaricare:", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Scegliere...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "&Cancellare i file di installazione dopo il setup", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Server per gli aggiornamenti:", -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 "&Annulla", IDCANCEL, 207, 90, 54, 15 +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_WINDOW_TITLE "Scarica ! - 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 Scarica, 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 "Scaricamento del file impossibile.\nVerificare la connessione a Internet." + IDS_VERSION "Versione: " + IDS_LICENCE "Licenza: " + IDS_MAINTAINER "Manutentore: " + IDS_APPS_TITLE "Applicazioni" + IDS_CATS_TITLE "Categorie" + IDS_CHOOSE_FOLDER "Scegliere una cartella..." + IDS_NOTCREATE_REGKEY "Impossibile creare la chiave del registry." + IDS_DOWNLOAD_FOLDER "Scarica" + IDS_UNABLECREATE_FOLDER "Impossibile creare una cartella con questo nome!" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s и necessario per la esecuzione di %s. Si vuole procedere alla installazione di %s?" + TTT_HELPBUTTON "Informazioni su ReactOS Downloader" + TTT_UPDATEBUTTON "Non disponibile" + TTT_PROFBUTTON "Permette la configurazione del downloader" +END diff --git a/reactos/base/applications/downloader/lang/lt-LT.rc b/reactos/base/applications/downloader/lang/lt-LT.rc new file mode 100644 index 00000000000..cf5be5ff85e --- /dev/null +++ b/reactos/base/applications/downloader/lang/lt-LT.rc @@ -0,0 +1,63 @@ +/* Translation by Vytis "CMan" Girdюijauskas (cman@cman.us) */ + +LANGUAGE LANG_LITHUANIAN, SUBLANG_DEFAULT + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE +CAPTION "Siunиiama..." +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 "Atрaukti", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE +CAPTION "Nuostatos" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Siuntш katalogas:", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Pasirinkti...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "&Naikinti diegimo bylas baigus diegimа", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Atnaujinimш serveris:", -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 "&Atрaukti", IDCANCEL, 207, 90, 54, 15 +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_WINDOW_TITLE "Download ! - ReactOS atsiuntimш tvarkytuvл" + IDS_WELCOME_TITLE "Jus sveikina ReactOS atsiuntimш tvarkytuvл" + IDS_WELCOME "Praрome pasirinkti kategorijа kairлje. \nИia yra versija 1.1." + IDS_NO_APP_TITLE "Nepasirinkta programa" + IDS_NO_APP "Praрome pasirinkti programа prieр paspaudюiant siuntimo mygtukа, jei jums reikalinga pagalba, praрome spausti ant klaustuko virрutiniame deрiniajame kampe." + IDS_UPDATE_TITLE "Atnaujinti" + IDS_UPDATE "Atsipraрome, bet рi funkcija dar nesukurta." + IDS_HELP_TITLE "Pagalba" + IDS_HELP "Pasirinkite kategorijа kairлje, tuomet pasirinkite programа ir spauskite siuntimo mygtukа. Norлdami atnaujinti programos informacijа, spaukite mygtukа, kuris yra рalia nuostatш mygtuko." + IDS_NO_APPS "Atsipraрome, bet рioje kategorijoje programш dar nлra. Jыs galite padлti pridлdami daugiau programш." + IDS_CHOOSE_APP "Praрome pasirinkti programа." + IDS_CHOOSE_SUB "Praрome pasirinkti pokategorб." + IDS_CHOOSE_CATEGORY "Praрome pasirinkti kategorijа." + IDS_CHOOSE_BOTH "Praрome pasirinkti pokategorб arba programа." + IDS_XMLERROR_1 "Nepavyko rasti xml bylos!" + IDS_XMLERROR_2 "Nepavyko nuskaityti xml bylos!" + IDS_DOWNLOAD_ERROR "Nepavyko parsiшsti bylos.\nPraрome patikrinti interneto ryрб." + IDS_VERSION "Versija: " + IDS_LICENCE "Licencija: " + IDS_MAINTAINER "Palaikymas: " + IDS_APPS_TITLE "Programos" + IDS_CATS_TITLE "Kategorijos" + IDS_CHOOSE_FOLDER "Praрome pasirinkti katalogа..." + IDS_NOTCREATE_REGKEY "Nepavyko sukurti registro rakto." + IDS_DOWNLOAD_FOLDER "Downloader" + IDS_UNABLECREATE_FOLDER "Nepavyko sukurti katalogo su рiuo vardu!" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s reikalingas paleisti %s. Diegti %s dabar?" + TTT_HELPBUTTON "Pateikia informacijа apie naudojimаsi programa" + TTT_UPDATEBUTTON "Dar nлra" + TTT_PROFBUTTON "Leidюia konfiguruoti programа" +END diff --git a/reactos/base/applications/downloader/lang/no-NO.rc b/reactos/base/applications/downloader/lang/no-NO.rc new file mode 100644 index 00000000000..0a03c9bfa43 --- /dev/null +++ b/reactos/base/applications/downloader/lang/no-NO.rc @@ -0,0 +1,61 @@ +LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE +CAPTION "Nedlasting..." +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "Prosess1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER + PUSHBUTTON "Avbryt", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE +CAPTION "Innstillinger" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Nedlastingsmappe:", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "V&elg...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "&Slett installasjonsfiler etter innstallering", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Oppdater 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 "&Avbryt", IDCANCEL, 207, 90, 54, 15 +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_WINDOW_TITLE "Nedlasting ! - ReactOS Nedlasting" + IDS_WELCOME_TITLE "Velkommen til ReactOS Nedlasting" + IDS_WELCOME "Vennligst velg en kategori til hшyre. Dette er versjon 1.1." + IDS_NO_APP_TITLE "Ingen applikasjoner er valgt" + IDS_NO_APP "Vennligst velg en applikasjon fшr du klikker pе nedlasting knappen, hvis du trenger hjelp vennligst klikk pе spшrsmеlsmerke knappen pе toppen i hшyre hjшrne." + IDS_UPDATE_TITLE "Oppdater" + IDS_UPDATE "Beklager denne funksjonen er ikke implementert ennе." + IDS_HELP_TITLE "Hjelp" + IDS_HELP "Velg en kategori til venstre, ogsе velg en applikasjon og klikk pе nedlastings knappen. For е oppdatere applikasjon informasjonen klikk pе knappen neste etter hjelp knappen." + IDS_NO_APPS "Beklager, det er ingen applikasjoner i denne kategorien ennе. Du kan hjelpe og legge til flere applikasjoner." + IDS_CHOOSE_APP "Vennligst velg en applikasjon." + IDS_CHOOSE_SUB "Vennligst velg en underkategori." + IDS_CHOOSE_CATEGORY "Vennligst velg en kategori." + IDS_CHOOSE_BOTH "Vennligst velg en underkategori eller en applikasjon." + IDS_XMLERROR_1 "Kan ikke finne xml filen !" + IDS_XMLERROR_2 "Kan ikke analysere xml filen !" + IDS_DOWNLOAD_ERROR "Ikke mulig е laste ned filen.\nVennligst sjekk din internett forbindelse." + IDS_VERSION "Versjon: " + IDS_LICENCE "Lisens: " + IDS_MAINTAINER "Produsent: " + IDS_APPS_TITLE "Applikasjoner" + IDS_CATS_TITLE "Kategori" + IDS_CHOOSE_FOLDER "Vennligst, velg mappen..." + IDS_NOTCREATE_REGKEY "Kan ikke opprette registernшkkel." + IDS_DOWNLOAD_FOLDER "Nedlasting" + IDS_UNABLECREATE_FOLDER "Ikke mulig е opprette mappe med dette navnet!" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s trengs е bli kjшrt %s. Skal %s bli innstallert nе?" + TTT_HELPBUTTON "Fе hjelp om nedlastingen" + TTT_UPDATEBUTTON "Ikke ennе tilgjengelig" + TTT_PROFBUTTON "La deg konfigurere nedlastingen" +END diff --git a/reactos/base/applications/downloader/lang/pl-PL.rc b/reactos/base/applications/downloader/lang/pl-PL.rc new file mode 100644 index 00000000000..adcc2d49efd --- /dev/null +++ b/reactos/base/applications/downloader/lang/pl-PL.rc @@ -0,0 +1,68 @@ +/* + * translated by Caemyr - Olaf Siejka (Feb, 2008) + * Use ReactOS forum PM or IRC to contact me + * http://www.reactos.org + * IRC: irc.freenode.net #reactos-pl; + */ + +LANGUAGE LANG_POLISH, SUBLANG_DEFAULT + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE +CAPTION "Њci№gaj..." +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 "Anuluj", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE +CAPTION "Ustawienia" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Katalog do њci№gania:", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Wybierz...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "&Skasuj њci№gniкte pliki po zainstalowaniu programu", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Uaktualnij:", -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 "&Anuluj", IDCANCEL, 207, 90, 54, 15 +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_WINDOW_TITLE "Њci№gnij ! - Menedїer pobierania dla ReactOS" + IDS_WELCOME_TITLE "Witamy w Њci№gnij dla ReactOS" + IDS_WELCOME "Proszк wybraж kategoriк po lewej. Wersja programu: 1.1." + IDS_NO_APP_TITLE "Nie wybrano programu" + IDS_NO_APP "Proszк wybraж program, przed klikniкciem w przycisk Њci№gnij. W razie problemуw kliknij w znak zapytania, w prawym gуrnym rogu okna." + IDS_UPDATE_TITLE "Uaktualnij" + IDS_UPDATE "Przepraszamy, ta opcja nie jest jeszcze dostкpna." + IDS_HELP_TITLE "Pomoc" + IDS_HELP "Wybierz kategoriк po lewej, nastкpnie wybierz program i kliknij w przycisk Њci№gnij. Aby uaktualniж listк programуw, naciњnij przycisk obok przycisku Pomocy." + IDS_NO_APPS "Przepraszamy, nie ma programуw w tej kategorii. Moїesz pomуc nam w wyborze nowych programуw." + IDS_CHOOSE_APP "Proszк wybraж program." + IDS_CHOOSE_SUB "Proszк wybraж podkategoriк." + IDS_CHOOSE_CATEGORY "Proszк wybraж kategoriк." + IDS_CHOOSE_BOTH "Proszк wybraж podkategoriк albo program." + IDS_XMLERROR_1 "Plik XML nie zostaі znaleziony !" + IDS_XMLERROR_2 "Nie udaіo siк przetworzyж pliku XML !" + IDS_DOWNLOAD_ERROR "Sci№ganie pliku nieudane.\nProszк sprawdziж poі№czenie z internetem." + IDS_VERSION "Wersja: " + IDS_LICENCE "Licenccja: " + IDS_MAINTAINER "Opiekun: " + IDS_APPS_TITLE "Programy" + IDS_CATS_TITLE "Kategorie" + IDS_CHOOSE_FOLDER "Proszк wybraж katalog..." + IDS_NOTCREATE_REGKEY "Nie udaіo siк utworzyж kluczy rejestru." + IDS_DOWNLOAD_FOLDER "Pobrane" + IDS_UNABLECREATE_FOLDER "Nie udaіo siк stworzyж katalogu o tej nazwie!" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s jest wymagany do uruchomienia %s. Czy chcesz zainstalowaж %s w tej chwili?" + TTT_HELPBUTTON "Pomoc Menedїera pobierania" + TTT_UPDATEBUTTON "Niedostкpne" + TTT_PROFBUTTON "Ustawienia Menedїera pobierania" +END diff --git a/reactos/base/applications/downloader/lang/ru-RU.rc b/reactos/base/applications/downloader/lang/ru-RU.rc new file mode 100644 index 00000000000..386592561e2 --- /dev/null +++ b/reactos/base/applications/downloader/lang/ru-RU.rc @@ -0,0 +1,63 @@ +//Russian language file. (Dmitry Chapyshev, 2007.06.21) + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | 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 +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | 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 +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 требуется для запуска %s. Установить %s?" + TTT_HELPBUTTON "Показать справку программы" + TTT_UPDATEBUTTON "Сейчас недоступно" + TTT_PROFBUTTON "Выполнить настройку программы" +END diff --git a/reactos/base/applications/downloader/lang/sk-SK.rc b/reactos/base/applications/downloader/lang/sk-SK.rc new file mode 100644 index 00000000000..9258d705f1e --- /dev/null +++ b/reactos/base/applications/downloader/lang/sk-SK.rc @@ -0,0 +1,67 @@ +/* TRANSLATOR: Mбrio Kaиmбr /Mario Kacmar/ aka Kario (kario@szm.sk) + * DATE OF TR: 21-01-2008 + * LastChange: 31-10-2008 + */ + + +LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE +CAPTION "Sќahujem ..." +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 "Zruљiќ", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE +CAPTION "Nastavenia" //Preferencies +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Prieиinok sќahovania:", -1, 6, 10, 140, 8 + EDITTEXT IDC_DOWNLOAD_FOLDER_EDIT, 6, 20, 205, 14, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Vybraќ ...", IDC_CHOOSE_BUTTON, 216, 20, 45, 14 + AUTOCHECKBOX "&Odstrбniќ inљtalaиnй sъbory po nainљtalovanн", IDC_DELINST_FILES_CHECKBOX, 8, 40, 210, 10, WS_GROUP + LTEXT "Aktualizovaќ 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 "&Zruљiќ", IDCANCEL, 207, 90, 54, 15 +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_WINDOW_TITLE "Ќahaj! - Downloader systйmu ReactOS" + IDS_WELCOME_TITLE "Vitajte v programe Downloader systйmu ReactOS" + IDS_WELCOME "Vyberte, prosнm, kategуriu na ѕavej strane. Toto je verzia 1.1." + IDS_NO_APP_TITLE "Nie je vybranэ ћiadny program" + IDS_NO_APP "Vyberte, prosнm, program predtэm neћ kliknete na tlaиidlo stiahnuќ. Ak potrebujete pomoc, kliknite, prosнm, na tlaиidlo otбznika v pravom hornom rohu." + IDS_UPDATE_TITLE "Aktualizovaќ" + IDS_UPDATE "Prepбиte, ale tбto funkcia zatiaѕ nie je implementovanб." + IDS_HELP_TITLE "Pomocnнk" + IDS_HELP "Vyberte kategуriu na ѕavej strane, potom vyberte program a kliknite na tlaиidlo stiahnuќ. Pre aktualizбciu informбcii o programe kliknite na tlaиidlo vedѕa tlaиidla pomoc." + IDS_NO_APPS "Prepбиte, ale zatiaѕ sa v tejto kategуrii nenachбdzajъ ћiadne programy. Mфћete pomфcќ a pridaќ viac programov." + IDS_CHOOSE_APP "Vyberte program, prosнm." + IDS_CHOOSE_SUB "Vyberte podkategуriu, prosнm." + IDS_CHOOSE_CATEGORY "Vyberte kategуriu, prosнm." + IDS_CHOOSE_BOTH "Vyberte podkategуriu alebo program, prosнm." + IDS_XMLERROR_1 "Nepodarilo sa nбjsќ sъbor xml!" + IDS_XMLERROR_2 "Nepodarilo sa sprбvne analyzovaќ sъbor xml!" + IDS_DOWNLOAD_ERROR "Nepodarilo sa stiahnuќ sъbor.\nSkontrolujte, prosнm, pripojenie do siete internet." + IDS_VERSION "Verzia: " + IDS_LICENCE "Licencia: " + IDS_MAINTAINER "Ъdrћbбr: " //Maintainer + IDS_APPS_TITLE "Programy" + IDS_CATS_TITLE "Kategуrie" + IDS_CHOOSE_FOLDER "Vyberte, prosнm, prieиinok ..." + IDS_NOTCREATE_REGKEY "Nepodarilo sa vytvoriќ kѕъи registra." + IDS_DOWNLOAD_FOLDER "Downloader" + IDS_UNABLECREATE_FOLDER "Nie je moћnй vytvoriќ prieиinok s tэmto nбzvom!" + IDS_UPDATE_URL "http://svn.reactos.org" + IDS_INSTALL_DEP "%s je potrebnэ pre spustenie %s. Mб sa %s nainљtalovaќ teraz?" + TTT_HELPBUTTON "Zнskaќ nбpoveп k programu downloader" + TTT_UPDATEBUTTON "Zatiaѕ nie je k dispozнciн" + TTT_PROFBUTTON "Dovolн Vбm konfigurovaќ program downloader" +END diff --git a/reactos/base/applications/downloader/lang/uk-UA.rc b/reactos/base/applications/downloader/lang/uk-UA.rc new file mode 100644 index 00000000000..b43a863cde4 --- /dev/null +++ b/reactos/base/applications/downloader/lang/uk-UA.rc @@ -0,0 +1,69 @@ +/* + * PROJECT: ReactOS Downloader + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/downloader/lang/uk-UA.rc + * PURPOSE: Ukraianian Language File for Downloader + * TRANSLATOR: Artem Reznikov + */ + +LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT + +IDD_DOWNLOAD DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_SHELLFONT | 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 +END + +IDD_PROF DIALOGEX 6, 6, 267, 110 +STYLE DS_SHELLFONT | 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 +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 потрібний щоб запустити %s. Встановити %s зараз?" + TTT_HELPBUTTON "Отримайти допомогу про завантажувач" + TTT_UPDATEBUTTON "Поки що не доступно" + TTT_PROFBUTTON "Налаштувати завантажувач" +END diff --git a/reactos/base/applications/downloader/main.c b/reactos/base/applications/downloader/main.c new file mode 100644 index 00000000000..5e14ecb2de6 --- /dev/null +++ b/reactos/base/applications/downloader/main.c @@ -0,0 +1,922 @@ +/* PROJECT: ReactOS Downloader + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/applications/downloader/xml.c + * PURPOSE: Main program + * PROGRAMMERS: Maarten Bosma, Lester Kortenhoeven, Dmitry Chapyshev + */ + +#include +#include +#include +#include +#include +#include +#include +#include "resources.h" +#include "structures.h" + +HWND hwnd, hCategories, hApps, hDownloadButton, hUninstallButton, hUpdateButton, hHelpButton, hProfButton; +HBITMAP hLogo, hUnderline; +WCHAR* DescriptionHeadline = L""; +WCHAR* DescriptionText = L""; +WCHAR ApplicationText[700]; + +struct Category Root; +struct Application* SelectedApplication; + +INT_PTR CALLBACK DownloadProc (HWND, UINT, WPARAM, LPARAM); +BOOL ProcessXML (const char* filename, struct Category* Root); +VOID FreeTree (struct Category* Node); +WCHAR Strings [STRING_COUNT][MAX_STRING_LENGHT]; + + +BOOL +getUninstaller(WCHAR* RegName, WCHAR* Uninstaller) { + HKEY hKey1; + HKEY hKey2; + DWORD Type = 0; + DWORD Size = MAX_PATH; + WCHAR Value[MAX_PATH]; + WCHAR KeyName[MAX_PATH]; + 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 = MAX_PATH; + if (RegQueryValueExW(hKey2,L"DisplayName",0,&Type,(LPBYTE)Value,&Size) == ERROR_SUCCESS) { + Size = MAX_PATH; + 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 = MAX_PATH; + } + RegCloseKey(hKey1); + } + return FALSE; +} + +void +ShowMessage (WCHAR* title, WCHAR* message) +{ + DescriptionHeadline = title; + DescriptionText = message; + InvalidateRect(hwnd,NULL,TRUE); + UpdateWindow(hwnd); +} + +void +AddItems(HWND hwnd, struct Category* Category, struct Category* Parent) +{ + TV_INSERTSTRUCTW Insert; + + Insert.item.lParam = (LPARAM)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); + + if(Category->Next) + AddItems (hwnd,Category->Next,Parent); + + if(Category->Children) + AddItems (hwnd,Category->Children,Category); +} + +void +CategoryChoosen(HWND hwnd, struct Category* Category) +{ + struct Application* CurrentApplication; + TV_INSERTSTRUCTW Insert; + WCHAR Uninstaller[200]; + 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]); + + (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; + + CurrentApplication = Category->Apps; + while(CurrentApplication) + { + Insert.item.lParam = (LPARAM)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) +{ + HWND hwndTip; + TOOLINFO toolInfo; + + if (!hwndTool || !hDlg || !pText) + return FALSE; + + 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; + + ZeroMemory(&toolInfo, sizeof(TOOLINFO)); + 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; +} + +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]; + char Buf[MAX_PATH]; + + // Getting downloader.xml path + if(!GetSystemDirectoryA(Buf,sizeof(Buf))) return FALSE; + strcat(Buf, "\\downloader.xml"); + + // Parse the XML file + if (!ProcessXML(Buf, &Root)) + return FALSE; + + 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); + + 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)); + + 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); + + 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); + + // 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); +} + +static void +DrawBitmap (HDC hdc, int x, int y, HBITMAP hBmp) +{ + 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); + + 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}; + + // 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; +} + +struct Application* GetDependency(const WCHAR* Dependency) +{ + 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; +} + +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]; + + 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); + + 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; + + 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; + + case WM_NOTIFY: + { + LPNMHDR data = (LPNMHDR)lParam; + WCHAR Uninstaller[200]; + + 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); + 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; + + 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; + RECT Rect; + + ResizeControl(hCategories, 10, 60, Split_Vertical, HIWORD(lParam)-10); + ResizeControl(hApps, Split_Vertical+5, 60, LOWORD(lParam)-10, Split_Hozizontal); + SetRect(&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; + + case WM_DESTROY: + { + DeleteObject(hLogo); + if(Root.Children) + FreeTree(Root.Children); + PostQuitMessage(0); + return 0; + } + break; + } + + return DefWindowProc (hwnd, Message, wParam, lParam); +} + +INT WINAPI +wWinMain (HINSTANCE hInstance, + HINSTANCE hPrevInst, + LPTSTR lpCmdLine, + INT nCmdShow) +{ + int i; + WNDCLASSEXW WndClass = {0}; + MSG msg; + + InitCommonControls(); + + // Load strings + for(i=0; i +#include + +int main() +{ + + HKEY hKey; + DWORD dwVal = 1; + DWORD dwSize = MAX_PATH; + DWORD lpdwDisposition = 0; + CHAR szBuf[MAX_PATH]; + + printf("%s", "Setting Diablo 2 commandline parameters to -w -glide..."); + + if (RegCreateKeyExA (HKEY_CURRENT_USER, + "SOFTWARE\\Blizzard Entertainment\\Diablo II Shareware", + 0, + NULL, + 0, + KEY_ALL_ACCESS, + NULL, + &hKey, + &lpdwDisposition)); + { + strcpy(szBuf, "-w -glide"); + + RegSetValueExA(hKey, "UseCmdLine", 0, REG_DWORD, (LPCSTR)&dwVal, sizeof(dwVal)); + RegSetValueExA(hKey, "CmdLine", 0, REG_SZ, (LPCSTR)szBuf, strlen(szBuf)+1); + + RegCloseKey(hKey); + printf("%s", "done."); + + } + + return 0; +} diff --git a/reactos/base/applications/downloader/resources.h b/reactos/base/applications/downloader/resources.h new file mode 100644 index 00000000000..172ed9a4c1f --- /dev/null +++ b/reactos/base/applications/downloader/resources.h @@ -0,0 +1,71 @@ +/* Icons */ +#define IDI_MAIN 0x0 +#define IDI_UPDATE 5000 +#define IDI_HELP 5001 +#define IDI_PROF 5002 +/* Bitmaps */ +#define IDB_UNDERLINE 0x100 +#define IDB_LOGO 0x101 +#define IDB_DOWNLOAD 0x102 +#define IDB_UNINSTALL 0x103 +#define IDB_TREEVIEW_ICON_0 0x900 +#define IDB_TREEVIEW_ICON_1 0x901 +#define IDB_TREEVIEW_ICON_2 0x902 +#define IDB_TREEVIEW_ICON_3 0x903 +#define IDB_TREEVIEW_ICON_4 0x904 +#define IDB_TREEVIEW_ICON_5 0x905 +#define IDB_TREEVIEW_ICON_6 0x906 +#define IDB_TREEVIEW_ICON_7 0x907 +#define IDB_TREEVIEW_ICON_8 0x908 +#define IDB_TREEVIEW_ICON_9 0x909 +#define IDB_TREEVIEW_ICON_10 0x910 +#define IDB_TREEVIEW_ICON_11 0x911 +#define IDB_TREEVIEW_ICON_12 0x912 +#define IDB_TREEVIEW_ICON_13 0x913 +/* Dialogs */ +#define IDD_DOWNLOAD 0x100 +#define IDD_PROF 6000 +/* Controls */ +#define IDC_PROGRESS 0x1000 +#define IDC_STATUS 0x1001 +#define IDC_REMOVE 0x1002 +#define IDC_DOWNLOAD_FOLDER_EDIT 0x1003 +#define IDC_CHOOSE_BUTTON 0x1004 +#define IDC_UPDATE_SERVER_EDIT 0x1005 +#define IDC_DELINST_FILES_CHECKBOX 0x1006 +/* Strings */ +#define IDS_WINDOW_TITLE 0 +#define IDS_WELCOME_TITLE 1 +#define IDS_WELCOME 2 +#define IDS_NO_APP_TITLE 3 +#define IDS_NO_APP 4 +#define IDS_UPDATE_TITLE 5 +#define IDS_UPDATE 6 +#define IDS_HELP_TITLE 7 +#define IDS_HELP 8 +#define IDS_NO_APPS 9 +#define IDS_CHOOSE_APP 10 +#define IDS_CHOOSE_SUB 11 +#define IDS_CHOOSE_CATEGORY 12 +#define IDS_CHOOSE_BOTH 13 +#define IDS_XMLERROR_1 14 +#define IDS_XMLERROR_2 15 +#define IDS_DOWNLOAD_ERROR 16 +#define IDS_VERSION 17 +#define IDS_LICENCE 18 +#define IDS_MAINTAINER 19 +#define IDS_APPS_TITLE 20 +#define IDS_CATS_TITLE 21 +#define IDS_CHOOSE_FOLDER 22 +#define IDS_NOTCREATE_REGKEY 23 +#define IDS_DOWNLOAD_FOLDER 24 +#define IDS_UNABLECREATE_FOLDER 25 +#define IDS_UPDATE_URL 26 +#define IDS_INSTALL_DEP 27 +/* Tool tips */ +#define TTT_HELPBUTTON 50 +#define TTT_UPDATEBUTTON 51 +#define TTT_PROFBUTTON 52 +/* Other */ +#define STRING_COUNT 20 +#define MAX_STRING_LENGHT 0x100 diff --git a/reactos/base/applications/downloader/resources/0.bmp b/reactos/base/applications/downloader/resources/0.bmp new file mode 100644 index 00000000000..e31ccefe737 Binary files /dev/null and b/reactos/base/applications/downloader/resources/0.bmp differ diff --git a/reactos/base/applications/downloader/resources/1.bmp b/reactos/base/applications/downloader/resources/1.bmp new file mode 100644 index 00000000000..b5d584bf206 Binary files /dev/null and b/reactos/base/applications/downloader/resources/1.bmp differ diff --git a/reactos/base/applications/downloader/resources/10.bmp b/reactos/base/applications/downloader/resources/10.bmp new file mode 100644 index 00000000000..d0825e8fb79 Binary files /dev/null and b/reactos/base/applications/downloader/resources/10.bmp differ diff --git a/reactos/base/applications/downloader/resources/11.bmp b/reactos/base/applications/downloader/resources/11.bmp new file mode 100644 index 00000000000..94bd89c3854 Binary files /dev/null and b/reactos/base/applications/downloader/resources/11.bmp differ diff --git a/reactos/base/applications/downloader/resources/12.bmp b/reactos/base/applications/downloader/resources/12.bmp new file mode 100644 index 00000000000..36f74af7e27 Binary files /dev/null and b/reactos/base/applications/downloader/resources/12.bmp differ diff --git a/reactos/base/applications/downloader/resources/13.bmp b/reactos/base/applications/downloader/resources/13.bmp new file mode 100644 index 00000000000..bfaa9c0e568 Binary files /dev/null and b/reactos/base/applications/downloader/resources/13.bmp differ diff --git a/reactos/base/applications/downloader/resources/2.bmp b/reactos/base/applications/downloader/resources/2.bmp new file mode 100644 index 00000000000..e59ab5e984a Binary files /dev/null and b/reactos/base/applications/downloader/resources/2.bmp differ diff --git a/reactos/base/applications/downloader/resources/3.bmp b/reactos/base/applications/downloader/resources/3.bmp new file mode 100644 index 00000000000..860744a0fed Binary files /dev/null and b/reactos/base/applications/downloader/resources/3.bmp differ diff --git a/reactos/base/applications/downloader/resources/4.bmp b/reactos/base/applications/downloader/resources/4.bmp new file mode 100644 index 00000000000..5df366dd321 Binary files /dev/null and b/reactos/base/applications/downloader/resources/4.bmp differ diff --git a/reactos/base/applications/downloader/resources/5.bmp b/reactos/base/applications/downloader/resources/5.bmp new file mode 100644 index 00000000000..fd5099eded6 Binary files /dev/null and b/reactos/base/applications/downloader/resources/5.bmp differ diff --git a/reactos/base/applications/downloader/resources/6.bmp b/reactos/base/applications/downloader/resources/6.bmp new file mode 100644 index 00000000000..280fc7e0bc8 Binary files /dev/null and b/reactos/base/applications/downloader/resources/6.bmp differ diff --git a/reactos/base/applications/downloader/resources/7.bmp b/reactos/base/applications/downloader/resources/7.bmp new file mode 100644 index 00000000000..1c8007b117d Binary files /dev/null and b/reactos/base/applications/downloader/resources/7.bmp differ diff --git a/reactos/base/applications/downloader/resources/8.bmp b/reactos/base/applications/downloader/resources/8.bmp new file mode 100644 index 00000000000..e30064272fd Binary files /dev/null and b/reactos/base/applications/downloader/resources/8.bmp differ diff --git a/reactos/base/applications/downloader/resources/9.bmp b/reactos/base/applications/downloader/resources/9.bmp new file mode 100644 index 00000000000..1e28d936e2b Binary files /dev/null and b/reactos/base/applications/downloader/resources/9.bmp differ diff --git a/reactos/base/applications/downloader/resources/download.bmp b/reactos/base/applications/downloader/resources/download.bmp new file mode 100644 index 00000000000..09ff0a35183 Binary files /dev/null and b/reactos/base/applications/downloader/resources/download.bmp differ diff --git a/reactos/base/applications/downloader/resources/help.ico b/reactos/base/applications/downloader/resources/help.ico new file mode 100644 index 00000000000..e0373ec8db8 Binary files /dev/null and b/reactos/base/applications/downloader/resources/help.ico differ diff --git a/reactos/base/applications/downloader/resources/logo.bmp b/reactos/base/applications/downloader/resources/logo.bmp new file mode 100644 index 00000000000..4f10e49d3ef Binary files /dev/null and b/reactos/base/applications/downloader/resources/logo.bmp differ diff --git a/reactos/base/applications/downloader/resources/main.ico b/reactos/base/applications/downloader/resources/main.ico new file mode 100644 index 00000000000..4b6a2e455ce Binary files /dev/null and b/reactos/base/applications/downloader/resources/main.ico differ diff --git a/reactos/base/applications/downloader/resources/preferences.ico b/reactos/base/applications/downloader/resources/preferences.ico new file mode 100644 index 00000000000..c2b77570407 Binary files /dev/null and b/reactos/base/applications/downloader/resources/preferences.ico differ diff --git a/reactos/base/applications/downloader/resources/underline.bmp b/reactos/base/applications/downloader/resources/underline.bmp new file mode 100644 index 00000000000..7facc72707b Binary files /dev/null and b/reactos/base/applications/downloader/resources/underline.bmp differ diff --git a/reactos/base/applications/downloader/resources/uninstall.bmp b/reactos/base/applications/downloader/resources/uninstall.bmp new file mode 100644 index 00000000000..077cac9d4ae Binary files /dev/null and b/reactos/base/applications/downloader/resources/uninstall.bmp differ diff --git a/reactos/base/applications/downloader/resources/update.ico b/reactos/base/applications/downloader/resources/update.ico new file mode 100644 index 00000000000..82b4a1f986a Binary files /dev/null and b/reactos/base/applications/downloader/resources/update.ico differ diff --git a/reactos/base/applications/downloader/rsrc.rc b/reactos/base/applications/downloader/rsrc.rc new file mode 100644 index 00000000000..f504bad5dc7 --- /dev/null +++ b/reactos/base/applications/downloader/rsrc.rc @@ -0,0 +1,40 @@ +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +IDI_MAIN ICON DISCARDABLE "resources/main.ico" +IDI_UPDATE ICON DISCARDABLE "resources/update.ico" +IDI_HELP ICON DISCARDABLE "resources/help.ico" +IDI_PROF ICON DISCARDABLE "resources/preferences.ico" +IDB_LOGO BITMAP DISCARDABLE "resources/logo.bmp" +IDB_DOWNLOAD BITMAP DISCARDABLE "resources/download.bmp" +IDB_UNINSTALL BITMAP DISCARDABLE "resources/uninstall.bmp" +IDB_UNDERLINE BITMAP DISCARDABLE "resources/underline.bmp" +IDB_TREEVIEW_ICON_0 BITMAP DISCARDABLE "resources/0.bmp" +IDB_TREEVIEW_ICON_1 BITMAP DISCARDABLE "resources/1.bmp" +IDB_TREEVIEW_ICON_2 BITMAP DISCARDABLE "resources/2.bmp" +IDB_TREEVIEW_ICON_3 BITMAP DISCARDABLE "resources/3.bmp" +IDB_TREEVIEW_ICON_4 BITMAP DISCARDABLE "resources/4.bmp" +IDB_TREEVIEW_ICON_5 BITMAP DISCARDABLE "resources/5.bmp" +IDB_TREEVIEW_ICON_6 BITMAP DISCARDABLE "resources/6.bmp" +IDB_TREEVIEW_ICON_7 BITMAP DISCARDABLE "resources/7.bmp" +IDB_TREEVIEW_ICON_8 BITMAP DISCARDABLE "resources/8.bmp" +IDB_TREEVIEW_ICON_9 BITMAP DISCARDABLE "resources/9.bmp" +IDB_TREEVIEW_ICON_10 BITMAP DISCARDABLE "resources/10.bmp" +IDB_TREEVIEW_ICON_11 BITMAP DISCARDABLE "resources/11.bmp" +IDB_TREEVIEW_ICON_12 BITMAP DISCARDABLE "resources/12.bmp" +IDB_TREEVIEW_ICON_13 BITMAP DISCARDABLE "resources/13.bmp" + + +#include "lang/bg-BG.rc" +#include "lang/de-DE.rc" +#include "lang/el-GR.rc" +#include "lang/en-US.rc" +#include "lang/es-ES.rc" +#include "lang/fr-FR.rc" +#include "lang/id-ID.rc" +#include "lang/it-IT.rc" +#include "lang/no-NO.rc" +#include "lang/pl-PL.rc" +#include "lang/lt-LT.rc" +#include "lang/ru-RU.rc" +#include "lang/sk-SK.rc" +#include "lang/uk-UA.rc" diff --git a/reactos/base/applications/downloader/structures.h b/reactos/base/applications/downloader/structures.h new file mode 100644 index 00000000000..7aeee667866 --- /dev/null +++ b/reactos/base/applications/downloader/structures.h @@ -0,0 +1,26 @@ + +struct Application +{ + WCHAR Name[0x100]; + WCHAR RegName[0x100]; + WCHAR Version[0x100]; + WCHAR Maintainer[0x100]; + WCHAR Licence[0x100]; + WCHAR Description[0x400]; + WCHAR Location[0x100]; + WCHAR Depends[0x100]; + WCHAR PostInstallAction[0x100]; + struct Application* Next; +}; + +struct Category +{ + WCHAR Name[0x100]; + //WCHAR Description[0x100]; + int Icon; + HANDLE TreeviewItem; + struct Application* Apps; + struct Category* Next; + struct Category* Children; + struct Category* Parent; +}; diff --git a/reactos/base/applications/downloader/xml.c b/reactos/base/applications/downloader/xml.c new file mode 100644 index 00000000000..588f020ba52 --- /dev/null +++ b/reactos/base/applications/downloader/xml.c @@ -0,0 +1,236 @@ +/* PROJECT: ReactOS Downloader + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base\applications\downloader\xml.c + * PURPOSE: Parsing of application information xml files + * PROGRAMMERS: Maarten Bosma, Lester Kortenhoeven + */ + +#include +#include +#include +#include +#include +#include "structures.h" +#include "resources.h" + +BOOL TagOpen; +struct Category* Current; +struct Application* CurrentApplication; +char CurrentTag [0x100]; +extern WCHAR Strings [STRING_COUNT][MAX_STRING_LENGHT]; + +void tag_opened (void* usrdata, const char* tag, const char** arg) +{ + int i; + + if(!strcmp(tag, "tree") && !CurrentApplication) + { + // check version + } + + 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]); + } + } + } + + 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); +} + + +void text (void* usrdata, const char* data, int len) +{ + 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); + } +} + +void tag_closed (void* tree, const char* tag) +{ + CurrentTag[0] = 0; + + 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; + + if(Current) + return FALSE; + + 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; + } + } + + 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); + + if(!XML_Parse(parser, buffer, len, done)) + { + MessageBoxW(0,Strings[IDS_XMLERROR_2],0,0); + return FALSE; + } + } + + XML_ParserFree(parser); + fclose(file); + + return TRUE; +} + +void FreeApps (struct Application* Apps) +{ + if (Apps->Next) + FreeApps(Apps->Next); + + free(Apps); +} + +void FreeTree (struct Category* Node) +{ + if (Node->Children) + FreeTree(Node->Children); + + if (Node->Next) + FreeTree(Node->Next); + + if (Node->Apps) + FreeApps(Node->Apps); + + free(Node); +} diff --git a/reactos/boot/bootdata/packages/reactos.dff b/reactos/boot/bootdata/packages/reactos.dff index 03bc4af0424..1cc42cb4156 100644 --- a/reactos/boot/bootdata/packages/reactos.dff +++ b/reactos/boot/bootdata/packages/reactos.dff @@ -41,6 +41,8 @@ base\applications\cmdutils\lodctr\lodctr.exe 1 base\applications\cmdutils\more\more.exe 1 base\applications\cmdutils\xcopy\xcopy.exe 1 base\applications\control\control.exe 1 +base\applications\downloader\downloader.exe 1 +base\applications\downloader\downloader.xml 1 base\applications\dxdiag\dxdiag.exe 1 base\applications\fontview\fontview.exe 1 base\applications\mscutils\devmgmt\devmgmt.exe 1