mirror of
https://github.com/reactos/reactos.git
synced 2025-05-22 10:35:54 +00:00
[RAPPS] Making checkboxes useful WIP
- Added selection counter *NOTE: This requires changes in lang files* - Added Sellect/Desellect button functionality - Fixed some typos and macros-to-wide-functions svn path=/branches/GSoC_2017/rapps/; revision=75411
This commit is contained in:
parent
1866b89100
commit
ec9d05004b
6 changed files with 102 additions and 52 deletions
|
@ -11,7 +11,6 @@
|
||||||
#include "rapps.h"
|
#include "rapps.h"
|
||||||
|
|
||||||
// CAvailableApplicationInfo
|
// CAvailableApplicationInfo
|
||||||
|
|
||||||
CAvailableApplicationInfo::CAvailableApplicationInfo(const ATL::CStringW& sFileNameParam)
|
CAvailableApplicationInfo::CAvailableApplicationInfo(const ATL::CStringW& sFileNameParam)
|
||||||
: m_Parser(sFileNameParam)
|
: m_Parser(sFileNameParam)
|
||||||
{
|
{
|
||||||
|
@ -311,7 +310,7 @@ BOOL CAvailableApps::EnumAvailableApplications(INT EnumType, AVAILENUMPROC lpEnu
|
||||||
m_InfoList.RemoveAt(LastListPosition);
|
m_InfoList.RemoveAt(LastListPosition);
|
||||||
|
|
||||||
delete Info;
|
delete Info;
|
||||||
Info = nullptr;
|
Info = NULL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -111,8 +111,8 @@ class CAvailableAppView
|
||||||
ATL::CStringW szLangInfo;
|
ATL::CStringW szLangInfo;
|
||||||
ATL::CStringW szLoadedTextAvailability;
|
ATL::CStringW szLoadedTextAvailability;
|
||||||
ATL::CStringW szLoadedAInfoText;
|
ATL::CStringW szLoadedAInfoText;
|
||||||
szLoadedAInfoText.LoadStringW(IDS_AINFO_LANGUAGES);
|
|
||||||
|
|
||||||
|
szLoadedAInfoText.LoadStringW(IDS_AINFO_LANGUAGES);
|
||||||
|
|
||||||
//TODO: replace those hardcoded strings
|
//TODO: replace those hardcoded strings
|
||||||
if (Info->HasNativeLanguage())
|
if (Info->HasNativeLanguage())
|
||||||
|
@ -199,7 +199,7 @@ class CMainToolbar :
|
||||||
DeleteObject(hImage);
|
DeleteObject(hImage);
|
||||||
}
|
}
|
||||||
|
|
||||||
HIMAGELIST InitImageList(VOID)
|
HIMAGELIST InitImageList()
|
||||||
{
|
{
|
||||||
HIMAGELIST hImageList;
|
HIMAGELIST hImageList;
|
||||||
|
|
||||||
|
@ -328,13 +328,14 @@ class CAppsListView :
|
||||||
int iSubItem;
|
int iSubItem;
|
||||||
};
|
};
|
||||||
|
|
||||||
BOOL HasAllChecked;
|
BOOL bHasAllChecked;
|
||||||
public:
|
|
||||||
BOOL bAscending;
|
BOOL bAscending;
|
||||||
|
|
||||||
CAppsListView()
|
public:
|
||||||
|
CAppsListView() :
|
||||||
|
bAscending(TRUE),
|
||||||
|
bHasAllChecked(FALSE)
|
||||||
{
|
{
|
||||||
bAscending = TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID ColumnClick(LPNMLISTVIEW pnmv)
|
VOID ColumnClick(LPNMLISTVIEW pnmv)
|
||||||
|
@ -349,7 +350,7 @@ public:
|
||||||
PVOID GetLParam(INT Index)
|
PVOID GetLParam(INT Index)
|
||||||
{
|
{
|
||||||
INT ItemIndex;
|
INT ItemIndex;
|
||||||
LVITEM Item;
|
LVITEMW Item;
|
||||||
|
|
||||||
if (Index == -1)
|
if (Index == -1)
|
||||||
{
|
{
|
||||||
|
@ -379,13 +380,13 @@ public:
|
||||||
|
|
||||||
BOOL AddColumn(INT Index, LPWSTR lpText, INT Width, INT Format)
|
BOOL AddColumn(INT Index, LPWSTR lpText, INT Width, INT Format)
|
||||||
{
|
{
|
||||||
LV_COLUMN Column;
|
LV_COLUMNW Column;
|
||||||
|
|
||||||
ZeroMemory(&Column, sizeof(Column));
|
ZeroMemory(&Column, sizeof(Column));
|
||||||
|
|
||||||
Column.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
|
Column.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
|
||||||
Column.iSubItem = Index;
|
Column.iSubItem = Index;
|
||||||
Column.pszText = (LPTSTR) lpText;
|
Column.pszText = lpText;
|
||||||
Column.cx = Width;
|
Column.cx = Width;
|
||||||
Column.fmt = Format;
|
Column.fmt = Format;
|
||||||
|
|
||||||
|
@ -449,18 +450,39 @@ public:
|
||||||
|
|
||||||
if (hwnd)
|
if (hwnd)
|
||||||
{
|
{
|
||||||
SetExtendedListViewStyle(LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT );
|
SetExtendedListViewStyle(LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
return hwnd;
|
return hwnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL GetCheckState(INT item)
|
||||||
|
{
|
||||||
|
return (BOOL) GetItemState(item, LVIS_STATEIMAGEMASK);
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID SetCheckState(INT item, BOOL fCheck)
|
||||||
|
{
|
||||||
|
SetItemState(item, INDEXTOSTATEIMAGEMASK((fCheck) ? 2 : 1), LVIS_STATEIMAGEMASK);
|
||||||
|
}
|
||||||
|
|
||||||
VOID CheckAll()
|
VOID CheckAll()
|
||||||
{
|
{
|
||||||
if (HasAllChecked)
|
bHasAllChecked = !bHasAllChecked;
|
||||||
{
|
SetCheckState(-1, bHasAllChecked);
|
||||||
|
}
|
||||||
|
|
||||||
|
ATL::CAtlList<PAPPLICATION_INFO> GetCheckedItems()
|
||||||
|
{
|
||||||
|
ATL::CAtlList<PAPPLICATION_INFO> list;
|
||||||
|
for (INT i = 0; i != -1; i = GetNextItem(i, LVNI_ALL))
|
||||||
|
{
|
||||||
|
if (GetCheckState(i) != FALSE)
|
||||||
|
{
|
||||||
|
list.AddTail((PAPPLICATION_INFO) GetItemData(i));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -558,23 +580,24 @@ class CMainWindow :
|
||||||
CUiWindow<CRichEdit> * m_RichEdit;
|
CUiWindow<CRichEdit> * m_RichEdit;
|
||||||
|
|
||||||
CUiWindow<CSearchBar> * m_SearchBar;
|
CUiWindow<CSearchBar> * m_SearchBar;
|
||||||
|
CAvailableApps m_AvailableApps;
|
||||||
|
|
||||||
LPWSTR pLink;
|
LPWSTR pLink;
|
||||||
|
|
||||||
BOOL SearchEnabled;
|
INT nSelectedApps;
|
||||||
|
|
||||||
CAvailableApps m_AvailableApps;
|
|
||||||
|
|
||||||
|
BOOL bSearchEnabled;
|
||||||
|
BOOL bUpdating;
|
||||||
public:
|
public:
|
||||||
CMainWindow() :
|
CMainWindow() :
|
||||||
m_ClientPanel(NULL),
|
m_ClientPanel(NULL),
|
||||||
pLink(NULL),
|
pLink(NULL),
|
||||||
SearchEnabled(FALSE)
|
bSearchEnabled(FALSE)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
VOID InitApplicationsList(VOID)
|
VOID InitApplicationsList()
|
||||||
{
|
{
|
||||||
ATL::CStringW szText;
|
ATL::CStringW szText;
|
||||||
|
|
||||||
|
@ -597,7 +620,7 @@ private:
|
||||||
return m_TreeView->AddCategory(hRootItem, TextIndex, IconIndex);
|
return m_TreeView->AddCategory(hRootItem, TextIndex, IconIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID InitCategoriesList(VOID)
|
VOID InitCategoriesList()
|
||||||
{
|
{
|
||||||
HTREEITEM hRootItem;
|
HTREEITEM hRootItem;
|
||||||
|
|
||||||
|
@ -703,7 +726,7 @@ private:
|
||||||
return m_HSplitter->Create(m_hWnd) != NULL;
|
return m_HSplitter->Create(m_hWnd) != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL CreateSearchBar(VOID)
|
BOOL CreateSearchBar()
|
||||||
{
|
{
|
||||||
m_SearchBar = new CUiWindow<CSearchBar>();
|
m_SearchBar = new CUiWindow<CSearchBar>();
|
||||||
m_SearchBar->m_VerticalAlignment = UiAlign_LeftTop;
|
m_SearchBar->m_VerticalAlignment = UiAlign_LeftTop;
|
||||||
|
@ -716,7 +739,8 @@ private:
|
||||||
|
|
||||||
BOOL CreateLayout()
|
BOOL CreateLayout()
|
||||||
{
|
{
|
||||||
bool b = TRUE;
|
BOOL b = TRUE;
|
||||||
|
bUpdating = TRUE;
|
||||||
|
|
||||||
m_ClientPanel = new CUiPanel();
|
m_ClientPanel = new CUiPanel();
|
||||||
m_ClientPanel->m_VerticalAlignment = UiAlign_Stretch;
|
m_ClientPanel->m_VerticalAlignment = UiAlign_Stretch;
|
||||||
|
@ -754,6 +778,7 @@ private:
|
||||||
m_VSplitter->m_Margin.bottom = rBottom.bottom - rBottom.top;
|
m_VSplitter->m_Margin.bottom = rBottom.bottom - rBottom.top;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bUpdating = FALSE;
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -761,16 +786,13 @@ private:
|
||||||
{
|
{
|
||||||
if (CreateLayout())
|
if (CreateLayout())
|
||||||
{
|
{
|
||||||
ATL::CStringW szBuffer1, szBuffer2;
|
|
||||||
|
|
||||||
InitApplicationsList();
|
InitApplicationsList();
|
||||||
|
|
||||||
InitCategoriesList();
|
InitCategoriesList();
|
||||||
|
|
||||||
szBuffer2.LoadStringW(hInst, IDS_APPS_COUNT);
|
nSelectedApps = 0;
|
||||||
szBuffer1.Format(szBuffer2, m_ListView->GetItemCount());
|
UpdateStatusBarText();
|
||||||
|
|
||||||
m_StatusBar->SetText(szBuffer1);
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -998,6 +1020,13 @@ private:
|
||||||
if (IS_AVAILABLE_ENUM(SelectedEnumType))
|
if (IS_AVAILABLE_ENUM(SelectedEnumType))
|
||||||
CAvailableAppView::ShowAvailableAppInfo(ItemIndex);
|
CAvailableAppView::ShowAvailableAppInfo(ItemIndex);
|
||||||
}
|
}
|
||||||
|
/* Check if the item is checked */
|
||||||
|
if ((pnic->uNewState & LVIS_STATEIMAGEMASK) && !bUpdating)
|
||||||
|
{
|
||||||
|
BOOL checked = m_ListView->GetCheckState(pnic->iItem);
|
||||||
|
nSelectedApps += (checked) ? 1 : -1;
|
||||||
|
UpdateStatusBarText();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1083,10 +1112,10 @@ private:
|
||||||
if (wParam == SEARCH_TIMER_ID)
|
if (wParam == SEARCH_TIMER_ID)
|
||||||
{
|
{
|
||||||
::KillTimer(hwnd, SEARCH_TIMER_ID);
|
::KillTimer(hwnd, SEARCH_TIMER_ID);
|
||||||
if (SearchEnabled)
|
if (bSearchEnabled)
|
||||||
UpdateApplicationsList(-1);
|
UpdateApplicationsList(-1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -1119,7 +1148,7 @@ private:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL IsSelectedNodeInstalled(void)
|
BOOL IsSelectedNodeInstalled()
|
||||||
{
|
{
|
||||||
HTREEITEM hSelectedItem = m_TreeView->GetSelection();
|
HTREEITEM hSelectedItem = m_TreeView->GetSelection();
|
||||||
TV_ITEM tItem;
|
TV_ITEM tItem;
|
||||||
|
@ -1156,7 +1185,7 @@ private:
|
||||||
m_SearchBar->GetWindowTextW(szWndText);
|
m_SearchBar->GetWindowTextW(szWndText);
|
||||||
if (szBuf == szWndText)
|
if (szBuf == szWndText)
|
||||||
{
|
{
|
||||||
SearchEnabled = FALSE;
|
bSearchEnabled = FALSE;
|
||||||
m_SearchBar->SetWindowTextW(L"");
|
m_SearchBar->SetWindowTextW(L"");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1168,7 +1197,7 @@ private:
|
||||||
if (szBuf.IsEmpty())
|
if (szBuf.IsEmpty())
|
||||||
{
|
{
|
||||||
szBuf.LoadStringW(hInst, IDS_SEARCH_TEXT);
|
szBuf.LoadStringW(hInst, IDS_SEARCH_TEXT);
|
||||||
SearchEnabled = FALSE;
|
bSearchEnabled = FALSE;
|
||||||
m_SearchBar->SetWindowTextW(szBuf.GetString());
|
m_SearchBar->SetWindowTextW(szBuf.GetString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1178,9 +1207,9 @@ private:
|
||||||
{
|
{
|
||||||
ATL::CStringW szWndText;
|
ATL::CStringW szWndText;
|
||||||
|
|
||||||
if (!SearchEnabled)
|
if (!bSearchEnabled)
|
||||||
{
|
{
|
||||||
SearchEnabled = TRUE;
|
bSearchEnabled = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1265,13 +1294,14 @@ private:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_CHECK_ALL:
|
case ID_CHECK_ALL:
|
||||||
|
m_ListView->CheckAll();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID FreeInstalledAppList(VOID)
|
VOID FreeInstalledAppList()
|
||||||
{
|
{
|
||||||
INT Count = ListView_GetItemCount(hListView) - 1;
|
INT Count = m_ListView->GetItemCount() - 1;
|
||||||
PINSTALLED_INFO Info;
|
PINSTALLED_INFO Info;
|
||||||
|
|
||||||
while (Count >= 0)
|
while (Count >= 0)
|
||||||
|
@ -1369,33 +1399,45 @@ private:
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VOID UpdateStatusBarText()
|
||||||
|
{
|
||||||
|
if (m_StatusBar)
|
||||||
|
{
|
||||||
|
ATL::CStringW szBuffer1, szBuffer2;
|
||||||
|
|
||||||
|
szBuffer2.LoadStringW(hInst, IDS_APPS_COUNT);
|
||||||
|
szBuffer1.Format(szBuffer2, m_ListView->GetItemCount(), nSelectedApps);
|
||||||
|
m_StatusBar->SetText(szBuffer1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
VOID UpdateApplicationsList(INT EnumType)
|
VOID UpdateApplicationsList(INT EnumType)
|
||||||
{
|
{
|
||||||
ATL::CStringW szBuffer1, szBuffer2;
|
ATL::CStringW szBuffer1, szBuffer2;
|
||||||
HIMAGELIST hImageListView;
|
HIMAGELIST hImageListView;
|
||||||
|
bUpdating = TRUE;
|
||||||
|
|
||||||
m_ListView->SendMessageW(WM_SETREDRAW, FALSE, 0);
|
m_ListView->SetRedraw(FALSE);
|
||||||
|
|
||||||
|
nSelectedApps = 0;
|
||||||
if (EnumType < 0) EnumType = SelectedEnumType;
|
if (EnumType < 0) EnumType = SelectedEnumType;
|
||||||
|
|
||||||
if (IS_INSTALLED_ENUM(SelectedEnumType))
|
if (IS_INSTALLED_ENUM(SelectedEnumType))
|
||||||
FreeInstalledAppList();
|
FreeInstalledAppList();
|
||||||
|
|
||||||
(VOID) ListView_DeleteAllItems(hListView);
|
m_ListView->DeleteAllItems();
|
||||||
|
|
||||||
/* Create new ImageList */
|
/* Create new ImageList */
|
||||||
hImageListView = ImageList_Create(LISTVIEW_ICON_SIZE,
|
hImageListView = ImageList_Create(LISTVIEW_ICON_SIZE,
|
||||||
LISTVIEW_ICON_SIZE,
|
LISTVIEW_ICON_SIZE,
|
||||||
GetSystemColorDepth() | ILC_MASK,
|
GetSystemColorDepth() | ILC_MASK,
|
||||||
0, 1);
|
0, 1);
|
||||||
HIMAGELIST hImageListBuf = ListView_SetImageList(hListView, hImageListView, LVSIL_SMALL);
|
HIMAGELIST hImageListBuf = m_ListView->SetImageList(hImageListView, LVSIL_SMALL);
|
||||||
if (hImageListBuf)
|
if (hImageListBuf)
|
||||||
{
|
{
|
||||||
ImageList_Destroy(hImageListBuf);
|
ImageList_Destroy(hImageListBuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (IS_AVAILABLE_ENUM(EnumType))
|
if (IS_AVAILABLE_ENUM(EnumType))
|
||||||
{
|
{
|
||||||
/* Enum available applications */
|
/* Enum available applications */
|
||||||
|
@ -1404,17 +1446,16 @@ private:
|
||||||
|
|
||||||
SelectedEnumType = EnumType;
|
SelectedEnumType = EnumType;
|
||||||
|
|
||||||
szBuffer2.LoadStringW(hInst, IDS_APPS_COUNT);
|
UpdateStatusBarText();
|
||||||
szBuffer1.Format(szBuffer2, ListView_GetItemCount(hListView));
|
|
||||||
SetStatusBarText(szBuffer1);
|
|
||||||
|
|
||||||
SetWelcomeText();
|
SetWelcomeText();
|
||||||
|
|
||||||
/* set automatic column width for program names if the list is not empty */
|
/* set automatic column width for program names if the list is not empty */
|
||||||
if (ListView_GetItemCount(hListView) > 0)
|
if (m_ListView->GetItemCount() > 0)
|
||||||
ListView_SetColumnWidth(hListView, 0, LVSCW_AUTOSIZE);
|
ListView_SetColumnWidth(m_ListView->GetWindow(), 0, LVSCW_AUTOSIZE);
|
||||||
|
|
||||||
SendMessageW(hListView, WM_SETREDRAW, TRUE, 0);
|
bUpdating = FALSE;
|
||||||
|
m_ListView->SetRedraw(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -101,7 +101,7 @@ UninstallApplication(INT Index, BOOL bModify)
|
||||||
WCHAR szAppName[MAX_STR_LEN];
|
WCHAR szAppName[MAX_STR_LEN];
|
||||||
DWORD dwType, dwSize;
|
DWORD dwType, dwSize;
|
||||||
INT ItemIndex;
|
INT ItemIndex;
|
||||||
LVITEM Item;
|
LVITEMW Item;
|
||||||
HKEY hKey;
|
HKEY hKey;
|
||||||
PINSTALLED_INFO ItemInfo;
|
PINSTALLED_INFO ItemInfo;
|
||||||
|
|
||||||
|
|
|
@ -110,6 +110,16 @@ BEGIN
|
||||||
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
|
ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_DOWNLOAD_DIALOG_MULTI DIALOGEX 0, 0, 220, 72
|
||||||
|
STYLE DS_SHELLFONT | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
|
||||||
|
CAPTION "Downloading (multiple)..."
|
||||||
|
FONT 8, "MS Shell Dlg"
|
||||||
|
BEGIN
|
||||||
|
CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12
|
||||||
|
EDITTEXT IDC_DOWNLOAD_STATUS, 10, 28, 200, 22, ES_CENTER | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_DISABLED | NOT WS_BORDER
|
||||||
|
PUSHBUTTON "Cancel", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_TOOLTIP_INSTALL "Install"
|
IDS_TOOLTIP_INSTALL "Install"
|
||||||
|
@ -187,7 +197,7 @@ BEGIN
|
||||||
IDS_INSTALL "Install"
|
IDS_INSTALL "Install"
|
||||||
IDS_UNINSTALL "Uninstall"
|
IDS_UNINSTALL "Uninstall"
|
||||||
IDS_MODIFY "Modify"
|
IDS_MODIFY "Modify"
|
||||||
IDS_APPS_COUNT "Applications count: %d"
|
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!\n\n"
|
||||||
IDS_WELCOME_TEXT "Choose a category on the left, then choose an application to install or uninstall.\nReactOS Web Site: "
|
IDS_WELCOME_TEXT "Choose a category on the left, then choose an application to install or uninstall.\nReactOS Web Site: "
|
||||||
IDS_WELCOME_URL "http://www.reactos.org"
|
IDS_WELCOME_URL "http://www.reactos.org"
|
||||||
|
|
|
@ -91,7 +91,7 @@ BEGIN
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
|
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
|
||||||
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
|
STYLE DS_SHELLFONT | DS_CENTER | WS_POPUPWINDOW | WS_SYSMENU | WS_VISIBLE
|
||||||
CAPTION "Загрузка..."
|
CAPTION "Загрузка..."
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -186,7 +186,7 @@ BEGIN
|
||||||
IDS_INSTALL "Установить"
|
IDS_INSTALL "Установить"
|
||||||
IDS_UNINSTALL "Удалить"
|
IDS_UNINSTALL "Удалить"
|
||||||
IDS_MODIFY "Изменить"
|
IDS_MODIFY "Изменить"
|
||||||
IDS_APPS_COUNT "Количество: %d"
|
IDS_APPS_COUNT "Количество приложений: %d; Выбрано: %d"
|
||||||
IDS_WELCOME_TITLE "Добро пожаловать в ""Менеджер приложений ReactOS""!\n\n"
|
IDS_WELCOME_TITLE "Добро пожаловать в ""Менеджер приложений ReactOS""!\n\n"
|
||||||
IDS_WELCOME_TEXT "Выберите категорию слева и приложение для установки или удаления.\nСайт ReactOS: "
|
IDS_WELCOME_TEXT "Выберите категорию слева и приложение для установки или удаления.\nСайт ReactOS: "
|
||||||
IDS_WELCOME_URL "http://www.reactos.org"
|
IDS_WELCOME_URL "http://www.reactos.org"
|
||||||
|
|
|
@ -99,7 +99,7 @@ BEGIN
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
|
IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72
|
||||||
STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE
|
STYLE DS_SHELLFONT | DS_CENTER | WS_POPUPWINDOW | WS_SYSMENU | WS_VISIBLE
|
||||||
CAPTION "Завантаження..."
|
CAPTION "Завантаження..."
|
||||||
FONT 8, "MS Shell Dlg"
|
FONT 8, "MS Shell Dlg"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -194,7 +194,7 @@ BEGIN
|
||||||
IDS_INSTALL "Встановити"
|
IDS_INSTALL "Встановити"
|
||||||
IDS_UNINSTALL "Видалити"
|
IDS_UNINSTALL "Видалити"
|
||||||
IDS_MODIFY "Змінити"
|
IDS_MODIFY "Змінити"
|
||||||
IDS_APPS_COUNT "Kількість додатків: %d"
|
IDS_APPS_COUNT "Kількість додатків: %d; Обрано: %d"
|
||||||
IDS_WELCOME_TITLE "Ласкаво просимо в Менеджер додатків ReactOS!\n\n"
|
IDS_WELCOME_TITLE "Ласкаво просимо в Менеджер додатків ReactOS!\n\n"
|
||||||
IDS_WELCOME_TEXT "Виберіть категорію зліва, а потім виберіть програми для встановлення чи видалення.\nСторінка ReactOS: "
|
IDS_WELCOME_TEXT "Виберіть категорію зліва, а потім виберіть програми для встановлення чи видалення.\nСторінка ReactOS: "
|
||||||
IDS_WELCOME_URL "http://www.reactos.org"
|
IDS_WELCOME_URL "http://www.reactos.org"
|
||||||
|
|
Loading…
Reference in a new issue