mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 04:43:51 +00:00
[0.4.15][RAPPS] Backport current RAPPS into 0.4.15
This is a squashed backport of RAPPS from current master into the 0.4.15 release tree. All of these changes were deemed stable and complete. This backport includes the following commits:5bc6d59142
[RAPPS] Refresh item info after installer completes (#7697)d5ce3d28ab
[RAPPS] Don't display Freeware license string if the type is also Freeware (#7689)b35becef2e
[RAPPS] Set working directory for zip generated shortcuts (#7674)a23db39c8a
[RAPPS] Allow database to override download filename (#7668)c8b2c4c94d
[RAPPS] Check Let's Encrypt issuer prefix (#7650)72951421e6
[RAPPS] Reuse active pending downloads window (#7648)91b8923601
[RAPPS] Allow .zip generated installers to skip writing the DisplayIcon value (#7609)2834e5b3c8
[RAPPS] Initialize SHBrowseForFolder to current download folder (#7505)9164e9f85f
[RAPPS] Update Slovak (sk-SK) translation (#7450)8734889272
[RAPPS] Update Turkish (tr-TR) translation (#7372)16f1abe1c8
[RAPPS] Improve Romanian (ro-RO) translation (#7360)2f83e6a65d
[RAPPS] Use different mutex and title for AppWiz mode (#7350)301675c112
[RAPPS] Respect partial settings configuration (#7247)053939e27c
[RAPPS] Hide the main window during active download/install if the user closes it (#7014)3ff8adc553
[RAPPS] Protect database update with a mutex (#7006)4e59858941
[RAPPS] Change the "Welcome" text with a suitable explanatory one in APPWIZ-mode (#6655)2af6fd4def
[PSDK] Add GetMenuPosFromID() declaration in shlwapi.h
This commit is contained in:
parent
7791a36fc2
commit
b5c1fdc1cc
45 changed files with 1605 additions and 1402 deletions
|
@ -18,7 +18,7 @@ Also, each [Section] is language-independent and individual, you can override th
|
|||
program or any other field by adding a language-specific [Section.], followed by the language code.
|
||||
|
||||
NOTE: You can find a complete listing of LCIDs and language names here, includes neutral codes:
|
||||
<https://msdn.microsoft.com/en-us/library/windows/desktop/dd318693%28v=vs.85%29.aspx>
|
||||
<https://learn.microsoft.com/en-us/windows/win32/intl/language-identifier-constants-and-strings>
|
||||
|
||||
Now RAPPS also accepts neutral language codes, meaning that you can do things like this:
|
||||
|
||||
|
|
|
@ -158,7 +158,7 @@ CAppDB::EnumInstalledRootKey(UINT Index, REGSAM &RegSam)
|
|||
{
|
||||
// Loop for through all combinations.
|
||||
// Note that HKEY_CURRENT_USER\Software does not have a redirect
|
||||
// https://docs.microsoft.com/en-us/windows/win32/winprog64/shared-registry-keys#redirected-shared-and-reflected-keys-under-wow64
|
||||
// https://learn.microsoft.com/en-us/windows/win32/winprog64/shared-registry-keys#redirected-shared-and-reflected-keys-under-wow64
|
||||
if (Index < (IsSystem64Bit() ? 3 : 2))
|
||||
return GetRootKeyInfo(Index, RegSam);
|
||||
else
|
||||
|
|
|
@ -10,6 +10,14 @@
|
|||
#include "rapps.h"
|
||||
#include "appview.h"
|
||||
|
||||
static inline AppsCategories
|
||||
ClampAvailableCategory(AppsCategories Category)
|
||||
{
|
||||
if (Category <= ENUM_LASTCATEGORY)
|
||||
return Category;
|
||||
return ENUM_CAT_OTHER; // Treat future categories we don't know as Other
|
||||
}
|
||||
|
||||
CAppInfo::CAppInfo(const CStringW &Identifier, AppsCategories Category)
|
||||
: szIdentifier(Identifier), iCategory(Category)
|
||||
{
|
||||
|
@ -24,7 +32,7 @@ CAvailableApplicationInfo::CAvailableApplicationInfo(
|
|||
const CStringW &PkgName,
|
||||
AppsCategories Category,
|
||||
const CPathW &BasePath)
|
||||
: CAppInfo(PkgName, Category), m_Parser(Parser), m_ScrnshotRetrieved(false), m_LanguagesLoaded(false)
|
||||
: CAppInfo(PkgName, ClampAvailableCategory(Category)), m_Parser(Parser), m_ScrnshotRetrieved(false), m_LanguagesLoaded(false)
|
||||
{
|
||||
m_Parser->GetString(L"Name", szDisplayName);
|
||||
m_Parser->GetString(L"Version", szDisplayVersion);
|
||||
|
@ -163,16 +171,16 @@ CAvailableApplicationInfo::LicenseString()
|
|||
LicenseType licenseType;
|
||||
|
||||
if (IsKnownLicenseType(IntBuffer))
|
||||
{
|
||||
licenseType = static_cast<LicenseType>(IntBuffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
licenseType = LICENSE_NONE;
|
||||
|
||||
if (licenseType == LICENSE_NONE || licenseType == LICENSE_FREEWARE)
|
||||
{
|
||||
if (szLicenseString.CompareNoCase(L"Freeware") == 0)
|
||||
{
|
||||
licenseType = LICENSE_FREEWARE;
|
||||
szLicenseString = L"";
|
||||
szLicenseString = L""; // Don't display as "Freeware (Freeware)"
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -588,7 +596,7 @@ CInstalledApplicationInfo::GetInstallerType() const
|
|||
BOOL
|
||||
CInstalledApplicationInfo::UninstallApplication(UninstallCommandFlags Flags)
|
||||
{
|
||||
if (GetInstallerType() == INSTALLER_GENERATE)
|
||||
if (GetInstallerType() == INSTALLER_GENERATE && (Flags & UCF_SAMEPROCESS))
|
||||
{
|
||||
return UninstallGenerated(*this, Flags);
|
||||
}
|
||||
|
|
|
@ -16,6 +16,50 @@ using namespace Gdiplus;
|
|||
HICON g_hDefaultPackageIcon = NULL;
|
||||
static int g_DefaultPackageIconILIdx = I_IMAGENONE;
|
||||
|
||||
// **** Menu helpers ****
|
||||
|
||||
BOOL
|
||||
DeleteMenuEx(
|
||||
_In_ HMENU hMenu,
|
||||
_In_ UINT uPosition,
|
||||
_In_ UINT uFlags)
|
||||
{
|
||||
INT pos;
|
||||
MENUITEMINFOW mii = { sizeof(mii), MIIM_FTYPE, 0 };
|
||||
bool bIsValidItem1, bIsValidItem2;
|
||||
bool bIsSep1, bIsSep2;
|
||||
|
||||
if (uFlags & MF_BYPOSITION)
|
||||
pos = (INT)uPosition;
|
||||
else
|
||||
pos = ::GetMenuPosFromID(hMenu, uPosition);
|
||||
if (pos < 0)
|
||||
return FALSE;
|
||||
|
||||
bIsValidItem1 = ((pos > 0) && ::GetMenuItemInfoW(hMenu, pos - 1, TRUE, &mii));
|
||||
bIsSep1 = bIsValidItem1 && !!(mii.fType & MFT_SEPARATOR);
|
||||
|
||||
bIsValidItem2 = ::GetMenuItemInfoW(hMenu, pos + 1, TRUE, &mii);
|
||||
bIsSep2 = bIsValidItem2 && !!(mii.fType & MFT_SEPARATOR);
|
||||
|
||||
if (bIsSep1 && !bIsSep2 && !bIsValidItem2)
|
||||
pos = pos - 1; // Delete separator only if pos+1 has no item
|
||||
else if (!bIsSep1 && bIsSep2 && !bIsValidItem1)
|
||||
pos = pos + 1; // Delete separator only if pos-1 has no item
|
||||
else if (bIsSep1 && bIsSep2)
|
||||
pos = pos + 1;
|
||||
else
|
||||
pos = -1;
|
||||
|
||||
// Delete one of the separators if necessary
|
||||
if (pos != -1)
|
||||
::DeleteMenu(hMenu, pos, MF_BYPOSITION);
|
||||
|
||||
// Finally, delete the menu item itself.
|
||||
return ::DeleteMenu(hMenu, uPosition, uFlags);
|
||||
}
|
||||
// **** Menu helpers ****
|
||||
|
||||
// **** CMainToolbar ****
|
||||
|
||||
VOID
|
||||
|
@ -149,26 +193,28 @@ CMainToolbar::Create(HWND hwndParent)
|
|||
|
||||
AddButtons(_countof(Buttons), Buttons);
|
||||
|
||||
/* Remember ideal width to use as a max width of buttons */
|
||||
SIZE size;
|
||||
GetIdealSize(FALSE, &size);
|
||||
m_dButtonsWidthMax = size.cx;
|
||||
/* Remember the ideal width to use as a max width of buttons */
|
||||
UpdateMaxButtonsWidth();
|
||||
|
||||
return m_hWnd;
|
||||
}
|
||||
|
||||
VOID
|
||||
CMainToolbar::HideButtonCaption()
|
||||
void
|
||||
CMainToolbar::ShowButtonCaption(bool bShow)
|
||||
{
|
||||
DWORD dCurrentExStyle = (DWORD)SendMessageW(TB_GETEXTENDEDSTYLE, 0, 0);
|
||||
if (bShow)
|
||||
SendMessageW(TB_SETEXTENDEDSTYLE, 0, dCurrentExStyle & ~TBSTYLE_EX_MIXEDBUTTONS);
|
||||
else
|
||||
SendMessageW(TB_SETEXTENDEDSTYLE, 0, dCurrentExStyle | TBSTYLE_EX_MIXEDBUTTONS);
|
||||
}
|
||||
|
||||
VOID
|
||||
CMainToolbar::ShowButtonCaption()
|
||||
void
|
||||
CMainToolbar::UpdateMaxButtonsWidth()
|
||||
{
|
||||
DWORD dCurrentExStyle = (DWORD)SendMessageW(TB_GETEXTENDEDSTYLE, 0, 0);
|
||||
SendMessageW(TB_SETEXTENDEDSTYLE, 0, dCurrentExStyle & ~TBSTYLE_EX_MIXEDBUTTONS);
|
||||
SIZE size;
|
||||
GetIdealSize(FALSE, &size);
|
||||
m_dButtonsWidthMax = size.cx;
|
||||
}
|
||||
|
||||
DWORD
|
||||
|
@ -267,21 +313,6 @@ CAppRichEdit::InsertTextWithString(UINT StringID, const CStringW &Text, DWORD Te
|
|||
LoadAndInsertText(StringID, Text, TextFlags);
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
CAppRichEdit::SetWelcomeText()
|
||||
{
|
||||
CStringW szText;
|
||||
|
||||
szText.LoadStringW(IDS_WELCOME_TITLE);
|
||||
SetText(szText, CFE_BOLD);
|
||||
|
||||
szText.LoadStringW(IDS_WELCOME_TEXT);
|
||||
InsertText(szText, 0);
|
||||
|
||||
szText.LoadStringW(IDS_WELCOME_URL);
|
||||
InsertText(szText, CFM_LINK);
|
||||
}
|
||||
// **** CAppRichEdit ****
|
||||
|
||||
int
|
||||
|
@ -924,10 +955,12 @@ CAppInfoDisplay::Create(HWND hwndParent)
|
|||
}
|
||||
|
||||
VOID
|
||||
CAppInfoDisplay::ShowAppInfo(CAppInfo *Info)
|
||||
CAppInfoDisplay::ShowAppInfo(CAppInfo &Info, bool OnlyUpdateText)
|
||||
{
|
||||
if (!OnlyUpdateText)
|
||||
{
|
||||
CStringW ScrnshotLocation;
|
||||
if (Info->RetrieveScreenshot(ScrnshotLocation))
|
||||
if (Info.RetrieveScreenshot(ScrnshotLocation))
|
||||
{
|
||||
ScrnshotPrev->DisplayImage(ScrnshotLocation);
|
||||
}
|
||||
|
@ -935,16 +968,46 @@ CAppInfoDisplay::ShowAppInfo(CAppInfo *Info)
|
|||
{
|
||||
ScrnshotPrev->DisplayEmpty();
|
||||
}
|
||||
}
|
||||
ResizeChildren();
|
||||
Info->ShowAppInfo(RichEdit);
|
||||
Info.ShowAppInfo(RichEdit);
|
||||
}
|
||||
|
||||
VOID
|
||||
CAppInfoDisplay::SetWelcomeText()
|
||||
void
|
||||
CAppInfoDisplay::SetWelcomeText(bool bAppwiz)
|
||||
{
|
||||
CStringW szText;
|
||||
|
||||
ScrnshotPrev->DisplayEmpty();
|
||||
ResizeChildren();
|
||||
RichEdit->SetWelcomeText();
|
||||
|
||||
// Display the standard banner in normal mode, or
|
||||
// the specific "Add/Remove Programs" in APPWIZ-mode.
|
||||
if (!bAppwiz)
|
||||
{
|
||||
szText.LoadStringW(IDS_WELCOME_TITLE);
|
||||
RichEdit->SetText(szText, CFE_BOLD);
|
||||
RichEdit->InsertText(L"\n\n", 0);
|
||||
|
||||
szText.LoadStringW(IDS_WELCOME_TEXT);
|
||||
RichEdit->InsertText(szText, 0);
|
||||
|
||||
szText.LoadStringW(IDS_WELCOME_URL);
|
||||
RichEdit->InsertText(szText, CFM_LINK);
|
||||
}
|
||||
else
|
||||
{
|
||||
szText.LoadStringW(IDS_APPWIZ_TITLE);
|
||||
RichEdit->SetText(szText, CFE_BOLD);
|
||||
RichEdit->InsertText(L"\n\n", 0);
|
||||
|
||||
szText.LoadStringW(IDS_APPWIZ_TEXT1);
|
||||
RichEdit->InsertText(szText, 0);
|
||||
RichEdit->InsertText(L"\n", 0);
|
||||
|
||||
szText.LoadStringW(IDS_APPWIZ_TEXT2);
|
||||
RichEdit->InsertText(szText, 0);
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
|
@ -1113,19 +1176,11 @@ CAppsListView::SetWatermark(const CStringW &Text)
|
|||
m_Watermark = Text;
|
||||
}
|
||||
|
||||
VOID
|
||||
CAppsListView::SetCheckboxesVisible(BOOL bIsVisible)
|
||||
void
|
||||
CAppsListView::ShowCheckboxes(bool bShow)
|
||||
{
|
||||
if (bIsVisible)
|
||||
{
|
||||
SetExtendedListViewStyle(LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetExtendedListViewStyle(LVS_EX_FULLROWSELECT);
|
||||
}
|
||||
|
||||
bHasCheckboxes = bIsVisible;
|
||||
SetExtendedListViewStyle((bShow ? LVS_EX_CHECKBOXES : 0) | LVS_EX_FULLROWSELECT);
|
||||
bHasCheckboxes = bShow;
|
||||
}
|
||||
|
||||
VOID
|
||||
|
@ -1258,7 +1313,7 @@ CAppsListView::Create(HWND hwndParent)
|
|||
|
||||
if (hwnd)
|
||||
{
|
||||
SetCheckboxesVisible(FALSE);
|
||||
ShowCheckboxes(false);
|
||||
}
|
||||
|
||||
#pragma push_macro("SubclassWindow")
|
||||
|
@ -1359,16 +1414,18 @@ CAppsListView::SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
|
|||
|
||||
/* Add columns to ListView */
|
||||
szText.LoadStringW(IDS_APP_NAME);
|
||||
AddColumn(ColumnCount++, szText, 250, LVCFMT_LEFT);
|
||||
AddColumn(ColumnCount++, szText, 368, LVCFMT_LEFT);
|
||||
|
||||
szText.LoadStringW(IDS_APP_INST_VERSION);
|
||||
AddColumn(ColumnCount++, szText, 90, LVCFMT_RIGHT);
|
||||
|
||||
#if 0 // This column is not currently useful for installed apps.
|
||||
szText.LoadStringW(IDS_APP_DESCRIPTION);
|
||||
AddColumn(ColumnCount++, szText, 300, LVCFMT_LEFT);
|
||||
#endif
|
||||
|
||||
// disable checkboxes
|
||||
SetCheckboxesVisible(FALSE);
|
||||
// Disable checkboxes
|
||||
ShowCheckboxes(false);
|
||||
break;
|
||||
|
||||
case AppViewTypeAvailableApps:
|
||||
|
@ -1383,8 +1440,8 @@ CAppsListView::SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
|
|||
szText.LoadStringW(IDS_APP_DESCRIPTION);
|
||||
AddColumn(ColumnCount++, szText, 300, LVCFMT_LEFT);
|
||||
|
||||
// enable checkboxes
|
||||
SetCheckboxesVisible(TRUE);
|
||||
// Enable checkboxes
|
||||
ShowCheckboxes(true);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1490,6 +1547,41 @@ CApplicationView::ProcessWindowMessage(
|
|||
bSuccess &= CreateListView();
|
||||
bSuccess &= CreateAppInfoDisplay();
|
||||
|
||||
/* APPWIZ-mode: Remove the unneeded menu items and toolbar buttons */
|
||||
if (m_MainWindow->m_bAppwizMode)
|
||||
{
|
||||
HMENU hMenu;
|
||||
|
||||
/* Delete the "Settings" item in the "File" sub-menu */
|
||||
hMenu = ::GetSubMenu(m_MainWindow->GetMenu(), 0);
|
||||
DeleteMenuEx(hMenu, ID_SETTINGS, MF_BYCOMMAND);
|
||||
|
||||
/* Remove the menu items: ID_INSTALL, ID_RESETDB */
|
||||
hMenu = GetMenu();
|
||||
DeleteMenuEx(hMenu, ID_INSTALL, MF_BYCOMMAND);
|
||||
DeleteMenuEx(hMenu, ID_RESETDB, MF_BYCOMMAND);
|
||||
|
||||
/* Remove the toolbar buttons:
|
||||
* ID_INSTALL, ID_CHECK_ALL, ID_RESETDB
|
||||
* We only keep:
|
||||
* ID_UNINSTALL, ID_MODIFY, ID_REFRESH */
|
||||
TBBUTTONINFO info = { sizeof(info), 0 };
|
||||
int index;
|
||||
|
||||
index = m_Toolbar->GetButtonInfo(ID_INSTALL, &info);
|
||||
if (index >= 0) m_Toolbar->DeleteButton(index);
|
||||
|
||||
index = m_Toolbar->GetButtonInfo(ID_CHECK_ALL, &info);
|
||||
if (index >= 0) m_Toolbar->DeleteButton(index);
|
||||
|
||||
index = m_Toolbar->GetButtonInfo(ID_RESETDB, &info);
|
||||
if (index >= 0) m_Toolbar->DeleteButton(index);
|
||||
|
||||
/* Update the ideal width to use as a max width of buttons */
|
||||
m_Toolbar->UpdateMaxButtonsWidth();
|
||||
}
|
||||
|
||||
/* Resize the toolbar */
|
||||
m_Toolbar->AutoSize();
|
||||
|
||||
RECT rTop;
|
||||
|
@ -1716,6 +1808,22 @@ CApplicationView::SetRedraw(BOOL bRedraw)
|
|||
m_ListView->SetRedraw(bRedraw);
|
||||
}
|
||||
|
||||
void
|
||||
CApplicationView::RefreshAvailableItem(PCWSTR PackageName)
|
||||
{
|
||||
if (ApplicationViewType != AppViewTypeAvailableApps || !PackageName)
|
||||
return;
|
||||
CAppInfo *pApp;
|
||||
for (UINT i = 0; (pApp = (CAppInfo*)m_ListView->GetItemData(i)) != NULL; ++i)
|
||||
{
|
||||
if (pApp->szIdentifier.CompareNoCase(PackageName) == 0)
|
||||
{
|
||||
RefreshDetailsPane(*pApp, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
CApplicationView::SetFocusOnSearchBar()
|
||||
{
|
||||
|
@ -1728,7 +1836,7 @@ CApplicationView::OnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
|||
if (wParam == SIZE_MINIMIZED)
|
||||
return;
|
||||
|
||||
/* Size tool bar */
|
||||
/* Resize the toolbar */
|
||||
m_Toolbar->AutoSize();
|
||||
|
||||
/* Automatically hide captions */
|
||||
|
@ -1737,11 +1845,11 @@ CApplicationView::OnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
|||
|
||||
if (dSearchbarMargin > dToolbarTreshold)
|
||||
{
|
||||
m_Toolbar->ShowButtonCaption();
|
||||
m_Toolbar->ShowButtonCaption(true);
|
||||
}
|
||||
else if (dSearchbarMargin < dToolbarTreshold)
|
||||
{
|
||||
m_Toolbar->HideButtonCaption();
|
||||
m_Toolbar->ShowButtonCaption(false);
|
||||
}
|
||||
|
||||
RECT r = {0, 0, LOWORD(lParam), HIWORD(lParam)};
|
||||
|
@ -1917,9 +2025,10 @@ CApplicationView::Create(HWND hwndParent)
|
|||
{
|
||||
RECT r = {0, 0, 0, 0};
|
||||
|
||||
HMENU menu = GetSubMenu(LoadMenuW(hInst, MAKEINTRESOURCEW(IDR_APPLICATIONMENU)), 0);
|
||||
// Pick the "Programs" sub-menu for building the context menu.
|
||||
HMENU hMenu = ::GetSubMenu(m_MainWindow->GetMenu(), 1);
|
||||
|
||||
return CWindowImpl::Create(hwndParent, r, L"", WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0, menu);
|
||||
return CWindowImpl::Create(hwndParent, r, L"", WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0, hMenu);
|
||||
}
|
||||
|
||||
BOOL
|
||||
|
@ -1930,33 +2039,42 @@ CApplicationView::SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
|
|||
return FALSE;
|
||||
}
|
||||
ApplicationViewType = AppType;
|
||||
m_AppsInfo->SetWelcomeText();
|
||||
m_AppsInfo->SetWelcomeText(m_MainWindow->m_bAppwizMode);
|
||||
|
||||
HMENU hMenu = ::GetMenu(m_hWnd);
|
||||
switch (AppType)
|
||||
{
|
||||
case AppViewTypeInstalledApps:
|
||||
EnableMenuItem(hMenu, ID_REGREMOVE, MF_ENABLED);
|
||||
{
|
||||
EnableMenuItem(hMenu, ID_INSTALL, MF_GRAYED);
|
||||
EnableMenuItem(hMenu, ID_UNINSTALL, MF_ENABLED);
|
||||
EnableMenuItem(hMenu, ID_MODIFY, MF_ENABLED);
|
||||
EnableMenuItem(hMenu, ID_REGREMOVE, MF_ENABLED);
|
||||
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, FALSE);
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, TRUE);
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, TRUE);
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_CHECK_ALL, FALSE);
|
||||
break;
|
||||
}
|
||||
|
||||
case AppViewTypeAvailableApps:
|
||||
EnableMenuItem(hMenu, ID_REGREMOVE, MF_GRAYED);
|
||||
{
|
||||
// We shouldn't get there in APPWIZ-mode.
|
||||
ATLASSERT(!m_MainWindow->m_bAppwizMode);
|
||||
|
||||
EnableMenuItem(hMenu, ID_INSTALL, MF_ENABLED);
|
||||
EnableMenuItem(hMenu, ID_UNINSTALL, MF_GRAYED);
|
||||
EnableMenuItem(hMenu, ID_MODIFY, MF_GRAYED);
|
||||
EnableMenuItem(hMenu, ID_REGREMOVE, MF_GRAYED);
|
||||
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, TRUE);
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, FALSE);
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, FALSE);
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_CHECK_ALL, TRUE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -2035,6 +2153,12 @@ CApplicationView::RestoreListSelection(const RESTORELISTSELECTION &Restore)
|
|||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
CApplicationView::RefreshDetailsPane(CAppInfo &Info, bool OnlyUpdateText)
|
||||
{
|
||||
m_AppsInfo->ShowAppInfo(Info, OnlyUpdateText);
|
||||
}
|
||||
|
||||
// this function is called when a item of listview get focus.
|
||||
// CallbackParam is the param passed to listview when adding the item (the one getting focus now).
|
||||
VOID
|
||||
|
@ -2043,7 +2167,7 @@ CApplicationView::ItemGetFocus(LPVOID CallbackParam)
|
|||
if (CallbackParam)
|
||||
{
|
||||
CAppInfo *Info = static_cast<CAppInfo *>(CallbackParam);
|
||||
m_AppsInfo->ShowAppInfo(Info);
|
||||
RefreshDetailsPane(*Info);
|
||||
|
||||
if (ApplicationViewType == AppViewTypeInstalledApps)
|
||||
{
|
||||
|
|
|
@ -28,6 +28,7 @@ extern "C" {
|
|||
|
||||
#define REGPATH_UNINSTALL L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
|
||||
|
||||
#define DB_NONE L"!" // Skip/Ignore
|
||||
#define DB_GENINST_FILES L"Files"
|
||||
#define DB_GENINST_DIR L"Dir"
|
||||
#define DB_GENINST_ICON L"Icon"
|
||||
|
@ -230,6 +231,8 @@ GetCustomIconPath(InstallInfo &Info, CStringW &Path)
|
|||
{
|
||||
if (*GetGenerateString(DB_GENINST_ICON, Path))
|
||||
{
|
||||
if (Path.Compare(DB_NONE) == 0)
|
||||
return HRESULT_FROM_WIN32(ERROR_CAN_NOT_COMPLETE);
|
||||
Path = BuildPath(Info.InstallDir, Path);
|
||||
int idx = PathParseIconLocation(Path.GetBuffer());
|
||||
Path.ReleaseBuffer();
|
||||
|
@ -306,6 +309,9 @@ CreateShortcut(const CStringW &Target)
|
|||
{
|
||||
if (SUCCEEDED(hr = link->SetPath(Target)))
|
||||
{
|
||||
SplitFileAndDirectory(Target, &tmp);
|
||||
link->SetWorkingDirectory(tmp);
|
||||
|
||||
if (SUCCEEDED(GetCustomIconPath(Info, tmp)))
|
||||
{
|
||||
LPWSTR p = tmp.GetBuffer();
|
||||
|
@ -432,7 +438,7 @@ ExtractAndInstallThread(LPVOID Parameter)
|
|||
{
|
||||
const BOOL PerUserModeDefault = TRUE;
|
||||
InstallInfo &Info = *static_cast<InstallInfo *>(g_pInfo);
|
||||
LPCWSTR AppName = Info.AppName, Archive = Info.ArchivePath, None = L"!";
|
||||
LPCWSTR AppName = Info.AppName, Archive = Info.ArchivePath, None = DB_NONE;
|
||||
CStringW installdir, tempdir, files, shortcut, tmp;
|
||||
HRESULT hr;
|
||||
CRegKey arpkey;
|
||||
|
@ -534,9 +540,9 @@ ExtractAndInstallThread(LPVOID Parameter)
|
|||
(tmp = tmp.Mid(0, cch)).AppendFormat(unparamsfmt, L" /S", modechar, bitness, arpkeyname);
|
||||
WriteArpEntry(L"QuietUninstallString", tmp);
|
||||
|
||||
if (GetCustomIconPath(Info, tmp) != S_OK)
|
||||
tmp = Info.MainApp;
|
||||
WriteArpEntry(L"DisplayIcon", tmp);
|
||||
hr = GetCustomIconPath(Info, tmp);
|
||||
if (hr != HRESULT_FROM_WIN32(ERROR_CAN_NOT_COMPLETE))
|
||||
WriteArpEntry(L"DisplayIcon", hr == S_OK ? tmp : Info.MainApp);
|
||||
|
||||
if (*GetCommonString(DB_VERSION, tmp))
|
||||
WriteArpEntry(L"DisplayVersion", tmp);
|
||||
|
|
|
@ -81,8 +81,10 @@ CSideTreeView::~CSideTreeView()
|
|||
// **** CSideTreeView ****
|
||||
|
||||
// **** CMainWindow ****
|
||||
HWND CMainWindow::m_hLastFocus = NULL;
|
||||
bool CMainWindow::m_PendingInstalledViewRefresh = false;
|
||||
|
||||
CMainWindow::CMainWindow(CAppDB *db, BOOL bAppwiz) : m_ClientPanel(NULL), m_Db(db), bAppwizMode(bAppwiz), SelectedEnumType(ENUM_ALL_INSTALLED)
|
||||
CMainWindow::CMainWindow(CAppDB *db, BOOL bAppwiz) : m_ClientPanel(NULL), m_Db(db), m_bAppwizMode(bAppwiz), SelectedEnumType(ENUM_ALL_INSTALLED)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -100,6 +102,10 @@ CMainWindow::InitCategoriesList()
|
|||
m_TreeView->AddCategory(hRootItemInstalled, IDS_APPLICATIONS, IDI_APPS);
|
||||
m_TreeView->AddCategory(hRootItemInstalled, IDS_UPDATES, IDI_APPUPD);
|
||||
|
||||
// Do not show any other categories in APPWIZ-mode.
|
||||
if (m_bAppwizMode)
|
||||
goto Finish;
|
||||
|
||||
m_TreeView->AddCategory(TVI_ROOT, IDS_SELECTEDFORINST, IDI_SELECTEDFORINST);
|
||||
|
||||
hRootItemAvailable = m_TreeView->AddCategory(TVI_ROOT, IDS_AVAILABLEFORINST, IDI_CATEGORY);
|
||||
|
@ -120,10 +126,12 @@ CMainWindow::InitCategoriesList()
|
|||
m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_THEMES, IDI_CAT_THEMES);
|
||||
m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_OTHER, IDI_CAT_OTHER);
|
||||
|
||||
Finish:
|
||||
m_TreeView->SetImageList();
|
||||
m_TreeView->Expand(hRootItemInstalled, TVE_EXPAND);
|
||||
if (!m_bAppwizMode)
|
||||
m_TreeView->Expand(hRootItemAvailable, TVE_EXPAND);
|
||||
m_TreeView->SelectItem(bAppwizMode ? hRootItemInstalled : hRootItemAvailable);
|
||||
m_TreeView->SelectItem(m_bAppwizMode ? hRootItemInstalled : hRootItemAvailable);
|
||||
}
|
||||
|
||||
BOOL
|
||||
|
@ -298,6 +306,7 @@ CMainWindow::CheckAvailable()
|
|||
{
|
||||
if (m_Db->GetAvailableCount() == 0)
|
||||
{
|
||||
CUpdateDatabaseMutex lock;
|
||||
m_Db->RemoveCached();
|
||||
m_Db->UpdateAvailable();
|
||||
}
|
||||
|
@ -312,13 +321,13 @@ CMainWindow::ProcessWindowMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lPa
|
|||
case WM_CREATE:
|
||||
if (!InitControls())
|
||||
::PostMessageW(hwnd, WM_CLOSE, 0, 0);
|
||||
::PostMessageW(hwnd, DM_REPOSITION, 0, 0);
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
{
|
||||
ShowWindow(SW_HIDE);
|
||||
hMainWnd = NULL;
|
||||
SaveSettings(hwnd, &SettingsInfo);
|
||||
|
||||
FreeLogs();
|
||||
|
||||
delete m_ClientPanel;
|
||||
|
@ -327,6 +336,41 @@ CMainWindow::ProcessWindowMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lPa
|
|||
return 0;
|
||||
}
|
||||
|
||||
case WM_CLOSE:
|
||||
ShowWindow(SW_HIDE);
|
||||
return g_Busy;
|
||||
|
||||
case WM_NOTIFY_OPERATIONCOMPLETED:
|
||||
if (!g_Busy && !IsWindowVisible())
|
||||
SendMessage(WM_CLOSE, 0, 0);
|
||||
break;
|
||||
|
||||
case WM_NOTIFY_INSTALLERFINISHED:
|
||||
m_PendingInstalledViewRefresh = true; // Something just installed, our uninstall list is probably outdated
|
||||
m_ApplicationView->RefreshAvailableItem((PCWSTR)lParam);
|
||||
break;
|
||||
|
||||
case DM_REPOSITION:
|
||||
EmulateDialogReposition(hwnd); // We are not a real dialog, we need help from a real one
|
||||
break;
|
||||
|
||||
case WM_ACTIVATE:
|
||||
if (LOWORD(wParam) == WA_INACTIVE)
|
||||
m_hLastFocus = ::GetFocus();
|
||||
break;
|
||||
|
||||
case WM_SETFOCUS:
|
||||
if (m_hLastFocus)
|
||||
::SetFocus(m_hLastFocus);
|
||||
break;
|
||||
|
||||
case WM_NEXTDLGCTL:
|
||||
if (!LOWORD(lParam))
|
||||
HandleTabOrder(wParam ? -1 : 1);
|
||||
else if (wParam)
|
||||
::SetFocus((HWND)wParam);
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
OnCommand(wParam, lParam);
|
||||
break;
|
||||
|
@ -337,6 +381,22 @@ CMainWindow::ProcessWindowMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lPa
|
|||
|
||||
switch (data->code)
|
||||
{
|
||||
case TVN_ITEMEXPANDING:
|
||||
{
|
||||
if (data->hwndFrom == m_TreeView->m_hWnd)
|
||||
{
|
||||
// APPWIZ-mode: forbid item collapse.
|
||||
// FIXME: Prevent collapse (COMCTL32 is buggy)
|
||||
// https://bugs.winehq.org/show_bug.cgi?id=53727
|
||||
if (m_bAppwizMode && (((LPNMTREEVIEW)lParam)->action & TVE_TOGGLE) == TVE_COLLAPSE)
|
||||
{
|
||||
theResult = TRUE;
|
||||
return TRUE; // Handled
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case TVN_SELCHANGED:
|
||||
{
|
||||
if (data->hwndFrom == m_TreeView->m_hWnd)
|
||||
|
@ -556,9 +616,12 @@ CMainWindow::OnCommand(WPARAM wParam, LPARAM lParam)
|
|||
break;
|
||||
|
||||
case ID_RESETDB:
|
||||
{
|
||||
CUpdateDatabaseMutex lock;
|
||||
m_Db->RemoveCached();
|
||||
UpdateApplicationsList(SelectedEnumType, bReload);
|
||||
break;
|
||||
}
|
||||
|
||||
case ID_HELP:
|
||||
MessageBoxW(L"Help not implemented yet", NULL, MB_OK);
|
||||
|
@ -586,8 +649,16 @@ CMainWindow::UpdateStatusBarText()
|
|||
if (m_StatusBar)
|
||||
{
|
||||
CStringW szBuffer;
|
||||
szBuffer.Format(IDS_APPS_COUNT, m_ApplicationView->GetItemCount());
|
||||
|
||||
// Append the number of selected apps if not in APPWIZ-mode.
|
||||
if (!m_bAppwizMode)
|
||||
{
|
||||
CStringW szBuffer2;
|
||||
szBuffer2.Format(IDS_APPS_SELECT_COUNT, m_Selected.GetCount());
|
||||
szBuffer += szBuffer2;
|
||||
}
|
||||
|
||||
szBuffer.Format(IDS_APPS_COUNT, m_ApplicationView->GetItemCount(), m_Selected.GetCount());
|
||||
m_StatusBar->SetText(szBuffer);
|
||||
}
|
||||
}
|
||||
|
@ -612,6 +683,13 @@ CMainWindow::AddApplicationsToView(CAtlList<CAppInfo *> &List)
|
|||
VOID
|
||||
CMainWindow::UpdateApplicationsList(AppsCategories EnumType, BOOL bReload, BOOL bCheckAvailable)
|
||||
{
|
||||
// Only installed applications should be enumerated in APPWIZ-mode.
|
||||
if (m_bAppwizMode && !IsInstalledEnum(EnumType))
|
||||
{
|
||||
ATLASSERT(FALSE && "Should not be called in APPWIZ-mode");
|
||||
return;
|
||||
}
|
||||
|
||||
bUpdating = TRUE;
|
||||
|
||||
if (HCURSOR hCursor = LoadCursor(NULL, IDC_APPSTARTING))
|
||||
|
@ -624,6 +702,12 @@ CMainWindow::UpdateApplicationsList(AppsCategories EnumType, BOOL bReload, BOOL
|
|||
if (bCheckAvailable)
|
||||
CheckAvailable();
|
||||
|
||||
if (m_PendingInstalledViewRefresh && IsInstalledEnum(EnumType) && !IsInstalledEnum(SelectedEnumType))
|
||||
{
|
||||
m_PendingInstalledViewRefresh = FALSE;
|
||||
bReload = TRUE; // Reload because we are switching from Available to Installed after something installed
|
||||
}
|
||||
|
||||
BOOL TryRestoreSelection = SelectedEnumType == EnumType;
|
||||
if (SelectedEnumType != EnumType)
|
||||
SelectedEnumType = EnumType;
|
||||
|
@ -650,6 +734,9 @@ CMainWindow::UpdateApplicationsList(AppsCategories EnumType, BOOL bReload, BOOL
|
|||
}
|
||||
else if (IsAvailableEnum(EnumType))
|
||||
{
|
||||
// We shouldn't get there in APPWIZ-mode.
|
||||
ATLASSERT(!m_bAppwizMode);
|
||||
|
||||
if (bReload)
|
||||
m_Db->UpdateAvailable();
|
||||
|
||||
|
@ -709,8 +796,7 @@ CMainWindow::GetWndClassInfo()
|
|||
HWND
|
||||
CMainWindow::Create()
|
||||
{
|
||||
CStringW szWindowName;
|
||||
szWindowName.LoadStringW(IDS_APPTITLE);
|
||||
const CStringW szWindowName(MAKEINTRESOURCEW(m_bAppwizMode ? IDS_APPWIZ_TITLE : IDS_APPTITLE));
|
||||
|
||||
RECT r = {
|
||||
(SettingsInfo.bSaveWndPos ? SettingsInfo.Left : CW_USEDEFAULT),
|
||||
|
@ -756,16 +842,7 @@ CMainWindow::ItemCheckStateChanged(BOOL bChecked, LPVOID CallbackParam)
|
|||
BOOL
|
||||
CMainWindow::InstallApplication(CAppInfo *Info)
|
||||
{
|
||||
if (Info)
|
||||
{
|
||||
if (DownloadApplication(Info))
|
||||
{
|
||||
UpdateApplicationsList(SelectedEnumType);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return Info && DownloadApplication(Info);
|
||||
}
|
||||
|
||||
BOOL
|
||||
|
|
|
@ -41,6 +41,7 @@ enum AppsCategories
|
|||
ENUM_CAT_THEMES,
|
||||
ENUM_CAT_OTHER,
|
||||
ENUM_CAT_SELECTED,
|
||||
ENUM_LASTCATEGORY = ENUM_CAT_SELECTED - 1,
|
||||
ENUM_ALL_INSTALLED = 30,
|
||||
ENUM_INSTALLED_APPLICATIONS,
|
||||
ENUM_UPDATES,
|
||||
|
@ -54,6 +55,12 @@ enum AppsCategories
|
|||
inline BOOL
|
||||
IsAvailableEnum(INT x)
|
||||
{
|
||||
C_ASSERT(ENUM_CAT_AUDIO == 1 && ENUM_CAT_THEMES == 15 && ENUM_CAT_OTHER == 16);
|
||||
C_ASSERT(ENUM_LASTCATEGORY >= ENUM_CAT_OTHER);
|
||||
C_ASSERT(ENUM_LASTCATEGORY < ENUM_CAT_SELECTED);
|
||||
C_ASSERT(ENUM_LASTCATEGORY < ENUM_INSTALLED_MIN);
|
||||
C_ASSERT(ENUM_CAT_SELECTED < ENUM_INSTALLED_MIN);
|
||||
|
||||
return (x >= ENUM_AVAILABLE_MIN && x <= ENUM_AVAILABLE_MAX);
|
||||
}
|
||||
|
||||
|
@ -68,7 +75,9 @@ enum UninstallCommandFlags
|
|||
UCF_NONE = 0x00,
|
||||
UCF_MODIFY = 0x01,
|
||||
UCF_SILENT = 0x02,
|
||||
UCF_SAMEPROCESS = 0x04,
|
||||
};
|
||||
DEFINE_ENUM_FLAG_OPERATORS(UninstallCommandFlags);
|
||||
|
||||
enum InstallerType
|
||||
{
|
||||
|
@ -82,6 +91,7 @@ enum InstallerType
|
|||
#define DB_REGNAME L"RegName"
|
||||
#define DB_INSTALLER L"Installer"
|
||||
#define DB_SCOPE L"Scope" // User or Machine
|
||||
#define DB_SAVEAS L"SaveAs"
|
||||
|
||||
#define DB_GENINSTSECTION L"Generate"
|
||||
#define GENERATE_ARPSUBKEY L"RApps" // Our uninstall data is stored here
|
||||
|
|
|
@ -89,8 +89,6 @@ class CAppRichEdit : public CUiWindow<CRichEdit>
|
|||
LoadAndInsertText(UINT uStringID, DWORD StringFlags);
|
||||
VOID
|
||||
InsertTextWithString(UINT StringID, const CStringW &Text, DWORD TextFlags);
|
||||
VOID
|
||||
SetWelcomeText();
|
||||
};
|
||||
|
||||
int
|
||||
|
@ -177,9 +175,9 @@ class CAppInfoDisplay : public CUiWindow<CWindowImpl<CAppInfoDisplay>>
|
|||
Create(HWND hwndParent);
|
||||
|
||||
VOID
|
||||
ShowAppInfo(CAppInfo *Info);
|
||||
VOID
|
||||
SetWelcomeText();
|
||||
ShowAppInfo(CAppInfo &Info, bool OnlyUpdateText = false);
|
||||
void
|
||||
SetWelcomeText(bool bAppwiz);
|
||||
VOID
|
||||
OnCommand(WPARAM wParam, LPARAM lParam);
|
||||
|
||||
|
@ -195,7 +193,7 @@ class CAppsListView : public CUiWindow<CWindowImpl<CAppsListView, CListView>>
|
|||
};
|
||||
|
||||
BOOL bIsAscending = TRUE;
|
||||
BOOL bHasCheckboxes = FALSE;
|
||||
bool bHasCheckboxes = false;
|
||||
|
||||
INT ItemCount = 0;
|
||||
INT CheckedItemCount = 0;
|
||||
|
@ -224,8 +222,9 @@ class CAppsListView : public CUiWindow<CWindowImpl<CAppsListView, CListView>>
|
|||
|
||||
VOID
|
||||
SetWatermark(const CStringW &Text);
|
||||
VOID
|
||||
SetCheckboxesVisible(BOOL bIsVisible);
|
||||
|
||||
void
|
||||
ShowCheckboxes(bool bShow);
|
||||
|
||||
VOID
|
||||
ColumnClick(LPNMLISTVIEW pnmv);
|
||||
|
@ -293,10 +292,11 @@ class CMainToolbar : public CUiWindow<CToolbar<>>
|
|||
HWND
|
||||
Create(HWND hwndParent);
|
||||
|
||||
VOID
|
||||
HideButtonCaption();
|
||||
VOID
|
||||
ShowButtonCaption();
|
||||
void
|
||||
ShowButtonCaption(bool bShow);
|
||||
|
||||
void
|
||||
UpdateMaxButtonsWidth();
|
||||
|
||||
DWORD
|
||||
GetMaxButtonsWidth() const;
|
||||
|
@ -388,6 +388,8 @@ class CApplicationView : public CUiWindow<CWindowImpl<CApplicationView>>
|
|||
void
|
||||
SetRedraw(BOOL bRedraw);
|
||||
void
|
||||
RefreshAvailableItem(PCWSTR PackageName);
|
||||
void
|
||||
SetFocusOnSearchBar();
|
||||
BOOL
|
||||
SetDisplayAppType(APPLICATION_VIEW_TYPE AppType);
|
||||
|
@ -415,6 +417,9 @@ class CApplicationView : public CUiWindow<CWindowImpl<CApplicationView>>
|
|||
VOID
|
||||
RestoreListSelection(const RESTORELISTSELECTION &Restore);
|
||||
|
||||
VOID
|
||||
RefreshDetailsPane(CAppInfo &Info, bool OnlyUpdateText = false);
|
||||
|
||||
// this function is called when a item of listview get focus.
|
||||
// CallbackParam is the param passed to listview when adding the item (the one getting focus now).
|
||||
VOID
|
||||
|
|
|
@ -52,18 +52,22 @@ class CMainWindow : public CWindowImpl<CMainWindow, CWindow, CFrameWinTraits>
|
|||
CUiWindow<CStatusBar> *m_StatusBar = NULL;
|
||||
|
||||
CApplicationView *m_ApplicationView = NULL;
|
||||
friend class CApplicationView;
|
||||
|
||||
CAppDB *m_Db;
|
||||
CAtlList<CAppInfo *> m_Selected;
|
||||
|
||||
BOOL bUpdating = FALSE;
|
||||
BOOL bAppwizMode;
|
||||
BOOL m_bAppwizMode;
|
||||
HTREEITEM hRootItemInstalled;
|
||||
|
||||
CStringW szSearchPattern;
|
||||
AppsCategories SelectedEnumType;
|
||||
|
||||
public:
|
||||
static HWND m_hLastFocus;
|
||||
static bool m_PendingInstalledViewRefresh;
|
||||
|
||||
explicit CMainWindow(CAppDB *db, BOOL bAppwiz = FALSE);
|
||||
|
||||
~CMainWindow();
|
||||
|
|
|
@ -30,6 +30,8 @@ VOID
|
|||
CopyTextToClipboard(LPCWSTR lpszText);
|
||||
VOID
|
||||
ShowPopupMenuEx(HWND hwnd, HWND hwndOwner, UINT MenuID, UINT DefaultItem, POINT *Point = NULL);
|
||||
VOID
|
||||
EmulateDialogReposition(HWND hwnd);
|
||||
BOOL
|
||||
StartProcess(const CStringW &Path, BOOL Wait);
|
||||
BOOL
|
||||
|
@ -115,3 +117,32 @@ GetProgramFilesPath(CStringW &Path, BOOL PerUser, HWND hwnd = NULL);
|
|||
template <class T> class CLocalPtr : public CHeapPtr<T, CLocalAllocator>
|
||||
{
|
||||
};
|
||||
|
||||
struct CScopedMutex
|
||||
{
|
||||
HANDLE m_hMutex;
|
||||
|
||||
CScopedMutex(LPCWSTR Name, UINT Timeout = INFINITE, BOOL InitialOwner = FALSE)
|
||||
{
|
||||
m_hMutex = CreateMutexW(NULL, InitialOwner, Name);
|
||||
if (m_hMutex && !InitialOwner)
|
||||
{
|
||||
DWORD wait = WaitForSingleObject(m_hMutex, Timeout);
|
||||
if (wait != WAIT_OBJECT_0 && wait != WAIT_ABANDONED)
|
||||
{
|
||||
CloseHandle(m_hMutex);
|
||||
m_hMutex = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
~CScopedMutex()
|
||||
{
|
||||
if (m_hMutex)
|
||||
{
|
||||
ReleaseMutex(m_hMutex);
|
||||
CloseHandle(m_hMutex);
|
||||
}
|
||||
}
|
||||
|
||||
bool Acquired() const { return m_hMutex != NULL; }
|
||||
};
|
||||
|
|
|
@ -13,4 +13,19 @@
|
|||
#include "misc.h"
|
||||
#include "configparser.h"
|
||||
|
||||
extern LONG g_Busy;
|
||||
extern bool g_PendingInstalledViewRefresh;
|
||||
|
||||
#define WM_NOTIFY_OPERATIONCOMPLETED (WM_APP + 0)
|
||||
#define WM_NOTIFY_INSTALLERFINISHED (WM_APP + 1)
|
||||
|
||||
#define MAINWINDOWCLASSNAME L"ROSAPPMGR2"
|
||||
#define MAINWINDOWMUTEX szWindowClass
|
||||
#define UPDATEDBMUTEX ( MAINWINDOWCLASSNAME L":UpDB" )
|
||||
|
||||
struct CUpdateDatabaseMutex : public CScopedMutex
|
||||
{
|
||||
CUpdateDatabaseMutex() : CScopedMutex(UPDATEDBMUTEX, 1000 * 60 * 10, FALSE) { };
|
||||
};
|
||||
|
||||
#endif /* _RAPPS_H */
|
||||
|
|
|
@ -67,7 +67,6 @@
|
|||
/* Menus */
|
||||
#define IDR_MAINMENU 500
|
||||
#define IDR_LINKMENU 501
|
||||
#define IDR_APPLICATIONMENU 502
|
||||
|
||||
/* Menu items */
|
||||
#define ID_EXIT 550
|
||||
|
@ -88,40 +87,46 @@
|
|||
/* Messages */
|
||||
#define ID_ACTIVATE_APPWIZ 600
|
||||
|
||||
/* Strings */
|
||||
/* Banners */
|
||||
#define IDS_APPTITLE 100
|
||||
#define IDS_SEARCH_TEXT 101
|
||||
#define IDS_APPS_COUNT 102
|
||||
#define IDS_WELCOME_TITLE 103
|
||||
#define IDS_WELCOME_TEXT 104
|
||||
#define IDS_WELCOME_URL 105
|
||||
#define IDS_INSTALLED 106
|
||||
#define IDS_AVAILABLEFORINST 107
|
||||
#define IDS_UPDATES 108
|
||||
#define IDS_APPLICATIONS 109
|
||||
#define IDS_CHOOSE_FOLDER_TEXT 110
|
||||
#define IDS_CHOOSE_FOLDER_ERROR 111
|
||||
#define IDS_URL_INVALID 112
|
||||
#define IDS_APP_REG_REMOVE 113
|
||||
#define IDS_INFORMATION 114
|
||||
#define IDS_UNABLE_TO_REMOVE 115
|
||||
#define IDS_UNABLE_TO_DOWNLOAD 116
|
||||
#define IDS_UNABLE_TO_DOWNLOAD2 117
|
||||
#define IDS_UNABLE_TO_QUERY_CERT 118
|
||||
#define IDS_INTEG_CHECK_TITLE 119
|
||||
#define IDS_INTEG_CHECK_FAIL 120
|
||||
#define IDS_INTERRUPTED_DOWNLOAD 121
|
||||
#define IDS_UNABLE_TO_WRITE 122
|
||||
#define IDS_INSTALL_SELECTED 123
|
||||
#define IDS_UNABLE_TO_INSTALL 124
|
||||
#define IDS_SELECTEDFORINST 125
|
||||
#define IDS_MISMATCH_CERT_INFO 126
|
||||
#define IDS_UNABLE_PATH 127
|
||||
#define IDS_APP_AUTHORS 128
|
||||
#define IDS_APP_DISPLAY_DETAILS 129
|
||||
#define IDS_APP_DISPLAY_LIST 130
|
||||
#define IDS_APP_DISPLAY_TILE 131
|
||||
#define IDS_NO_SEARCH_RESULTS 132
|
||||
#define IDS_APP_AUTHORS 101
|
||||
#define IDS_WELCOME_TITLE 102
|
||||
#define IDS_WELCOME_TEXT 103
|
||||
#define IDS_WELCOME_URL 104
|
||||
#define IDS_APPWIZ_TITLE 105
|
||||
#define IDS_APPWIZ_TEXT1 106
|
||||
#define IDS_APPWIZ_TEXT2 107
|
||||
|
||||
/* Strings */
|
||||
#define IDS_SEARCH_TEXT 110
|
||||
#define IDS_APPS_COUNT 111
|
||||
#define IDS_APPS_SELECT_COUNT 112
|
||||
#define IDS_INSTALLED 113
|
||||
#define IDS_AVAILABLEFORINST 114
|
||||
#define IDS_UPDATES 115
|
||||
#define IDS_APPLICATIONS 116
|
||||
#define IDS_CHOOSE_FOLDER_TEXT 117
|
||||
#define IDS_CHOOSE_FOLDER_ERROR 118
|
||||
#define IDS_URL_INVALID 119
|
||||
#define IDS_APP_REG_REMOVE 120
|
||||
#define IDS_INFORMATION 121
|
||||
#define IDS_UNABLE_TO_REMOVE 122
|
||||
#define IDS_UNABLE_TO_DOWNLOAD 123
|
||||
#define IDS_UNABLE_TO_DOWNLOAD2 124
|
||||
#define IDS_UNABLE_TO_QUERY_CERT 125
|
||||
#define IDS_INTEG_CHECK_TITLE 126
|
||||
#define IDS_INTEG_CHECK_FAIL 127
|
||||
#define IDS_INTERRUPTED_DOWNLOAD 128
|
||||
#define IDS_UNABLE_TO_WRITE 129
|
||||
#define IDS_INSTALL_SELECTED 130
|
||||
#define IDS_UNABLE_TO_INSTALL 131
|
||||
#define IDS_SELECTEDFORINST 132
|
||||
#define IDS_MISMATCH_CERT_INFO 133
|
||||
#define IDS_UNABLE_PATH 134
|
||||
#define IDS_APP_DISPLAY_DETAILS 135
|
||||
#define IDS_APP_DISPLAY_LIST 136
|
||||
#define IDS_APP_DISPLAY_TILE 137
|
||||
#define IDS_NO_SEARCH_RESULTS 138
|
||||
|
||||
/* Tooltips */
|
||||
#define IDS_TOOLTIP_INSTALL 200
|
||||
|
|
|
@ -43,22 +43,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Слагане\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Махане\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Промяна", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Пр&емахване от регистъра", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "О&пресняване\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 254, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Настройки"
|
||||
|
@ -188,11 +172,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "Управителят за приложения на РеактОС"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Търсене"
|
||||
IDS_APPS_COUNT "Брой приложения: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Управителят на приложенията на РеактОС ви приветства"
|
||||
IDS_WELCOME_TEXT "Изберете раздел от лявата страна, след което изберете приложение за слагане или премахване.\nСтраницата на РеактОС: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Търсене…"
|
||||
IDS_APPS_COUNT "Брой приложения: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "Сложено"
|
||||
IDS_AVAILABLEFORINST "Налично за слагане"
|
||||
IDS_UPDATES "Обновления"
|
||||
|
|
|
@ -44,22 +44,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instalovat\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Odinstalovat\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Změnit", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Odstranit z r&egistru", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Ob&novit\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Aktualizovat data&bázi\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Nastavení"
|
||||
|
@ -189,11 +173,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS Správce aplikací"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Hledat…"
|
||||
IDS_APPS_COUNT "Počet aplikací: %d; Vybráno: %d"
|
||||
IDS_WELCOME_TITLE "Vítejte v ReactOS Správci aplikací!\n\n"
|
||||
IDS_WELCOME_TITLE "Vítejte v ReactOS Správci aplikací!"
|
||||
IDS_WELCOME_TEXT "Na levé straně zvolte kategorii, pak vpravo zvolte aplikaci, která bude nainstalována nebo odinstalována.\nWebová stránka ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Hledat…"
|
||||
IDS_APPS_COUNT "Počet aplikací: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Vybráno: %d"
|
||||
IDS_INSTALLED "Nainstalováno"
|
||||
IDS_AVAILABLEFORINST "Lze instalovat"
|
||||
IDS_UPDATES "Aktualizace"
|
||||
|
|
|
@ -46,22 +46,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Installieren\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Deinstallieren\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "Ä&ndern", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Aus R&egistry entfernen", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Aktualisie&ren\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Daten&bank aktualisieren\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Einstellungen"
|
||||
|
@ -191,11 +175,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS-Anwendungsmanager"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Suche…"
|
||||
IDS_APPS_COUNT "Anzahl der Anwendungen: %d, ausgewählt: %d"
|
||||
IDS_WELCOME_TITLE "Willkommen im ReactOS-Anwendungsmanager!\n\n"
|
||||
IDS_WELCOME_TITLE "Willkommen im ReactOS-Anwendungsmanager!"
|
||||
IDS_WELCOME_TEXT "Wählen Sie links eine Kategorie und dann eine Anwendung um sie zu installieren oder zu deinstallieren.\nReactOS-Webseite: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Suche…"
|
||||
IDS_APPS_COUNT "Anzahl der Anwendungen: %d"
|
||||
IDS_APPS_SELECT_COUNT "; ausgewählt: %d"
|
||||
IDS_INSTALLED "Installiert"
|
||||
IDS_AVAILABLEFORINST "Zur Installation verfügbar"
|
||||
IDS_UPDATES "Aktualisierungen"
|
||||
|
|
|
@ -46,22 +46,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Install\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Uninstall\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modify", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "R&emove from Registry", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Refresh\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Settings"
|
||||
|
@ -191,11 +175,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS Applications Manager"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Search…"
|
||||
IDS_APPS_COUNT "Applications count: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Welcome to ReactOS Applications Manager!\n\n"
|
||||
IDS_WELCOME_TITLE "Welcome to ReactOS Applications Manager!"
|
||||
IDS_WELCOME_TEXT "Choose a category on the left, then choose an application to install or uninstall.\nReactOS Web Site: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Search…"
|
||||
IDS_APPS_COUNT "Applications count: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "Installed"
|
||||
IDS_AVAILABLEFORINST "Available for installation"
|
||||
IDS_UPDATES "Updates"
|
||||
|
|
|
@ -45,22 +45,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instalar\tCtrl+Intro", ID_INSTALL
|
||||
MENUITEM "&Desinstalar\tCtrl+Supr", ID_UNINSTALL
|
||||
MENUITEM "&Modificar", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Eliminar del Registro", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Recargar\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Actualizar listado desde Internet\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Ajustes"
|
||||
|
@ -190,11 +174,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "Administrador de aplicaciones de ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Buscar…"
|
||||
IDS_APPS_COUNT "Nº de aplicaciones: %d; Selecionadas: %d"
|
||||
IDS_WELCOME_TITLE "Bienvenido al Administrador de aplicaciones de ReactOS.\n\n"
|
||||
IDS_WELCOME_TITLE "Bienvenido al Administrador de aplicaciones de ReactOS."
|
||||
IDS_WELCOME_TEXT "Seleccione una categoría a la izquierda, para más tarde seleccionar la aplicación a instalar o desinstalar.\nWeb de ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Buscar…"
|
||||
IDS_APPS_COUNT "Nº de aplicaciones: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selecionadas: %d"
|
||||
IDS_INSTALLED "Instaladas"
|
||||
IDS_AVAILABLEFORINST "Disponible para su instalación"
|
||||
IDS_UPDATES "Actualizaciones"
|
||||
|
|
|
@ -43,22 +43,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Installi\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Desinstalli\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Muuda", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Eemalda registrist", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Värskenda\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Uuenda andme&baasi\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Sätted"
|
||||
|
@ -188,11 +172,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS'i Rakenduste Haldur"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Otsi…"
|
||||
IDS_APPS_COUNT "Rakenduste arv: %d; Valitud: %d"
|
||||
IDS_WELCOME_TITLE "Tere tulemast ReactOS'i Rakenduste Haldurisse!\n\n"
|
||||
IDS_WELCOME_TITLE "Tere tulemast ReactOS'i Rakenduste Haldurisse!"
|
||||
IDS_WELCOME_TEXT "Vali vasakult teema, siis vali paremalt rakendusi mida soovid installida või desinstallida.\nReactOS'i veebileht: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Otsi…"
|
||||
IDS_APPS_COUNT "Rakenduste arv: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Valitud: %d"
|
||||
IDS_INSTALLED "Installitud"
|
||||
IDS_AVAILABLEFORINST "Installimiseks saadaval"
|
||||
IDS_UPDATES "Uuendused"
|
||||
|
|
|
@ -46,22 +46,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Installer\tCtrl+Entrée", ID_INSTALL
|
||||
MENUITEM "&Désinstaller\tCtrl+Suppr", ID_UNINSTALL
|
||||
MENUITEM "&Modifier", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Supprimer du registre", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Rafraîchir\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Mettre à jour la &base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Configuration"
|
||||
|
@ -191,11 +175,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "Gestionnaire d'applications ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Chercher…"
|
||||
IDS_APPS_COUNT "Nombre d'applications : %d ; Sélectionnées : %d"
|
||||
IDS_WELCOME_TITLE "Bienvenue dans ReactOS Applications Manager !\n\n"
|
||||
IDS_WELCOME_TITLE "Bienvenue dans ReactOS Applications Manager !"
|
||||
IDS_WELCOME_TEXT "Choisissez une catégorie à gauche, ensuite choisissez une application à installer ou désinstaller.\nSite internet de ReactOS : "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Ajout/Suppression de programmes" // "Ajouter/Supprimer des Programmes"
|
||||
IDS_APPWIZ_TEXT1 "Choisissez ""Applications"" ou ""Mises à jour"" pour voir la liste des programmes ou des mises à jour installés sur votre système."
|
||||
IDS_APPWIZ_TEXT2 "Pour supprimer un programme, ou modifier ses composants installés, sélectionnez-le dans la liste et cliquez sur ""Désinstaller"" ou ""Modifier""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Chercher…"
|
||||
IDS_APPS_COUNT "Nombre d'applications : %d"
|
||||
IDS_APPS_SELECT_COUNT " ; Sélectionnées : %d"
|
||||
IDS_INSTALLED "Installé"
|
||||
IDS_AVAILABLEFORINST "Disponible pour installation"
|
||||
IDS_UPDATES "Mises à jour"
|
||||
|
@ -274,5 +267,5 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?"
|
||||
IDS_INSTGEN_CONFIRMUNINST "Êtes-vous sûr de vouloir désinstaller %s ?"
|
||||
END
|
||||
|
|
|
@ -45,22 +45,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "התקנה\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "הסרה\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "שינוי", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "הסרה מהרשום", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "רענן\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "עדכון מסד נתונים\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_LAYOUTRTL
|
||||
|
@ -193,11 +177,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "מנהל היישומים של ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "חיפוש…"
|
||||
IDS_APPS_COUNT "ספירת יישומים: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "ברוכים הבאים למנהל היישומים של ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "ברוכים הבאים למנהל היישומים של ReactOS!"
|
||||
IDS_WELCOME_TEXT "בחר קטגוריה בצד שמאל, לאחר מכן בחר יישום להתקנה או להסרה.\nהאתר של ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "חיפוש…"
|
||||
IDS_APPS_COUNT "ספירת יישומים: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "מותקן"
|
||||
IDS_AVAILABLEFORINST "זמין להתקנה"
|
||||
IDS_UPDATES "עדכונים"
|
||||
|
|
|
@ -43,22 +43,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "Telep&ítés\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "Eltá&volítás\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Módosítás", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Eltávolítás a registryből", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "F&rissítés\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Adat&bázis frissítése\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Beállítások"
|
||||
|
@ -188,11 +172,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS Alkalmazáskezelő"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Keresés…"
|
||||
IDS_APPS_COUNT "Alkalmazások száma: %d; Kijelölve: %d"
|
||||
IDS_WELCOME_TITLE "Üdvözöljük a ReactOS Alkalmazáskezelőben!\n\n"
|
||||
IDS_WELCOME_TITLE "Üdvözöljük a ReactOS Alkalmazáskezelőben!"
|
||||
IDS_WELCOME_TEXT "Bal oldalon válasszon kategóriát, majd válasszon egy telepíteni vagy eltávolítani kívánt alkalmazást.\nReactOS weboldal: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Keresés…"
|
||||
IDS_APPS_COUNT "Alkalmazások száma: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Kijelölve: %d"
|
||||
IDS_INSTALLED "Telepített"
|
||||
IDS_AVAILABLEFORINST "Telepíthető alkalmazások"
|
||||
IDS_UPDATES "Frissítések"
|
||||
|
|
|
@ -43,22 +43,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Pasang\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Bongkar\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Ubah", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hapus dari R&egistri", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Sega&rkan\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Perbarui Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Pengaturan"
|
||||
|
@ -188,11 +172,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "Manajer Aplikasi ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Cari…"
|
||||
IDS_APPS_COUNT "Jumlah aplikasi: %d; Terpilih: %d"
|
||||
IDS_WELCOME_TITLE "Selamat datang di Manajer Aplikasi ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Selamat datang di Manajer Aplikasi ReactOS!"
|
||||
IDS_WELCOME_TEXT "pilih kategori di sisi kiri, kemudian pilih aplikasi untuk dipasang atau dibongkar.\nSitus Web ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Cari…"
|
||||
IDS_APPS_COUNT "Jumlah aplikasi: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Terpilih: %d"
|
||||
IDS_INSTALLED "Terpasang"
|
||||
IDS_AVAILABLEFORINST "Tersedia untuk pemasangan"
|
||||
IDS_UPDATES "Pembaruan"
|
||||
|
|
|
@ -27,7 +27,7 @@ BEGIN
|
|||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Aggiorna\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Aggiorna Data&base", ID_RESETDB
|
||||
MENUITEM "Aggiorna Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
POPUP "?"
|
||||
BEGIN
|
||||
|
@ -45,22 +45,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Installa\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "Rim&uovi\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modifica", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Canc&ella dal registro", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Aggiorna\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Aggiorna Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Impostazioni"
|
||||
|
@ -190,11 +174,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS Gestione applicazioni"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Cerca…"
|
||||
IDS_APPS_COUNT "Numero applicazioni: %d; Selezionate: %d"
|
||||
IDS_WELCOME_TITLE "Benvenuto!\n\n"
|
||||
IDS_WELCOME_TITLE "Benvenuto!"
|
||||
IDS_WELCOME_TEXT "Scegliere una categoria a sinistra, poi scegliere una applicazione da installare o disinstallare.\nReactOS Web Site: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Cerca…"
|
||||
IDS_APPS_COUNT "Numero applicazioni: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selezionate: %d"
|
||||
IDS_INSTALLED "Installato"
|
||||
IDS_AVAILABLEFORINST "Disponibile per l'installazione"
|
||||
IDS_UPDATES "Aggiornamenti"
|
||||
|
|
|
@ -23,9 +23,9 @@ BEGIN
|
|||
MENUITEM "アンインストール(&U)\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "変更(&M)", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "レジストリから削除(&E)\tF5", ID_REGREMOVE
|
||||
MENUITEM "レジストリから削除(&E)", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "更新(&R)", ID_REFRESH
|
||||
MENUITEM "更新(&R)\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "データベースの更新(&B)\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
|
@ -45,22 +45,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "インストール(&I)\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "アンインストール(&U)\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "変更(&M)", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "レジストリから削除(&E)\tF5", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "更新(&R)", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "データベースの更新(&B)\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "設定"
|
||||
|
@ -190,11 +174,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS アプリ マネージャ"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "検索..."
|
||||
IDS_APPS_COUNT "アプリ数: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "ReactOS アプリ マネージャへようこそ!\n\n"
|
||||
IDS_WELCOME_TITLE "ReactOS アプリ マネージャへようこそ!"
|
||||
IDS_WELCOME_TEXT "左側からカテゴリを選択し、インストールまたはアンインストールするアプリを選んでください。\nReactOS ウェブ サイト: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "検索..."
|
||||
IDS_APPS_COUNT "アプリ数: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "インストール済み"
|
||||
IDS_AVAILABLEFORINST "インストール可能"
|
||||
IDS_UPDATES "更新"
|
||||
|
|
|
@ -43,22 +43,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Installere\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Avinstallere\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "E&ndre", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "R&emove from Registry", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Oppdate&r\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Settings"
|
||||
|
@ -188,11 +172,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS programbehandler"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Søk…"
|
||||
IDS_APPS_COUNT "Program oppsummering: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Velkommen til ReactOS programbehandler!\n\n"
|
||||
IDS_WELCOME_TITLE "Velkommen til ReactOS programbehandler!"
|
||||
IDS_WELCOME_TEXT "Velg en kategori til venstre, og velg et program for installere eller avinstallere programvaren.\nReactOS internettside: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Søk…"
|
||||
IDS_APPS_COUNT "Program oppsummering: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "Installert"
|
||||
IDS_AVAILABLEFORINST "Tilgjengelig for installasjon"
|
||||
IDS_UPDATES "Oppdateringer"
|
||||
|
|
|
@ -45,22 +45,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instaluj\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "Odinstal&uj\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modyfikuj", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Usuń z r&ejestru", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Odśwież\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Aktualizuj &bazę programów\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Ustawienia"
|
||||
|
@ -190,11 +174,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "Menedżer aplikacji ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Szukaj…"
|
||||
IDS_APPS_COUNT "Liczba aplikacji: %d; Wybranych: %d"
|
||||
IDS_WELCOME_TITLE "Witamy w Menedżerze aplikacji ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Witamy w Menedżerze aplikacji ReactOS!"
|
||||
IDS_WELCOME_TEXT "Z listy po lewej wybierz kategorię, a następnie aplikację, by ją zainstalować lub odinstalować.\nStrona projektu ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Szukaj…"
|
||||
IDS_APPS_COUNT "Liczba aplikacji: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Wybranych: %d"
|
||||
IDS_INSTALLED "Zainstalowane"
|
||||
IDS_AVAILABLEFORINST "Dostępne"
|
||||
IDS_UPDATES "Uaktualnienia"
|
||||
|
|
|
@ -17,7 +17,7 @@ BEGIN
|
|||
END
|
||||
POPUP "&Programas"
|
||||
BEGIN
|
||||
MENUITEM "I&nstalar\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Instalar\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Desinstalar\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modificar", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
|
@ -43,22 +43,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instalar\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Desinstalar\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modificar", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "R&emover do Registro", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Atualiza&r\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Configurações"
|
||||
|
@ -188,11 +172,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "Central de Aplicativos ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Procurar…"
|
||||
IDS_APPS_COUNT "Número de aplicativos: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Bem-vindo(a) a Central de Aplicativos ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Bem-vindo(a) a Central de Aplicativos ReactOS!"
|
||||
IDS_WELCOME_TEXT "Escolha uma categoria à esquerda, então escolha um aplicativo para instalar ou desinstalar.\nWeb Site ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Procurar…"
|
||||
IDS_APPS_COUNT "Número de aplicativos: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "Instalado"
|
||||
IDS_AVAILABLEFORINST "Disponível para instalação"
|
||||
IDS_UPDATES "Atualizações"
|
||||
|
|
|
@ -43,22 +43,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instalar\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Desinstalar\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modificar", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "R&emover do Registo", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Actualiza&r\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Actualizar &Base de dados\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Configurações"
|
||||
|
@ -188,11 +172,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "Central de aplicações ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Procurar…"
|
||||
IDS_APPS_COUNT "Número de aplicações: %d; Seleccionadas: %d"
|
||||
IDS_WELCOME_TITLE "Bem-vindo(a) à Central de aplicações ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Bem-vindo(a) à Central de aplicações ReactOS!"
|
||||
IDS_WELCOME_TEXT "Escolha uma categoria à esquerda, de seguida escolha uma aplicação para instalar ou desinstalar.\nWeb Site ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Procurar…"
|
||||
IDS_APPS_COUNT "Número de aplicações: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Seleccionadas: %d"
|
||||
IDS_INSTALLED "Instalado"
|
||||
IDS_AVAILABLEFORINST "Disponível para instalação"
|
||||
IDS_UPDATES "Actualizações"
|
||||
|
|
|
@ -27,7 +27,7 @@ BEGIN
|
|||
MENUITEM SEPARATOR
|
||||
MENUITEM "Împ&rospătare\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Actualizare baza de date\tCtrl+F5", ID_RESETDB
|
||||
MENUITEM "&Actualizare a bazei de date\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
POPUP "Aj&utor"
|
||||
BEGIN
|
||||
|
@ -45,22 +45,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instalare\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Dezinstalare\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modificare", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Eliminare din registru", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Împ&rospătare\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Actualizare a bazei de date\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Setări"
|
||||
|
@ -190,11 +174,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "Managerul de aplicații ReactOS"
|
||||
IDS_APP_AUTHORS "Marcă înregistrată 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Căutare…"
|
||||
IDS_APPS_COUNT "Numărul de programe: %d; Selectate: %d"
|
||||
IDS_WELCOME_TITLE "Bun venit la Managerul de aplicații ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Bun venit la Managerul de aplicații ReactOS!"
|
||||
IDS_WELCOME_TEXT "Alegeți o categorie din stânga, apoi alegeți o aplicație pentru a o instala sau dezinstala.\nArdesa web ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Adăugare/Eliminare de programe"
|
||||
IDS_APPWIZ_TEXT1 "Alegeți ""Aplicații"" sau ""Actualizări"" pentru a vedea lista aplicațiilor sau a actualizărilor instalate pe sistem."
|
||||
IDS_APPWIZ_TEXT2 "Pentru a elimina un program sau pentru a-i modifica componentele instalate, selectați-l din listă și faceți clic pe ""Dezinstalare"" sau pe ""Modificare""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Căutare…"
|
||||
IDS_APPS_COUNT "Numărul de programe: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selectate: %d"
|
||||
IDS_INSTALLED "Instalate"
|
||||
IDS_AVAILABLEFORINST "Disponibile pentru instalare"
|
||||
IDS_UPDATES "Actualizări"
|
||||
|
@ -254,9 +247,9 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_DL_DIALOG_DB_DISP "Aplicații baza de date"
|
||||
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Actualizare bază de date…"
|
||||
IDS_DL_DIALOG_DB_UNOFFICIAL_DOWNLOAD_DISP "Actualizare bază de date… (Sursă neoficială)"
|
||||
IDS_DL_DIALOG_DB_DISP "Aplicații pentru baza de date"
|
||||
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Actualizare a bazei de date…"
|
||||
IDS_DL_DIALOG_DB_UNOFFICIAL_DOWNLOAD_DISP "Actualizare a bazei de date… (Sursă neoficială)"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -268,7 +261,7 @@ BEGIN
|
|||
IDS_CMD_INVALID_OPTION "Eroare: opțiunea de linie de comandă specificată este necunoscută sau nevalidă.\n"
|
||||
IDS_CMD_FIND_RESULT_FOR "Rezultatele căutării pentru %1:\n"
|
||||
IDS_CMD_PACKAGE_NOT_FOUND "Nu se poate găsi pachetul %1.\n"
|
||||
IDS_CMD_PACKAGE_INFO "Informații despre pachet %1:\n"
|
||||
IDS_CMD_PACKAGE_INFO "Informații despre pachetul %1:\n"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -48,22 +48,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "У&становить\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Удалить\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Изменить", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "У&далить из реестра", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Обновить\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Обновить &базу данных\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Параметры"
|
||||
|
@ -193,11 +177,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "Менеджер приложений ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Поиск…"
|
||||
IDS_APPS_COUNT "Количество приложений: %d; Выбрано: %d"
|
||||
IDS_WELCOME_TITLE "Добро пожаловать в ""Менеджер приложений ReactOS""!\n\n"
|
||||
IDS_WELCOME_TITLE "Добро пожаловать в ""Менеджер приложений ReactOS""!"
|
||||
IDS_WELCOME_TEXT "Выберите категорию слева и приложение для установки или удаления.\nСайт ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Поиск…"
|
||||
IDS_APPS_COUNT "Количество приложений: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Выбрано: %d"
|
||||
IDS_INSTALLED "Установленные"
|
||||
IDS_AVAILABLEFORINST "Доступно для установки"
|
||||
IDS_UPDATES "Обновления"
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
* PROJECT: ReactOS Applications Manager
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: Slovak resource file
|
||||
* TRANSLATOR: Copyright 2009-2010 Mário Kačmár <kario@szm.sk>
|
||||
* TRANSLATORS: Copyright 2009-2010 Mário Kačmár <kario@szm.sk>
|
||||
* Copyright 2024 Václav Zouzalík (Venca24) <vaclav.zouzalik@seznam.cz>
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
|
||||
|
@ -25,12 +26,12 @@ BEGIN
|
|||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Obnoviť\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
MENUITEM "Aktualizovať data&bázu\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
POPUP "Pomocník"
|
||||
BEGIN
|
||||
MENUITEM "Pomocník\tF1", ID_HELP, GRAYED
|
||||
MENUITEM "Čo je", ID_ABOUT
|
||||
MENUITEM "O programe", ID_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
|
@ -38,24 +39,8 @@ IDR_LINKMENU MENU
|
|||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Otvoriť linku v prehliadači", ID_OPEN_LINK
|
||||
MENUITEM "&Kopírovať linku do schránky", ID_COPY_LINK
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Inštalovať\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "O&dinštalovať\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "Z&meniť", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Odstrániť z R&egistrov", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Obnoviť\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
MENUITEM "&Otvoriť odkaz v prehliadači", ID_OPEN_LINK
|
||||
MENUITEM "&Kopírovať odkaz do schránky", ID_COPY_LINK
|
||||
END
|
||||
END
|
||||
|
||||
|
@ -73,16 +58,16 @@ BEGIN
|
|||
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL
|
||||
PUSHBUTTON "&Vybrať", IDC_CHOOSE, 187, 85, 50, 14
|
||||
AUTOCHECKBOX "&Zmazať inštalačné programy po nainštalovaní", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
|
||||
GROUPBOX "Software source", -1, 4, 118, 240, 46
|
||||
AUTORADIOBUTTON "Use default", IDC_SOURCE_DEFAULT, 15, 132, 74, 10, WS_GROUP | WS_TABSTOP
|
||||
AUTORADIOBUTTON "Specified source", IDC_USE_SOURCE, 15, 147, 74, 10
|
||||
GROUPBOX "Zdroj softvéru", -1, 4, 118, 240, 46
|
||||
AUTORADIOBUTTON "Použiť predvolené", IDC_SOURCE_DEFAULT, 15, 132, 74, 10, WS_GROUP | WS_TABSTOP
|
||||
AUTORADIOBUTTON "Vlastný zdroj", IDC_USE_SOURCE, 15, 147, 74, 10
|
||||
EDITTEXT IDC_SOURCE_URL, 97, 147, 140, 12, ES_AUTOHSCROLL | WS_DISABLED
|
||||
GROUPBOX "Proxy", -1, 4, 166, 240, 76
|
||||
AUTORADIOBUTTON "System proxy settings", IDC_PROXY_DEFAULT, 15, 180, 210, 10, WS_GROUP | WS_TABSTOP
|
||||
AUTORADIOBUTTON "Direct (No proxy)", IDC_NO_PROXY, 15, 195, 210, 10
|
||||
AUTORADIOBUTTON "Systémové nastavenia proxy", IDC_PROXY_DEFAULT, 15, 180, 210, 10, WS_GROUP | WS_TABSTOP
|
||||
AUTORADIOBUTTON "Bez proxy servera", IDC_NO_PROXY, 15, 195, 210, 10
|
||||
AUTORADIOBUTTON "Proxy", IDC_USE_PROXY, 15, 210, 74, 10
|
||||
EDITTEXT IDC_PROXY_SERVER, 90, 210, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
|
||||
LTEXT "No proxy for", -1, 26, 226, 64, 10
|
||||
LTEXT "Žiadna proxy pre", -1, 26, 226, 64, 10
|
||||
EDITTEXT IDC_NO_PROXY_FOR, 90, 225, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
|
||||
PUSHBUTTON "Predvolené", IDC_DEFAULT_SETTINGS, 8, 245, 60, 14, WS_GROUP | WS_TABSTOP
|
||||
DEFPUSHBUTTON "OK", IDOK, 116, 245, 60, 14
|
||||
|
@ -116,10 +101,10 @@ BEGIN
|
|||
IDS_TOOLTIP_INSTALL "Inštalovať"
|
||||
IDS_TOOLTIP_UNINSTALL "Odinštalovať"
|
||||
IDS_TOOLTIP_MODIFY "Zmeniť"
|
||||
IDS_TOOLTIP_SELECT_ALL "Select/Deselect All"
|
||||
IDS_TOOLTIP_SELECT_ALL "Vybrať všetky/Zrušiť výber"
|
||||
IDS_TOOLTIP_SETTINGS "Nastavenia"
|
||||
IDS_TOOLTIP_REFRESH "Obnoviť"
|
||||
IDS_TOOLTIP_UPDATE_DB "Update Database"
|
||||
IDS_TOOLTIP_UPDATE_DB "Aktualizovať databázu"
|
||||
IDS_TOOLTIP_EXIT "Skončiť"
|
||||
END
|
||||
|
||||
|
@ -135,102 +120,111 @@ BEGIN
|
|||
IDS_INFO_VERSION "\nVerzia: "
|
||||
IDS_INFO_DESCRIPTION "\nPopis: "
|
||||
IDS_INFO_PUBLISHER "\nVydavateľ: "
|
||||
IDS_INFO_HELPLINK "\nHelp Link: "
|
||||
IDS_INFO_HELPPHONE "\nHelp Telephone: "
|
||||
IDS_INFO_README "\nČítajMa: "
|
||||
IDS_INFO_HELPLINK "\nInternetová pomoc: "
|
||||
IDS_INFO_HELPPHONE "\nTelefonická pomoc: "
|
||||
IDS_INFO_README "\nReadme: "
|
||||
IDS_INFO_REGOWNER "\nRegistrovaný vlastník: "
|
||||
IDS_INFO_PRODUCTID "\nID Produktu: "
|
||||
IDS_INFO_CONTACT "\nKontakt: "
|
||||
IDS_INFO_UPDATEINFO "\nUpdate Information: "
|
||||
IDS_INFO_INFOABOUT "\nInformation About: "
|
||||
IDS_INFO_COMMENTS "\nComments: "
|
||||
IDS_INFO_INSTLOCATION "\nInstall Location: "
|
||||
IDS_INFO_INSTALLSRC "\nInstall Source: "
|
||||
IDS_INFO_UNINSTALLSTR "\nUninstall String: "
|
||||
IDS_INFO_UPDATEINFO "\nInformácie o aktualizáciach: "
|
||||
IDS_INFO_INFOABOUT "\nInformácie o programe: "
|
||||
IDS_INFO_COMMENTS "\nKomentáre: "
|
||||
IDS_INFO_INSTLOCATION "\nUmiestnenie inštalácie: "
|
||||
IDS_INFO_INSTALLSRC "\nZdroj inštalácie: "
|
||||
IDS_INFO_UNINSTALLSTR "\nOdinstalačný reťazec: "
|
||||
IDS_INFO_MODIFYPATH "\nModify Path: "
|
||||
IDS_INFO_INSTALLDATE "\nDátum inštalácie: "
|
||||
IDS_AINFO_PACKAGE_NAME "\nPackage Name: "
|
||||
IDS_AINFO_PACKAGE_NAME "\nNázov balíčka: "
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_AINFO_VERSION "\nVerzia: "
|
||||
IDS_AINFO_AVAILABLEVERSION "\nAvailable Version: "
|
||||
IDS_AINFO_AVAILABLEVERSION "\nDostupná verzia: "
|
||||
IDS_AINFO_DESCRIPTION "\nPopis: "
|
||||
IDS_AINFO_SIZE "\nVeľkosť: "
|
||||
IDS_AINFO_URLSITE "\nDomovská stránka: "
|
||||
IDS_AINFO_LICENSE "\nLicencia: "
|
||||
IDS_AINFO_URLDOWNLOAD "\nStiahnuť: "
|
||||
IDS_AINFO_LANGUAGES "\nLanguages: "
|
||||
IDS_AINFO_LANGUAGES "\nJazyky: "
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CAT_AUDIO "Audio"
|
||||
IDS_CAT_DEVEL "Vývojárske"
|
||||
IDS_CAT_DEVEL "Vývoj"
|
||||
IDS_CAT_DRIVERS "Ovládače"
|
||||
IDS_CAT_EDU "Vzdelávacie"
|
||||
IDS_CAT_ENGINEER "Inžinierske"
|
||||
IDS_CAT_FINANCE "Finančné"
|
||||
IDS_CAT_EDU "Vzdelávanie"
|
||||
IDS_CAT_ENGINEER "Strojírenstvo"
|
||||
IDS_CAT_FINANCE "Financie"
|
||||
IDS_CAT_GAMES "Hry & zábava"
|
||||
IDS_CAT_GRAPHICS "Grafické"
|
||||
IDS_CAT_INTERNET "Internet & sieť"
|
||||
IDS_CAT_GRAPHICS "Grafika"
|
||||
IDS_CAT_INTERNET "Internet a siete"
|
||||
IDS_CAT_LIBS "Knižnice"
|
||||
IDS_CAT_OFFICE "Kancelárske"
|
||||
IDS_CAT_OTHER "Iné"
|
||||
IDS_CAT_SCIENCE "Vedecké"
|
||||
IDS_CAT_OFFICE "Kancelária"
|
||||
IDS_CAT_OTHER "Ostatné"
|
||||
IDS_CAT_SCIENCE "Veda"
|
||||
IDS_CAT_TOOLS "Nástroje"
|
||||
IDS_CAT_VIDEO "Video"
|
||||
IDS_CAT_THEMES "Themes"
|
||||
IDS_CAT_THEMES "Vzhľad"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "Manažér aplikácií systému ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Hľadať…"
|
||||
IDS_APPS_COUNT "Počet programov: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Víta Vás Manažér aplikácií systému ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Víta Vás Manažér aplikácií systému ReactOS!"
|
||||
IDS_WELCOME_TEXT "Vyberte si kategóriu na ľavej strane, potom vyberte aplikáciu, ktorú chcete nainštalovať alebo odinštalovať.\nWebstránka projektu ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Pridať/Odobrať programy"
|
||||
IDS_APPWIZ_TEXT1 "Vyberte ""Aplikácie"" alebo ""Aktualizácie"" pre zobrazenie zoznamu aplikácií alebo aktualizácií nainštalovaných vo vašom systéme."
|
||||
IDS_APPWIZ_TEXT2 "Pre odobranie programu alebo pre zmenu jeho inštalovaných komponentov, ho vyberte zo zoznamu a kliknite na ""Odinštalovať"" alebo ""Upraviť""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Hľadať…"
|
||||
IDS_APPS_COUNT "Počet programov: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Vybrané: %d"
|
||||
IDS_INSTALLED "Nainštalované"
|
||||
IDS_AVAILABLEFORINST "Dostupné pre nainštalovanie"
|
||||
IDS_UPDATES "Aktualizácie"
|
||||
IDS_APPLICATIONS "Aplikácie"
|
||||
IDS_CHOOSE_FOLDER_TEXT "Vyberte priečinok, ktorý sa použije pre sťahovanie programov:"
|
||||
IDS_CHOOSE_FOLDER_ERROR "Zvolili ste si neexistujúci priečinok!"
|
||||
IDS_URL_INVALID "The URL you have specified is invalid or not supported. Please correct it!"
|
||||
IDS_URL_INVALID "Vami zadaná URL adresa nie je platná alebo nie je podporovaná. Prosím, opravte ju!"
|
||||
IDS_APP_REG_REMOVE "Naozaj chcete vymazať údaje o nainštalovanom programe z registrov?"
|
||||
IDS_INFORMATION "Informácie"
|
||||
IDS_UNABLE_TO_DOWNLOAD "Unable to download the package! Address not found!"
|
||||
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
|
||||
IDS_UNABLE_TO_DOWNLOAD "Súbor sa nepodarilo stiahnuť! Adresa nebola nájdená!"
|
||||
IDS_UNABLE_TO_DOWNLOAD2 "Balíček sa nepodarilo stiahnuť! Skontrolujte pripojenie k Internetu"
|
||||
IDS_UNABLE_TO_REMOVE "Nie je možné odstrániť z registrov údaje o programe!"
|
||||
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
|
||||
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
|
||||
IDS_INTEG_CHECK_TITLE "Verifying package integrity…"
|
||||
IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended."
|
||||
IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet."
|
||||
IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity."
|
||||
IDS_INSTALL_SELECTED "Install Selected"
|
||||
IDS_SELECTEDFORINST "Selected for installation"
|
||||
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
|
||||
IDS_UNABLE_TO_INSTALL "Nepodarilo sa otvoriť inštalátor!"
|
||||
IDS_UNABLE_TO_QUERY_CERT "Nepodarilo sa získať informácie o certifikáte.\n\nChcete napriek tomu pokračovať?"
|
||||
IDS_INTEG_CHECK_TITLE "Overujem integritu balíčka…"
|
||||
IDS_INTEG_CHECK_FAIL "Balíček neprešiel kontrolou integrity, mohol byť poškodený alebo zmenený počas sťahovania. Spustenie tohto programu sa neodporúča."
|
||||
IDS_INTERRUPTED_DOWNLOAD "Sťahovanie bolo prerušené. Skontrolujte pripojenie k Internetu."
|
||||
IDS_UNABLE_TO_WRITE "Ukladanie na disk sa nepodarilo. Disk môže byť plný."
|
||||
IDS_INSTALL_SELECTED "Nainštalovať vybrané"
|
||||
IDS_SELECTEDFORINST "Vybrané pre inštaláciu"
|
||||
IDS_MISMATCH_CERT_INFO "Neznámy certifikát:\nSubjekt: %s\nVydávateľ: %s\nChcete napriek tomu pokračovať?"
|
||||
IDS_UNABLE_PATH "Incorrect path format."
|
||||
IDS_APP_DISPLAY_DETAILS "Details"
|
||||
IDS_APP_DISPLAY_LIST "List"
|
||||
IDS_APP_DISPLAY_TILE "Tile"
|
||||
IDS_NO_SEARCH_RESULTS "No search results"
|
||||
IDS_APP_DISPLAY_DETAILS "Podrobnosti"
|
||||
IDS_APP_DISPLAY_LIST "Zoznam"
|
||||
IDS_APP_DISPLAY_TILE "Dlaždice"
|
||||
IDS_NO_SEARCH_RESULTS "Žiadne výsledky"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STATUS_INSTALLED "Installed"
|
||||
IDS_STATUS_NOTINSTALLED "Not installed"
|
||||
IDS_STATUS_DOWNLOADED "Downloaded"
|
||||
IDS_STATUS_UPDATE_AVAILABLE "Update available"
|
||||
IDS_STATUS_DOWNLOADING "Downloading…"
|
||||
IDS_STATUS_INSTALLING "Installing…"
|
||||
IDS_STATUS_WAITING "Waiting to install…"
|
||||
IDS_STATUS_FINISHED "Finished"
|
||||
IDS_STATUS_INSTALLED "Nainstalované"
|
||||
IDS_STATUS_NOTINSTALLED "Nenainstalované"
|
||||
IDS_STATUS_DOWNLOADED "Stiahnuté"
|
||||
IDS_STATUS_UPDATE_AVAILABLE "Aktualizovateľné"
|
||||
IDS_STATUS_DOWNLOADING "Sťahujem…"
|
||||
IDS_STATUS_INSTALLING "Inštalujem…"
|
||||
IDS_STATUS_WAITING "Čakám na inštaláciu…"
|
||||
IDS_STATUS_FINISHED "Dokončené"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -242,34 +236,34 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_LANGUAGE_AVAILABLE_TRANSLATION "Supports your language"
|
||||
IDS_LANGUAGE_NO_TRANSLATION "Supports other languages"
|
||||
IDS_LANGUAGE_ENGLISH_TRANSLATION "Supports English"
|
||||
IDS_LANGUAGE_SINGLE "Single language"
|
||||
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d more)"
|
||||
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d available)"
|
||||
IDS_LANGUAGE_AVAILABLE_TRANSLATION "Podporuje váš jazyk"
|
||||
IDS_LANGUAGE_NO_TRANSLATION "Podporuje iné jazyky"
|
||||
IDS_LANGUAGE_ENGLISH_TRANSLATION "Podporuje angličtinu"
|
||||
IDS_LANGUAGE_SINGLE "Jediný jazyk"
|
||||
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d ďalších)"
|
||||
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d dostupných)"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_DL_DIALOG_DB_DISP "Applications Database"
|
||||
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…"
|
||||
IDS_DL_DIALOG_DB_UNOFFICIAL_DOWNLOAD_DISP "Updating Database… (Unofficial source)"
|
||||
IDS_DL_DIALOG_DB_DISP "Databáza aplikácií"
|
||||
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Aktualizujem databázu…"
|
||||
IDS_DL_DIALOG_DB_UNOFFICIAL_DOWNLOAD_DISP "Aktualizujem databázu… (Neoficiálny zdroj)"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CMD_USAGE "Usage: "
|
||||
IDS_CMD_NEED_PACKAGE_NAME "Error: option %1 expects one or more package name.\n"
|
||||
IDS_CMD_NEED_FILE_NAME "Error: option %1 expects a file name.\n"
|
||||
IDS_CMD_NEED_PARAMS "Error: option %1 expects one or more parameters.\n"
|
||||
IDS_CMD_INVALID_OPTION "Error: Unknown or invalid command line option specified.\n"
|
||||
IDS_CMD_FIND_RESULT_FOR "Find result for %1:\n"
|
||||
IDS_CMD_PACKAGE_NOT_FOUND "Failed to find package %1.\n"
|
||||
IDS_CMD_PACKAGE_INFO "Information about package %1:\n"
|
||||
IDS_CMD_USAGE "Použitie: "
|
||||
IDS_CMD_NEED_PACKAGE_NAME "Chyba: prepínač %1 očakáva jeden alebo viac názvov balíčkov.\n"
|
||||
IDS_CMD_NEED_FILE_NAME "Chyba: prepínač %1 očakáva názov súboru.\n"
|
||||
IDS_CMD_NEED_PARAMS "Chyba: prepínač %1 očakáva jeden alebo viac parametrov.\n"
|
||||
IDS_CMD_INVALID_OPTION "Chyba: Neznámy alebo neplatný prepínač príkazového riadka.\n"
|
||||
IDS_CMD_FIND_RESULT_FOR "Nájdi výsledok pre %1:\n"
|
||||
IDS_CMD_PACKAGE_NOT_FOUND "Nepodarilo sa nájsť balíček %1.\n"
|
||||
IDS_CMD_PACKAGE_INFO "Informácie o balíčku %1:\n"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?"
|
||||
IDS_INSTGEN_CONFIRMUNINST "Ste si istí, že chcete odinštalovať %s?"
|
||||
END
|
||||
|
|
|
@ -43,22 +43,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instalo\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Uninstall\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modifiko", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hiq nga R&egjistri", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Rifresko\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Konfigurime"
|
||||
|
@ -188,11 +172,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS Applications Manager"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Kerko…"
|
||||
IDS_APPS_COUNT "Numrimi Aplicacioneve: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Mire Se Erdhe ne ReactOS Applications Manager!\n\n"
|
||||
IDS_WELCOME_TITLE "Mire Se Erdhe ne ReactOS Applications Manager!"
|
||||
IDS_WELCOME_TEXT "Zgjidh nje kategori ne te majte, pastaj zgjidh nje aplicacion per ta instaluar ose uninstall.\nReactOS Web Site: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Kerko…"
|
||||
IDS_APPS_COUNT "Numrimi Aplicacioneve: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "Instaluar"
|
||||
IDS_AVAILABLEFORINST "Te vlefshem per instalim"
|
||||
IDS_UPDATES "Updates"
|
||||
|
|
|
@ -43,22 +43,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Installera\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Avinstallera\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Ändra", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Ta bort från R&egistret", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Uppdate&ra\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Inställningar"
|
||||
|
@ -188,11 +172,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS programhanterare"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Sök…"
|
||||
IDS_APPS_COUNT "Programantal: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Välkommen till ReactOS programhanterare!\n\n"
|
||||
IDS_WELCOME_TITLE "Välkommen till ReactOS programhanterare!"
|
||||
IDS_WELCOME_TEXT "Välj en kategori till vänster, och sedan ett program för att installera eller avinstallera.\nReactOS Web sida: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Sök…"
|
||||
IDS_APPS_COUNT "Programantal: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "Installerat"
|
||||
IDS_AVAILABLEFORINST "Tillgängliga for installation"
|
||||
IDS_UPDATES "Uppdateringar"
|
||||
|
|
|
@ -45,22 +45,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Kur\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "K&aldır\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Değiştir", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Girdiyi Kayıt Defteri'nden Kaldır", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Yenile\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Uygulama Veri Ta&banını Yenile\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Ayarlar"
|
||||
|
@ -190,11 +174,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS Uygulama Yöneticisi"
|
||||
IDS_APP_AUTHORS "Telif Hakkı: 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Ara"
|
||||
IDS_APPS_COUNT "Uygulama Sayısı: %d; Seçili: %d"
|
||||
IDS_WELCOME_TITLE "ReactOS Uygulama Yöneticisi'ne hoş geldiniz.\n\n"
|
||||
IDS_WELCOME_TITLE "ReactOS Uygulama Yöneticisi'ne hoş geldiniz."
|
||||
IDS_WELCOME_TEXT "Solda bir kategori seçiniz, ardından kurmak ya da kaldırmak için bir uygulama seçiniz.\nReactOS'un İnternet sitesi: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Program Ekle/Kaldır"
|
||||
IDS_APPWIZ_TEXT1 "Sisteminizde yüklü olan uygulamaların veya güncellemelerin listesini görüntülemek için ""Uygulamalar"" veya ""Güncellemeler"" öğesini seçin."
|
||||
IDS_APPWIZ_TEXT2 "Bir programı kaldırmak veya yüklü bileşenlerini değiştirmek için listeden seçin ve ""Kaldır"" veya ""Değiştir"" üzerine tıklayın."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Ara…"
|
||||
IDS_APPS_COUNT "Uygulama Sayısı: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Seçili: %d"
|
||||
IDS_INSTALLED "Kurulanlar"
|
||||
IDS_AVAILABLEFORINST "Kurulabilir Uygulamalar"
|
||||
IDS_UPDATES "Güncelleştirmeler"
|
||||
|
@ -220,7 +213,7 @@ BEGIN
|
|||
IDS_APP_DISPLAY_DETAILS "Detaylar"
|
||||
IDS_APP_DISPLAY_LIST "Liste"
|
||||
IDS_APP_DISPLAY_TILE "Karo"
|
||||
IDS_NO_SEARCH_RESULTS "No search results"
|
||||
IDS_NO_SEARCH_RESULTS "Arama sonucu yok"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
@ -273,5 +266,5 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?"
|
||||
IDS_INSTGEN_CONFIRMUNINST "Kaldırmak istediğinizden emin misiniz %s?"
|
||||
END
|
||||
|
|
|
@ -46,22 +46,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Встановити\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "В&идалити\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Змінити", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Вида&лити з реєстру", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Оновити\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Оновити список &програм\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Налаштування"
|
||||
|
@ -191,11 +175,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "Менеджер додатків ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Пошук…"
|
||||
IDS_APPS_COUNT "Kількість додатків: %d; Обрано: %d"
|
||||
IDS_WELCOME_TITLE "Ласкаво просимо в Менеджер додатків ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Ласкаво просимо в Менеджер додатків ReactOS!"
|
||||
IDS_WELCOME_TEXT "Виберіть категорію зліва, а потім виберіть програми для встановлення чи видалення.\nСторінка ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Пошук…"
|
||||
IDS_APPS_COUNT "Kількість додатків: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Обрано: %d"
|
||||
IDS_INSTALLED "Встановлені"
|
||||
IDS_AVAILABLEFORINST "Доступні для встановлення"
|
||||
IDS_UPDATES "Оновлення"
|
||||
|
|
|
@ -47,22 +47,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "安装(&I)\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "卸载(&U)\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "修改(&M)", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "从注册表删除(&E)", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "刷新(&R)\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "更新数据库(&B)\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "设置"
|
||||
|
@ -192,11 +176,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS 程序管理器"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "搜索…"
|
||||
IDS_APPS_COUNT "程序数量:%d;已选:%d"
|
||||
IDS_WELCOME_TITLE "欢迎使用 ReactOS 程序管理器!\n\n"
|
||||
IDS_WELCOME_TITLE "欢迎使用 ReactOS 程序管理器!"
|
||||
IDS_WELCOME_TEXT "从左栏选择一个类别,然后选择要安装或卸载的程序。\nReactOS 网站:"
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "搜索…"
|
||||
IDS_APPS_COUNT "程序数量:%d"
|
||||
IDS_APPS_SELECT_COUNT ";已选:%d"
|
||||
IDS_INSTALLED "已安装"
|
||||
IDS_AVAILABLEFORINST "可安装"
|
||||
IDS_UPDATES "更新"
|
||||
|
|
|
@ -44,22 +44,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "安裝(&I)\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "解除安裝(&U)\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "修改(&M)", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "從登錄檔刪除(&E)", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "重新整理(&R)\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "更新資料庫(&B)\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "設定"
|
||||
|
@ -189,11 +173,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS 程式管理員"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "搜尋..."
|
||||
IDS_APPS_COUNT "程式數量:%d; 已選:%d"
|
||||
IDS_WELCOME_TITLE "歡迎來到 ReactOS 程式管理員!\n\n"
|
||||
IDS_WELCOME_TITLE "歡迎來到 ReactOS 程式管理員!"
|
||||
IDS_WELCOME_TEXT "從左側欄目選擇一個類別,然後選擇要安裝或解除安裝的程式。\nReactOS 網站︰"
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "搜尋..."
|
||||
IDS_APPS_COUNT "程式數量:%d"
|
||||
IDS_APPS_SELECT_COUNT "; 已選:%d"
|
||||
IDS_INSTALLED "已安裝"
|
||||
IDS_AVAILABLEFORINST "可安裝"
|
||||
IDS_UPDATES "更新"
|
||||
|
|
|
@ -44,22 +44,6 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "安裝(&I)\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "解除安裝(&U)\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "修改(&M)", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "從登錄檔刪除(&E)", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "重新整理(&R)\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "更新資料庫(&B)\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "設定"
|
||||
|
@ -189,11 +173,20 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_APPTITLE "ReactOS 程式管理員"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "搜尋..."
|
||||
IDS_APPS_COUNT "程式數量:%d; 已選:%d"
|
||||
IDS_WELCOME_TITLE "歡迎來到 ReactOS 程式管理員!\n\n"
|
||||
IDS_WELCOME_TITLE "歡迎來到 ReactOS 程式管理員!"
|
||||
IDS_WELCOME_TEXT "從左側欄目選擇一個類別,然後選擇要安裝或解除安裝的程式。\nReactOS 網站︰"
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "搜尋..."
|
||||
IDS_APPS_COUNT "程式數量:%d"
|
||||
IDS_APPS_SELECT_COUNT "; 已選:%d"
|
||||
IDS_INSTALLED "已安裝"
|
||||
IDS_AVAILABLEFORINST "可安裝"
|
||||
IDS_UPDATES "更新"
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -39,6 +39,31 @@ CopyTextToClipboard(LPCWSTR lpszText)
|
|||
CloseClipboard();
|
||||
}
|
||||
|
||||
static INT_PTR CALLBACK
|
||||
NothingDlgProc(HWND hDlg, UINT uMsg, WPARAM, LPARAM)
|
||||
{
|
||||
return uMsg == WM_CLOSE ? DestroyWindow(hDlg) : FALSE;
|
||||
}
|
||||
|
||||
VOID
|
||||
EmulateDialogReposition(HWND hwnd)
|
||||
{
|
||||
static const DWORD DlgTmpl[] = { WS_POPUP | WS_CAPTION | WS_SYSMENU, 0, 0, 0, 0, 0 };
|
||||
HWND hDlg = CreateDialogIndirectW(NULL, (LPDLGTEMPLATE)DlgTmpl, NULL, NothingDlgProc);
|
||||
if (hDlg)
|
||||
{
|
||||
RECT r;
|
||||
GetWindowRect(hwnd, &r);
|
||||
if (SetWindowPos(hDlg, hDlg, r.left, r.top, r.right - r.left, r.bottom - r.top, SWP_NOZORDER | SWP_NOACTIVATE))
|
||||
{
|
||||
SendMessage(hDlg, DM_REPOSITION, 0, 0);
|
||||
if (GetWindowRect(hDlg, &r))
|
||||
SetWindowPos(hwnd, hwnd, r.left, r.top, r.right - r.left, r.bottom - r.top, SWP_NOZORDER | SWP_NOACTIVATE);
|
||||
}
|
||||
SendMessage(hDlg, WM_CLOSE, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
ShowPopupMenuEx(HWND hwnd, HWND hwndOwner, UINT MenuID, UINT DefaultItem, POINT *Point)
|
||||
{
|
||||
|
@ -135,6 +160,8 @@ StartProcess(const CStringW &Path, BOOL Wait)
|
|||
{
|
||||
EnableWindow(hMainWnd, TRUE);
|
||||
SetForegroundWindow(hMainWnd);
|
||||
// We got the real activation message during MsgWaitForMultipleObjects while
|
||||
// we were disabled, we need to set the focus again now.
|
||||
SetFocus(hMainWnd);
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "rapps.h"
|
||||
#include "settings.h"
|
||||
|
||||
#define SETTINGSSUBKEY L"Software\\ReactOS\\" RAPPS_NAME
|
||||
|
||||
class SettingsField
|
||||
{
|
||||
|
@ -109,7 +110,7 @@ class SettingsFieldString : public SettingsField
|
|||
LPCWSTR m_RegName; // key name in registery
|
||||
};
|
||||
|
||||
void
|
||||
static void
|
||||
AddInfoFields(ATL::CAtlList<SettingsField *> &infoFields, SETTINGS_INFO &settings)
|
||||
{
|
||||
infoFields.AddTail(new SettingsFieldBool(&(settings.bSaveWndPos), L"bSaveWndPos"));
|
||||
|
@ -127,11 +128,9 @@ AddInfoFields(ATL::CAtlList<SettingsField *> &infoFields, SETTINGS_INFO &setting
|
|||
infoFields.AddTail(new SettingsFieldString((settings.szNoProxyFor), MAX_PATH, L"NoProxyFor"));
|
||||
infoFields.AddTail(new SettingsFieldBool(&(settings.bUseSource), L"bUseSource"));
|
||||
infoFields.AddTail(new SettingsFieldString((settings.szSourceURL), INTERNET_MAX_URL_LENGTH, L"SourceURL"));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
BOOL
|
||||
static BOOL
|
||||
SaveAllSettings(CRegKey &key, SETTINGS_INFO &settings)
|
||||
{
|
||||
BOOL bAllSuccess = TRUE;
|
||||
|
@ -153,10 +152,10 @@ SaveAllSettings(CRegKey &key, SETTINGS_INFO &settings)
|
|||
return bAllSuccess;
|
||||
}
|
||||
|
||||
BOOL
|
||||
static BOOL
|
||||
LoadAllSettings(CRegKey &key, SETTINGS_INFO &settings)
|
||||
{
|
||||
BOOL bAllSuccess = TRUE;
|
||||
BOOL bLoadedAny = FALSE;
|
||||
ATL::CAtlList<SettingsField *> infoFields;
|
||||
|
||||
AddInfoFields(infoFields, settings);
|
||||
|
@ -165,27 +164,18 @@ LoadAllSettings(CRegKey &key, SETTINGS_INFO &settings)
|
|||
while (InfoListPosition)
|
||||
{
|
||||
SettingsField *Info = infoFields.GetNext(InfoListPosition);
|
||||
if (!Info->Load(key))
|
||||
{
|
||||
bAllSuccess = FALSE;
|
||||
if (Info->Load(key))
|
||||
bLoadedAny = TRUE;
|
||||
//else
|
||||
// TODO: error log
|
||||
}
|
||||
delete Info;
|
||||
}
|
||||
return bAllSuccess;
|
||||
return bLoadedAny;
|
||||
}
|
||||
|
||||
VOID
|
||||
FillDefaultSettings(PSETTINGS_INFO pSettingsInfo)
|
||||
static void
|
||||
GetDefaultDownloadDirectory(CStringW &szDownloadDir)
|
||||
{
|
||||
CStringW szDownloadDir;
|
||||
ZeroMemory(pSettingsInfo, sizeof(SETTINGS_INFO));
|
||||
|
||||
pSettingsInfo->bSaveWndPos = TRUE;
|
||||
pSettingsInfo->bUpdateAtStart = FALSE;
|
||||
pSettingsInfo->bLogEnabled = TRUE;
|
||||
pSettingsInfo->bUseSource = FALSE;
|
||||
|
||||
if (FAILED(SHGetFolderPathW(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, szDownloadDir.GetBuffer(MAX_PATH))))
|
||||
{
|
||||
szDownloadDir.ReleaseBuffer();
|
||||
|
@ -201,29 +191,68 @@ FillDefaultSettings(PSETTINGS_INFO pSettingsInfo)
|
|||
|
||||
PathAppendW(szDownloadDir.GetBuffer(MAX_PATH), L"\\RAPPS Downloads");
|
||||
szDownloadDir.ReleaseBuffer();
|
||||
}
|
||||
|
||||
CStringW::CopyChars(
|
||||
pSettingsInfo->szDownloadDir, _countof(pSettingsInfo->szDownloadDir), szDownloadDir.GetString(),
|
||||
szDownloadDir.GetLength() + 1);
|
||||
static VOID
|
||||
ValidateStringSettings(PSETTINGS_INFO pSettingsInfo)
|
||||
{
|
||||
if (!pSettingsInfo->szDownloadDir[0])
|
||||
{
|
||||
CStringW szDownloadDir;
|
||||
GetDefaultDownloadDirectory(szDownloadDir);
|
||||
|
||||
CStringW::CopyChars(pSettingsInfo->szDownloadDir, _countof(pSettingsInfo->szDownloadDir),
|
||||
szDownloadDir.GetString(), szDownloadDir.GetLength() + 1);
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
FillDefaultSettings(PSETTINGS_INFO pSettingsInfo)
|
||||
{
|
||||
ZeroMemory(pSettingsInfo, sizeof(*pSettingsInfo));
|
||||
|
||||
pSettingsInfo->bSaveWndPos = TRUE;
|
||||
pSettingsInfo->bUpdateAtStart = FALSE;
|
||||
pSettingsInfo->bLogEnabled = TRUE;
|
||||
pSettingsInfo->bUseSource = FALSE;
|
||||
pSettingsInfo->bDelInstaller = FALSE;
|
||||
pSettingsInfo->Maximized = FALSE;
|
||||
pSettingsInfo->Left = CW_USEDEFAULT;
|
||||
pSettingsInfo->Top = CW_USEDEFAULT;
|
||||
pSettingsInfo->Width = 680;
|
||||
pSettingsInfo->Height = 450;
|
||||
|
||||
ValidateStringSettings(pSettingsInfo);
|
||||
}
|
||||
|
||||
BOOL
|
||||
LoadSettings(PSETTINGS_INFO pSettingsInfo)
|
||||
{
|
||||
BOOL bLoadedAny = FALSE;
|
||||
|
||||
FillDefaultSettings(pSettingsInfo);
|
||||
|
||||
ATL::CRegKey RegKey;
|
||||
if (RegKey.Open(HKEY_CURRENT_USER, L"Software\\ReactOS\\" RAPPS_NAME, KEY_READ) != ERROR_SUCCESS)
|
||||
if (RegKey.Open(HKEY_CURRENT_USER, SETTINGSSUBKEY, KEY_READ) == ERROR_SUCCESS)
|
||||
{
|
||||
return FALSE;
|
||||
bLoadedAny = LoadAllSettings(RegKey, *pSettingsInfo);
|
||||
}
|
||||
|
||||
return LoadAllSettings(RegKey, *pSettingsInfo);
|
||||
ValidateStringSettings(pSettingsInfo); // Handles the case where a REG_SZ is present but empty
|
||||
|
||||
if (!bLoadedAny)
|
||||
{
|
||||
// This the first launch, write at least one item so ParseCmdAndExecute() does not
|
||||
// trigger another DB update in another process instance between now and SaveSettings().
|
||||
ATL::CRegKey RegKey;
|
||||
if (RegKey.Create(HKEY_CURRENT_USER, SETTINGSSUBKEY, NULL, REG_OPTION_NON_VOLATILE,
|
||||
KEY_WRITE, NULL, NULL) == ERROR_SUCCESS)
|
||||
{
|
||||
SettingsFieldBool field(&(pSettingsInfo->bUpdateAtStart), L"bUpdateAtStart");
|
||||
field.Save(RegKey);
|
||||
}
|
||||
}
|
||||
return bLoadedAny;
|
||||
}
|
||||
|
||||
BOOL
|
||||
|
@ -245,8 +274,8 @@ SaveSettings(HWND hwnd, PSETTINGS_INFO pSettingsInfo)
|
|||
(wp.showCmd == SW_MAXIMIZE || (wp.showCmd == SW_SHOWMINIMIZED && (wp.flags & WPF_RESTORETOMAXIMIZED)));
|
||||
}
|
||||
|
||||
if (RegKey.Create(HKEY_CURRENT_USER, L"Software\\ReactOS\\" RAPPS_NAME, NULL,
|
||||
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, NULL) != ERROR_SUCCESS)
|
||||
if (RegKey.Create(HKEY_CURRENT_USER, SETTINGSSUBKEY, NULL, REG_OPTION_NON_VOLATILE,
|
||||
KEY_WRITE, NULL, NULL) != ERROR_SUCCESS)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,20 @@
|
|||
|
||||
SETTINGS_INFO NewSettingsInfo;
|
||||
|
||||
static int CALLBACK
|
||||
BrowseFolderCallback(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
|
||||
{
|
||||
switch (uMsg)
|
||||
{
|
||||
case BFFM_INITIALIZED:
|
||||
SendMessageW(hwnd, BFFM_SETSELECTIONW, TRUE, lpData);
|
||||
break;
|
||||
case BFFM_VALIDATEFAILED:
|
||||
return TRUE;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
BOOL
|
||||
ChooseFolder(HWND hwnd)
|
||||
{
|
||||
|
@ -25,24 +39,24 @@ ChooseFolder(HWND hwnd)
|
|||
bi.ulFlags =
|
||||
BIF_USENEWUI | BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS | /* BIF_BROWSEFILEJUNCTIONS | */ BIF_VALIDATE;
|
||||
|
||||
if (SUCCEEDED(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)))
|
||||
if (SUCCEEDED(CoInitialize(NULL)))
|
||||
{
|
||||
CStringW szBuf;
|
||||
WCHAR szDir[MAX_PATH];
|
||||
if (GetWindowTextW(GetDlgItem(hwnd, IDC_DOWNLOAD_DIR_EDIT), szDir, _countof(szDir)))
|
||||
{
|
||||
bi.lpfn = BrowseFolderCallback;
|
||||
bi.lParam = (LPARAM)szDir;
|
||||
}
|
||||
|
||||
LPITEMIDLIST lpItemList = SHBrowseForFolderW(&bi);
|
||||
if (lpItemList && SHGetPathFromIDListW(lpItemList, szBuf.GetBuffer(MAX_PATH)))
|
||||
if (lpItemList && SHGetPathFromIDListW(lpItemList, szDir))
|
||||
{
|
||||
szBuf.ReleaseBuffer();
|
||||
if (!szBuf.IsEmpty())
|
||||
if (*szDir)
|
||||
{
|
||||
SetDlgItemTextW(hwnd, IDC_DOWNLOAD_DIR_EDIT, szBuf);
|
||||
SetDlgItemTextW(hwnd, IDC_DOWNLOAD_DIR_EDIT, szDir);
|
||||
bRet = TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
szBuf.ReleaseBuffer();
|
||||
}
|
||||
|
||||
CoTaskMemFree(lpItemList);
|
||||
CoUninitialize();
|
||||
|
@ -94,7 +108,9 @@ InitSettingsControls(HWND hDlg, PSETTINGS_INFO Info)
|
|||
SendDlgItemMessageW(hDlg, IDC_LOG_ENABLED, BM_SETCHECK, Info->bLogEnabled, 0);
|
||||
SendDlgItemMessageW(hDlg, IDC_DEL_AFTER_INSTALL, BM_SETCHECK, Info->bDelInstaller, 0);
|
||||
|
||||
SetWindowTextW(GetDlgItem(hDlg, IDC_DOWNLOAD_DIR_EDIT), Info->szDownloadDir);
|
||||
HWND hCtl = GetDlgItem(hDlg, IDC_DOWNLOAD_DIR_EDIT);
|
||||
SetWindowTextW(hCtl, Info->szDownloadDir);
|
||||
SendMessageW(hCtl, EM_LIMITTEXT, MAX_PATH - 1, 0);
|
||||
|
||||
CheckRadioButton(hDlg, IDC_PROXY_DEFAULT, IDC_USE_PROXY, IDC_PROXY_DEFAULT + Info->Proxy);
|
||||
|
||||
|
|
|
@ -191,7 +191,7 @@ HandleUninstallCommand(CAppDB &db, UINT argcLeft, LPWSTR *argvLeft)
|
|||
|
||||
if (pInfo)
|
||||
{
|
||||
retval = pInfo->UninstallApplication(silent ? UCF_SILENT : UCF_NONE);
|
||||
retval = pInfo->UninstallApplication((silent ? UCF_SILENT : UCF_NONE) | UCF_SAMEPROCESS);
|
||||
}
|
||||
delete pDelete;
|
||||
return retval;
|
||||
|
@ -338,6 +338,7 @@ ParseCmdAndExecute(LPWSTR lpCmdLine, BOOL bIsFirstLaunch, int nCmdShow)
|
|||
BOOL bAppwizMode = (argc > 1 && MatchCmdOption(argv[1], CMD_KEY_APPWIZ));
|
||||
if (!bAppwizMode)
|
||||
{
|
||||
CUpdateDatabaseMutex lock;
|
||||
if (SettingsInfo.bUpdateAtStart || bIsFirstLaunch)
|
||||
db.RemoveCached();
|
||||
|
||||
|
@ -349,16 +350,17 @@ ParseCmdAndExecute(LPWSTR lpCmdLine, BOOL bIsFirstLaunch, int nCmdShow)
|
|||
if (argc == 1 || bAppwizMode) // RAPPS is launched without options or APPWIZ mode is requested
|
||||
{
|
||||
// Check whether the RAPPS MainWindow is already launched in another process
|
||||
HANDLE hMutex;
|
||||
CStringW szWindowText(MAKEINTRESOURCEW(bAppwizMode ? IDS_APPWIZ_TITLE : IDS_APPTITLE));
|
||||
LPCWSTR pszMutex = bAppwizMode ? L"RAPPWIZ" : MAINWINDOWMUTEX;
|
||||
|
||||
hMutex = CreateMutexW(NULL, FALSE, szWindowClass);
|
||||
HANDLE hMutex = CreateMutexW(NULL, FALSE, pszMutex);
|
||||
if ((!hMutex) || (GetLastError() == ERROR_ALREADY_EXISTS))
|
||||
{
|
||||
/* If already started, find its window */
|
||||
HWND hWindow;
|
||||
for (int wait = 2500, inter = 250; wait > 0; wait -= inter)
|
||||
{
|
||||
if ((hWindow = FindWindowW(szWindowClass, NULL)) != NULL)
|
||||
if ((hWindow = FindWindowW(szWindowClass, szWindowText)) != NULL)
|
||||
break;
|
||||
Sleep(inter);
|
||||
}
|
||||
|
@ -366,6 +368,7 @@ ParseCmdAndExecute(LPWSTR lpCmdLine, BOOL bIsFirstLaunch, int nCmdShow)
|
|||
if (hWindow)
|
||||
{
|
||||
/* Activate the window in the other instance */
|
||||
ShowWindow(hWindow, SW_SHOWNA);
|
||||
SwitchToThisWindow(hWindow, TRUE);
|
||||
if (bAppwizMode)
|
||||
PostMessage(hWindow, WM_COMMAND, ID_ACTIVATE_APPWIZ, 0);
|
||||
|
@ -376,6 +379,7 @@ ParseCmdAndExecute(LPWSTR lpCmdLine, BOOL bIsFirstLaunch, int nCmdShow)
|
|||
return FALSE;
|
||||
}
|
||||
}
|
||||
szWindowText.Empty();
|
||||
|
||||
CMainWindow wnd(&db, bAppwizMode);
|
||||
MainWindowLoop(&wnd, nCmdShow);
|
||||
|
|
|
@ -13,7 +13,8 @@
|
|||
#include <gdiplus.h>
|
||||
#include <conutils.h>
|
||||
|
||||
LPCWSTR szWindowClass = L"ROSAPPMGR2";
|
||||
LPCWSTR szWindowClass = MAINWINDOWCLASSNAME;
|
||||
LONG g_Busy = 0;
|
||||
|
||||
HWND hMainWnd;
|
||||
HINSTANCE hInst;
|
||||
|
@ -40,12 +41,7 @@ wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, INT nSh
|
|||
}
|
||||
|
||||
hInst = hInstance;
|
||||
|
||||
BOOL bIsFirstLaunch = !LoadSettings(&SettingsInfo);
|
||||
if (bIsFirstLaunch)
|
||||
{
|
||||
FillDefaultSettings(&SettingsInfo);
|
||||
}
|
||||
|
||||
InitLogs();
|
||||
InitCommonControls();
|
||||
|
|
|
@ -1907,6 +1907,8 @@ SHFreeShared(
|
|||
|
||||
#endif /* NO_SHLWAPI_SHARED */
|
||||
|
||||
INT WINAPI GetMenuPosFromID(_In_ HMENU hMenu, _In_ UINT uID);
|
||||
|
||||
/* SHAutoComplete flags */
|
||||
#define SHACF_DEFAULT 0x00000000
|
||||
#define SHACF_FILESYSTEM 0x00000001
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue