mirror of
https://github.com/reactos/reactos.git
synced 2024-08-12 14:16:30 +00:00
[RAPPS] RC of final commit
- Hide checkboxes in "Installed" svn path=/branches/GSoC_2017/rapps/; revision=75686
This commit is contained in:
parent
15a86cdf6a
commit
3f0ba7a08e
|
@ -25,8 +25,7 @@
|
||||||
|
|
||||||
HWND hListView = NULL;
|
HWND hListView = NULL;
|
||||||
|
|
||||||
INT
|
INT GetSystemColorDepth()
|
||||||
GetSystemColorDepth()
|
|
||||||
{
|
{
|
||||||
DEVMODEW pDevMode;
|
DEVMODEW pDevMode;
|
||||||
INT ColorDepth;
|
INT ColorDepth;
|
||||||
|
@ -362,14 +361,30 @@ class CAppsListView :
|
||||||
|
|
||||||
BOOL bHasAllChecked;
|
BOOL bHasAllChecked;
|
||||||
BOOL bAscending;
|
BOOL bAscending;
|
||||||
|
BOOL bHasCheckboxes;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CAppsListView() :
|
CAppsListView() :
|
||||||
bAscending(TRUE),
|
bAscending(TRUE),
|
||||||
bHasAllChecked(FALSE)
|
bHasAllChecked(FALSE),
|
||||||
|
bHasCheckboxes(FALSE)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VOID SetCheckboxesVisible(BOOL bIsVisible)
|
||||||
|
{
|
||||||
|
if (bIsVisible)
|
||||||
|
{
|
||||||
|
SetExtendedListViewStyle(LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetExtendedListViewStyle(LVS_EX_FULLROWSELECT);
|
||||||
|
}
|
||||||
|
|
||||||
|
bHasCheckboxes = bIsVisible;
|
||||||
|
}
|
||||||
|
|
||||||
VOID ColumnClick(LPNMLISTVIEW pnmv)
|
VOID ColumnClick(LPNMLISTVIEW pnmv)
|
||||||
{
|
{
|
||||||
SortContext ctx = {this, pnmv->iSubItem};
|
SortContext ctx = {this, pnmv->iSubItem};
|
||||||
|
@ -482,7 +497,7 @@ public:
|
||||||
|
|
||||||
if (hwnd)
|
if (hwnd)
|
||||||
{
|
{
|
||||||
SetExtendedListViewStyle(LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
|
SetCheckboxesVisible(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return hwnd;
|
return hwnd;
|
||||||
|
@ -494,18 +509,29 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID SetCheckState(INT item, BOOL fCheck)
|
VOID SetCheckState(INT item, BOOL fCheck)
|
||||||
|
{
|
||||||
|
if (bHasCheckboxes)
|
||||||
{
|
{
|
||||||
SetItemState(item, INDEXTOSTATEIMAGEMASK((fCheck) ? 2 : 1), LVIS_STATEIMAGEMASK);
|
SetItemState(item, INDEXTOSTATEIMAGEMASK((fCheck) ? 2 : 1), LVIS_STATEIMAGEMASK);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
VOID CheckAll()
|
VOID CheckAll()
|
||||||
|
{
|
||||||
|
if (bHasCheckboxes)
|
||||||
{
|
{
|
||||||
bHasAllChecked = !bHasAllChecked;
|
bHasAllChecked = !bHasAllChecked;
|
||||||
SetCheckState(-1, bHasAllChecked);
|
SetCheckState(-1, bHasAllChecked);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ATL::CSimpleArray<CAvailableApplicationInfo*> GetCheckedItems()
|
ATL::CSimpleArray<CAvailableApplicationInfo*> GetCheckedItems()
|
||||||
{
|
{
|
||||||
|
if (!bHasCheckboxes)
|
||||||
|
{
|
||||||
|
return ATL::CSimpleArray<CAvailableApplicationInfo*>();
|
||||||
|
}
|
||||||
|
|
||||||
ATL::CSimpleArray<CAvailableApplicationInfo*> list;
|
ATL::CSimpleArray<CAvailableApplicationInfo*> list;
|
||||||
for (INT i = 0; i >= 0; i = GetNextItem(i, LVNI_ALL))
|
for (INT i = 0; i >= 0; i = GetNextItem(i, LVNI_ALL))
|
||||||
{
|
{
|
||||||
|
@ -1475,21 +1501,27 @@ private:
|
||||||
{
|
{
|
||||||
ATL::CStringW szBuffer1, szBuffer2;
|
ATL::CStringW szBuffer1, szBuffer2;
|
||||||
HIMAGELIST hImageListView;
|
HIMAGELIST hImageListView;
|
||||||
bUpdating = TRUE;
|
BOOL bWasInInstalled = IS_INSTALLED_ENUM(SelectedEnumType);
|
||||||
|
|
||||||
|
bUpdating = TRUE;
|
||||||
m_ListView->SetRedraw(FALSE);
|
m_ListView->SetRedraw(FALSE);
|
||||||
|
|
||||||
nSelectedApps = 0;
|
nSelectedApps = 0;
|
||||||
if (EnumType < 0) EnumType = SelectedEnumType;
|
if (EnumType < 0)
|
||||||
|
{
|
||||||
|
EnumType = SelectedEnumType;
|
||||||
|
}
|
||||||
|
|
||||||
if (IS_INSTALLED_ENUM(SelectedEnumType))
|
//if previous one was INSTALLED purge the list
|
||||||
|
//TODO: make the Installed category a separate class to avoid doing this
|
||||||
|
if (bWasInInstalled)
|
||||||
{
|
{
|
||||||
FreeInstalledAppList();
|
FreeInstalledAppList();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ListView->DeleteAllItems();
|
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,
|
||||||
|
@ -1500,18 +1532,30 @@ private:
|
||||||
ImageList_Destroy(hImageListBuf);
|
ImageList_Destroy(hImageListBuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//if previous one was INSTALLED purge the list
|
||||||
if (IS_INSTALLED_ENUM(EnumType))
|
if (IS_INSTALLED_ENUM(EnumType))
|
||||||
{
|
{
|
||||||
|
if (!bWasInInstalled)
|
||||||
|
{
|
||||||
|
m_ListView->SetCheckboxesVisible(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
HICON hIcon = (HICON) LoadIconW(hInst, MAKEINTRESOURCEW(IDI_MAIN));
|
HICON hIcon = (HICON) LoadIconW(hInst, MAKEINTRESOURCEW(IDI_MAIN));
|
||||||
ImageList_AddIcon(hImageListView, hIcon);
|
ImageList_AddIcon(hImageListView, hIcon);
|
||||||
DestroyIcon(hIcon);
|
DestroyIcon(hIcon);
|
||||||
/* Enum installed applications and updates */
|
|
||||||
|
// Enum installed applications and updates
|
||||||
EnumInstalledApplications(EnumType, TRUE, s_EnumInstalledAppProc);
|
EnumInstalledApplications(EnumType, TRUE, s_EnumInstalledAppProc);
|
||||||
EnumInstalledApplications(EnumType, FALSE, s_EnumInstalledAppProc);
|
EnumInstalledApplications(EnumType, FALSE, s_EnumInstalledAppProc);
|
||||||
}
|
}
|
||||||
else if (IsAvailableEnum(EnumType))
|
else if (IsAvailableEnum(EnumType))
|
||||||
{
|
{
|
||||||
/* Enum available applications */
|
if (bWasInInstalled)
|
||||||
|
{
|
||||||
|
m_ListView->SetCheckboxesVisible(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Enum available applications
|
||||||
m_AvailableApps.EnumAvailableApplications(EnumType, s_EnumAvailableAppProc);
|
m_AvailableApps.EnumAvailableApplications(EnumType, s_EnumAvailableAppProc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1519,7 +1563,7 @@ private:
|
||||||
UpdateStatusBarText();
|
UpdateStatusBarText();
|
||||||
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 (m_ListView->GetItemCount() > 0)
|
if (m_ListView->GetItemCount() > 0)
|
||||||
{
|
{
|
||||||
ListView_SetColumnWidth(m_ListView->GetWindow(), 0, LVSCW_AUTOSIZE);
|
ListView_SetColumnWidth(m_ListView->GetWindow(), 0, LVSCW_AUTOSIZE);
|
||||||
|
|
Loading…
Reference in a new issue