ReactOS 0.4.15-dev-7924-g5949c20
CApplicationView Class Reference

#include <appview.h>

Inheritance diagram for CApplicationView:
Collaboration diagram for CApplicationView:

Public Member Functions

 CApplicationView (CMainWindow *MainWindow)
 
 ~CApplicationView ()
 
HWND Create (HWND hwndParent)
 
void SetRedraw (BOOL bRedraw)
 
void SetFocusOnSearchBar ()
 
BOOL SetDisplayAppType (APPLICATION_VIEW_TYPE AppType)
 
BOOL AddApplication (CAppInfo *InstAppInfo, BOOL InitialCheckState)
 
VOID SetWatermark (const CStringW &Text)
 
void CheckAll ()
 
PVOID GetFocusedItemData ()
 
int GetItemCount ()
 
VOID AppendTabOrderWindow (int Direction, ATL::CSimpleArray< HWND > &TabOrderList)
 
VOID ItemGetFocus (LPVOID CallbackParam)
 
VOID ItemCheckStateChanged (BOOL bChecked, LPVOID CallbackParam)
 
- Public Member Functions inherited from CUiWindow< CWindowImpl< CApplicationView > >
virtual CUiBoxAsBox ()
 
HWND GetWindow ()
 
virtual VOID ComputeMinimalSize (SIZE *size)
 
virtual VOID ComputeContentBounds (RECT *rect)
 
virtual DWORD_PTR CountSizableChildren ()
 
virtual HDWP OnParentSize (RECT parentRect, HDWP hDwp)
 
virtual VOID AppendTabOrderWindow (int Direction, ATL::CSimpleArray< HWND > &TabOrderList)
 
virtual ~CUiWindow ()
 
VOID GetWindowTextW (CStringW &szText)
 
- Public Member Functions inherited from CUiPrimitive
virtual ~CUiPrimitive ()
 
virtual CUiBoxAsBox ()
 
virtual VOID ComputeMinimalSize (SIZE *size)
 
virtual VOID ComputeContentBounds (RECT *rect)
 
virtual DWORD_PTR CountSizableChildren ()
 
virtual HDWP OnParentSize (RECT parentRect, HDWP hDwp)
 

Static Public Member Functions

static ATL::CWndClassInfoGetWndClassInfo ()
 

Private Member Functions

BOOL ProcessWindowMessage (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT &theResult, DWORD dwMapId)
 
BOOL CreateToolbar ()
 
BOOL CreateSearchBar ()
 
BOOL CreateComboBox ()
 
BOOL CreateHSplitter ()
 
BOOL CreateListView ()
 
BOOL CreateAppInfoDisplay ()
 
VOID OnSize (HWND hwnd, WPARAM wParam, LPARAM lParam)
 
VOID OnCommand (WPARAM wParam, LPARAM lParam)
 

Private Attributes

CUiPanelm_Panel = NULL
 
CMainToolbarm_Toolbar = NULL
 
CUiWindow< CComboBox > * m_ComboBox = NULL
 
CUiWindow< CSearchBar > * m_SearchBar = NULL
 
CAppsListViewm_ListView = NULL
 
CAppInfoDisplaym_AppsInfo = NULL
 
CUiSplitPanelm_HSplitter = NULL
 
CMainWindowm_MainWindow = NULL
 
APPLICATION_VIEW_TYPE ApplicationViewType = AppViewTypeAvailableApps
 

Additional Inherited Members

- Public Attributes inherited from CUiBox
CUiMargin m_Margin
 
CUiAlignment m_HorizontalAlignment
 
CUiAlignment m_VerticalAlignment
 
- Protected Member Functions inherited from CUiBox
 CUiBox ()
 
virtual VOID ComputeRect (RECT parentRect, RECT currentRect, RECT *newRect)
 
- Protected Attributes inherited from CUiPrimitive
CUiPrimitivem_Parent
 

Detailed Description

Definition at line 342 of file appview.h.

Constructor & Destructor Documentation

◆ CApplicationView()

CApplicationView::CApplicationView ( CMainWindow MainWindow)

Definition at line 1778 of file appview.cpp.

1778 : m_MainWindow(MainWindow)
1779{
1780}
CMainWindow * m_MainWindow
Definition: appview.h:352

◆ ~CApplicationView()

CApplicationView::~CApplicationView ( )

Definition at line 1782 of file appview.cpp.

1783{
1784 delete m_Toolbar;
1785 delete m_SearchBar;
1786 delete m_ListView;
1787 delete m_AppsInfo;
1788 delete m_HSplitter;
1789}
CUiWindow< CSearchBar > * m_SearchBar
Definition: appview.h:348
CAppInfoDisplay * m_AppsInfo
Definition: appview.h:350
CUiSplitPanel * m_HSplitter
Definition: appview.h:351
CMainToolbar * m_Toolbar
Definition: appview.h:346
CAppsListView * m_ListView
Definition: appview.h:349

Member Function Documentation

◆ AddApplication()

BOOL CApplicationView::AddApplication ( CAppInfo InstAppInfo,
BOOL  InitialCheckState 
)

Definition at line 1856 of file appview.cpp.

1857{
1858 return m_ListView->AddApplication(AppInfo, InitialCheckState);
1859}
BOOL AddApplication(CAppInfo *AppInfo, BOOL InitialCheckState)
Definition: appview.cpp:1285

Referenced by CMainWindow::AddApplicationsToView().

◆ AppendTabOrderWindow()

VOID CApplicationView::AppendTabOrderWindow ( int  Direction,
ATL::CSimpleArray< HWND > &  TabOrderList 
)
virtual

Reimplemented from CUiWindow< CWindowImpl< CApplicationView > >.

Definition at line 1886 of file appview.cpp.

1887{
1893}
CUiWindow< CComboBox > * m_ComboBox
Definition: appview.h:347
virtual VOID AppendTabOrderWindow(int Direction, ATL::CSimpleArray< HWND > &TabOrderList)
Definition: rosui.h:546
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION Direction

Referenced by CMainWindow::HandleTabOrder().

◆ CheckAll()

void CApplicationView::CheckAll ( )

Definition at line 1868 of file appview.cpp.

1869{
1871}
VOID CheckAll()
Definition: appview.cpp:1187

Referenced by CMainWindow::OnCommand().

◆ Create()

HWND CApplicationView::Create ( HWND  hwndParent)

Definition at line 1808 of file appview.cpp.

1809{
1810 RECT r = {0, 0, 0, 0};
1811
1813
1815}
#define IDR_APPLICATIONMENU
Definition: resource.h:70
HWND Create(HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
Definition: atlwin.h:1734
static HWND hwndParent
Definition: cryptui.c:300
HINSTANCE hInst
Definition: dxdiag.c:13
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
#define L(x)
Definition: ntvdm.h:50
#define WS_CHILD
Definition: pedump.c:617
#define WS_VISIBLE
Definition: pedump.c:620
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
#define WS_CLIPCHILDREN
Definition: pedump.c:619
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)

Referenced by CMainWindow::CreateApplicationView().

◆ CreateAppInfoDisplay()

BOOL CApplicationView::CreateAppInfoDisplay ( )
private

Definition at line 1594 of file appview.cpp.

1595{
1600
1601 return m_AppsInfo->Create(m_hWnd) != NULL;
1602}
HWND Create(HWND hwndParent)
Definition: appview.cpp:911
INT Append(T *ptr)
Definition: rosui.h:87
CUiAlignment m_HorizontalAlignment
Definition: rosui.h:257
CUiAlignment m_VerticalAlignment
Definition: rosui.h:258
CUiCollection & Second()
Definition: rosui.h:623
#define NULL
Definition: types.h:112
@ UiAlign_Stretch
Definition: rosui.h:249

Referenced by ProcessWindowMessage().

◆ CreateComboBox()

BOOL CApplicationView::CreateComboBox ( )
private

Definition at line 1556 of file appview.cpp.

1557{
1561 m_ComboBox->m_Margin.top = 4;
1562
1563 return m_ComboBox->Create(m_Toolbar->m_hWnd) != NULL;
1564}
HWND Create(HWND hwndParent)
Definition: appview.cpp:212
CUiMargin m_Margin
Definition: rosui.h:255
@ UiAlign_LeftTop
Definition: rosui.h:246
@ UiAlign_RightBtm
Definition: rosui.h:248
LONG top
Definition: windef.h:307

Referenced by ProcessWindowMessage().

◆ CreateHSplitter()

BOOL CApplicationView::CreateHSplitter ( )
private

Definition at line 1567 of file appview.cpp.

1568{
1569 m_HSplitter = new CUiSplitPanel();
1574 m_HSplitter->m_Pos = INT_MAX; // set INT_MAX to use lowest possible position (m_MinSecond)
1575 m_HSplitter->m_MinFirst = 10;
1576 m_HSplitter->m_MinSecond = 140;
1578
1579 return m_HSplitter->Create(m_hWnd) != NULL;
1580}
CUiPanel * m_Panel
Definition: appview.h:345
CUiCollection & Children()
Definition: rosui.h:384
INT m_Pos
Definition: rosui.h:584
BOOL m_Horizontal
Definition: rosui.h:585
BOOL m_DynamicFirst
Definition: rosui.h:586
INT m_MinSecond
Definition: rosui.h:588
HWND Create(HWND hwndParent)
Definition: rosui.h:867
INT m_MinFirst
Definition: rosui.h:587
#define TRUE
Definition: types.h:120
#define INT_MAX
Definition: limits.h:40

Referenced by ProcessWindowMessage().

◆ CreateListView()

BOOL CApplicationView::CreateListView ( )
private

Definition at line 1583 of file appview.cpp.

1584{
1585 m_ListView = new CAppsListView();
1589
1590 return m_ListView->Create(m_hWnd) != NULL;
1591}
HWND Create(HWND hwndParent)
Definition: appview.cpp:1144
CUiCollection & First()
Definition: rosui.h:618

Referenced by ProcessWindowMessage().

◆ CreateSearchBar()

BOOL CApplicationView::CreateSearchBar ( )
private

Definition at line 1544 of file appview.cpp.

1545{
1551
1552 return m_SearchBar->Create(m_Toolbar->m_hWnd) != NULL;
1553}
#define TOOLBAR_PADDING
Definition: appview.h:37
HWND Create(HWND hwndParent)
Definition: appview.cpp:191
LONG right
Definition: windef.h:308

Referenced by ProcessWindowMessage().

◆ CreateToolbar()

BOOL CApplicationView::CreateToolbar ( )
private

Definition at line 1533 of file appview.cpp.

1534{
1535 m_Toolbar = new CMainToolbar();
1539
1540 return m_Toolbar->Create(m_hWnd) != NULL;
1541}
HWND Create(HWND hwndParent)
Definition: appview.cpp:99

Referenced by ProcessWindowMessage().

◆ GetFocusedItemData()

PVOID CApplicationView::GetFocusedItemData ( )

◆ GetItemCount()

int CApplicationView::GetItemCount ( )

Definition at line 1880 of file appview.cpp.

1881{
1882 return m_ListView->GetItemCount();
1883}

Referenced by CMainWindow::UpdateApplicationsList(), and CMainWindow::UpdateStatusBarText().

◆ GetWndClassInfo()

ATL::CWndClassInfo & CApplicationView::GetWndClassInfo ( )
static

Definition at line 1792 of file appview.cpp.

1793{
1794 DWORD csStyle = CS_VREDRAW | CS_HREDRAW;
1795 static ATL::CWndClassInfo wc = {
1796 {sizeof(WNDCLASSEX), csStyle, StartWindowProc, 0, 0, NULL, NULL, NULL, (HBRUSH)(COLOR_BTNFACE + 1), NULL,
1797 L"RAppsApplicationView", NULL},
1798 NULL,
1799 NULL,
1800 IDC_ARROW,
1801 TRUE,
1802 0,
1803 _T("")};
1804 return wc;
1805}
unsigned long DWORD
Definition: ntddk_ex.h:95
#define _T(x)
Definition: vfdio.h:22
#define CS_VREDRAW
Definition: winuser.h:658
#define CS_HREDRAW
Definition: winuser.h:653
#define IDC_ARROW
Definition: winuser.h:687
WNDCLASSEXA WNDCLASSEX
Definition: winuser.h:5719
#define COLOR_BTNFACE
Definition: winuser.h:928

◆ ItemCheckStateChanged()

VOID CApplicationView::ItemCheckStateChanged ( BOOL  bChecked,
LPVOID  CallbackParam 
)

Definition at line 1920 of file appview.cpp.

1921{
1922 m_MainWindow->ItemCheckStateChanged(bChecked, CallbackParam);
1923}
VOID ItemCheckStateChanged(BOOL bChecked, LPVOID CallbackParam)
Definition: gui.cpp:705

Referenced by ProcessWindowMessage().

◆ ItemGetFocus()

VOID CApplicationView::ItemGetFocus ( LPVOID  CallbackParam)

Definition at line 1898 of file appview.cpp.

1899{
1900 if (CallbackParam)
1901 {
1902 CAppInfo *Info = static_cast<CAppInfo *>(CallbackParam);
1904
1906 {
1907 HMENU hMenu = ::GetMenu(m_hWnd);
1908
1909 BOOL CanModify = Info->CanModify();
1910
1911 EnableMenuItem(hMenu, ID_MODIFY, CanModify ? MF_ENABLED : MF_GRAYED);
1912 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, CanModify);
1913 }
1914 }
1915}
@ AppViewTypeInstalledApps
Definition: appview.h:72
#define ID_MODIFY
Definition: resource.h:78
VOID ShowAppInfo(CAppInfo *Info)
Definition: appview.cpp:919
APPLICATION_VIEW_TYPE ApplicationViewType
Definition: appview.h:353
unsigned int BOOL
Definition: ntddk_ex.h:94
#define TB_ENABLEBUTTON
Definition: commctrl.h:1042
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:690
#define MF_ENABLED
Definition: winuser.h:128
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
HMENU WINAPI GetMenu(_In_ HWND)
#define MF_GRAYED
Definition: winuser.h:129

Referenced by ProcessWindowMessage().

◆ OnCommand()

VOID CApplicationView::OnCommand ( WPARAM  wParam,
LPARAM  lParam 
)
private

Definition at line 1678 of file appview.cpp.

1679{
1680 if (lParam)
1681 {
1682 if ((HWND)lParam == m_SearchBar->GetWindow())
1683 {
1684 CStringW szBuf;
1685 switch (HIWORD(wParam))
1686 {
1687 case EN_SETFOCUS:
1688 {
1689 CStringW szWndText;
1690
1691 szBuf.LoadStringW(IDS_SEARCH_TEXT);
1692 m_SearchBar->GetWindowTextW(szWndText);
1693 if (szBuf == szWndText)
1694 {
1695 m_SearchBar->SetWindowTextW(L"");
1696 }
1697 }
1698 break;
1699
1700 case EN_KILLFOCUS:
1701 {
1703 if (szBuf.IsEmpty())
1704 {
1705 szBuf.LoadStringW(IDS_SEARCH_TEXT);
1706 m_SearchBar->SetWindowTextW(szBuf.GetString());
1707 }
1708 }
1709 break;
1710
1711 case EN_CHANGE:
1712 {
1713 CStringW szWndText;
1714
1715 szBuf.LoadStringW(IDS_SEARCH_TEXT);
1716 m_SearchBar->GetWindowTextW(szWndText);
1717 if (szBuf == szWndText)
1718 {
1719 szWndText = L"";
1720 m_MainWindow->SearchTextChanged(szWndText);
1721 }
1722 else
1723 {
1724 m_MainWindow->SearchTextChanged(szWndText);
1725 }
1726 }
1727 break;
1728 }
1729
1730 return;
1731 }
1732 else if ((HWND)lParam == m_ComboBox->GetWindow())
1733 {
1734 int NotifyCode = HIWORD(wParam);
1735 switch (NotifyCode)
1736 {
1737 case CBN_SELCHANGE:
1738 int CurrSelection = m_ComboBox->SendMessageW(CB_GETCURSEL);
1739
1740 int ViewModeList[] = {LV_VIEW_DETAILS, LV_VIEW_LIST, LV_VIEW_TILE};
1741 ATLASSERT(CurrSelection < (int)_countof(ViewModeList));
1742 if (!m_ListView->SetViewMode(ViewModeList[CurrSelection]))
1743 {
1744 MessageBoxW(L"View mode invalid or unimplemented");
1745 }
1746 break;
1747 }
1748
1749 return;
1750 }
1751 else if ((HWND)lParam == m_Toolbar->GetWindow())
1752 {
1753 // the message is sent from Toolbar. fall down to continue process
1754 }
1755 else
1756 {
1757 return;
1758 }
1759 }
1760
1761 // the LOWORD of wParam contains a Menu or Control ID
1762 WORD wCommand = LOWORD(wParam);
1763
1764 switch (wCommand)
1765 {
1766 case ID_INSTALL:
1767 case ID_UNINSTALL:
1768 case ID_MODIFY:
1769 case ID_REGREMOVE:
1770 case ID_REFRESH:
1771 case ID_RESETDB:
1772 case ID_CHECK_ALL:
1773 m_MainWindow->SendMessageW(WM_COMMAND, wCommand, 0);
1774 break;
1775 }
1776}
#define ATLASSERT(x)
Definition: CComVariant.cpp:10
#define ID_REFRESH
Definition: resource.h:16
#define ID_REGREMOVE
Definition: resource.h:83
#define IDS_SEARCH_TEXT
Definition: resource.h:93
#define ID_UNINSTALL
Definition: resource.h:75
#define ID_CHECK_ALL
Definition: resource.h:85
#define ID_RESETDB
Definition: resource.h:84
#define ID_INSTALL
Definition: resource.h:74
bool IsEmpty() const noexcept
Definition: atlsimpstr.h:394
PXSTR GetString() noexcept
Definition: atlsimpstr.h:367
BOOL SetViewMode(DWORD ViewMode)
Definition: appview.cpp:1279
BOOL SearchTextChanged(CStringW &SearchText)
Definition: gui.cpp:748
VOID GetWindowTextW(CStringW &szText)
Definition: rosui.h:561
HWND GetWindow()
Definition: rosui.h:492
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
unsigned short WORD
Definition: ntddk_ex.h:93
#define LOWORD(l)
Definition: pedump.c:82
#define LV_VIEW_DETAILS
Definition: commctrl.h:2841
#define LV_VIEW_LIST
Definition: commctrl.h:2843
#define LV_VIEW_TILE
Definition: commctrl.h:2844
#define _countof(array)
Definition: sndvol32.h:68
#define HIWORD(l)
Definition: typedefs.h:247
_In_ ULONG NotifyCode
Definition: winddi.h:4265
#define EN_KILLFOCUS
Definition: winuser.h:2025
#define EN_SETFOCUS
Definition: winuser.h:2027
#define WM_COMMAND
Definition: winuser.h:1740
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
#define CBN_SELCHANGE
Definition: winuser.h:1979
#define CB_GETCURSEL
Definition: winuser.h:1943
#define EN_CHANGE
Definition: winuser.h:2022

Referenced by ProcessWindowMessage().

◆ OnSize()

VOID CApplicationView::OnSize ( HWND  hwnd,
WPARAM  wParam,
LPARAM  lParam 
)
private

Definition at line 1618 of file appview.cpp.

1619{
1620 if (wParam == SIZE_MINIMIZED)
1621 return;
1622
1623 /* Size tool bar */
1625
1626 /* Automatically hide captions */
1627 DWORD dToolbarTreshold = m_Toolbar->GetMaxButtonsWidth();
1628 DWORD dSearchbarMargin = (LOWORD(lParam) - m_SearchBar->m_Width - m_ComboBox->m_Width - TOOLBAR_PADDING * 2);
1629
1630 if (dSearchbarMargin > dToolbarTreshold)
1631 {
1633 }
1634 else if (dSearchbarMargin < dToolbarTreshold)
1635 {
1637 }
1638
1639 RECT r = {0, 0, LOWORD(lParam), HIWORD(lParam)};
1640 HDWP hdwp = NULL;
1642
1643 hdwp = BeginDeferWindowPos(count);
1644 if (hdwp)
1645 {
1646 hdwp = m_Panel->OnParentSize(r, hdwp);
1647 if (hdwp)
1648 {
1649 EndDeferWindowPos(hdwp);
1650 }
1651 }
1652
1654 hdwp = BeginDeferWindowPos(count);
1655 if (hdwp)
1656 {
1657 hdwp = m_SearchBar->OnParentSize(r, hdwp);
1658 if (hdwp)
1659 {
1660 EndDeferWindowPos(hdwp);
1661 }
1662 }
1663
1666 hdwp = BeginDeferWindowPos(count);
1667 if (hdwp)
1668 {
1669 hdwp = m_ComboBox->OnParentSize(r, hdwp);
1670 if (hdwp)
1671 {
1672 EndDeferWindowPos(hdwp);
1673 }
1674 }
1675}
int m_Width
Definition: appview.h:333
VOID ShowButtonCaption()
Definition: appview.cpp:165
DWORD GetMaxButtonsWidth() const
Definition: appview.cpp:172
VOID HideButtonCaption()
Definition: appview.cpp:158
const INT m_Width
Definition: appview.h:305
DWORD AutoSize()
Definition: rosctrls.h:378
virtual DWORD_PTR CountSizableChildren()
Definition: rosui.h:439
virtual HDWP OnParentSize(RECT parentRect, HDWP hDwp)
Definition: rosui.h:454
virtual HDWP OnParentSize(RECT parentRect, HDWP hDwp)
Definition: rosui.h:522
virtual DWORD_PTR CountSizableChildren()
Definition: rosui.h:516
GLuint GLuint GLsizei count
Definition: gl.h:1545
int32_t INT
Definition: typedefs.h:58
#define SIZE_MINIMIZED
Definition: winuser.h:2506
BOOL WINAPI EndDeferWindowPos(_In_ HDWP)
HDWP WINAPI BeginDeferWindowPos(_In_ int)

Referenced by ProcessWindowMessage().

◆ ProcessWindowMessage()

BOOL CApplicationView::ProcessWindowMessage ( HWND  hwnd,
UINT  message,
WPARAM  wParam,
LPARAM  lParam,
LRESULT theResult,
DWORD  dwMapId 
)
private

Definition at line 1375 of file appview.cpp.

1382{
1383 theResult = 0;
1384 switch (message)
1385 {
1386 case WM_CREATE:
1387 {
1388 BOOL bSuccess = TRUE;
1389 m_Panel = new CUiPanel();
1392
1399
1401
1402 RECT rTop;
1403
1404 ::GetWindowRect(m_Toolbar->m_hWnd, &rTop);
1405 m_HSplitter->m_Margin.top = rTop.bottom - rTop.top;
1406 if (!bSuccess)
1407 {
1408 return -1; // creation failure
1409 }
1410 }
1411 break;
1412
1413 case WM_NOTIFY:
1414 {
1415 LPNMHDR pNotifyHeader = (LPNMHDR)lParam;
1416 if (pNotifyHeader->hwndFrom == m_ListView->GetWindow())
1417 {
1418 switch (pNotifyHeader->code)
1419 {
1420 case LVN_ITEMCHANGED:
1421 {
1423
1424 /* Check if this is a valid item
1425 * (technically, it can be also an unselect) */
1426 INT ItemIndex = pnic->iItem;
1427 if (ItemIndex == -1 || ItemIndex >= ListView_GetItemCount(pnic->hdr.hwndFrom))
1428 {
1429 break;
1430 }
1431
1432 /* Check if the focus has been moved to another item */
1433 if ((pnic->uChanged & LVIF_STATE) && (pnic->uNewState & LVIS_FOCUSED) &&
1434 !(pnic->uOldState & LVIS_FOCUSED))
1435 {
1436 ItemGetFocus((LPVOID)pnic->lParam);
1437 }
1438
1439 /* Check if the item is checked/unchecked */
1440 if (pnic->uChanged & LVIF_STATE)
1441 {
1442 int iOldState = STATEIMAGETOINDEX(pnic->uOldState);
1443 int iNewState = STATEIMAGETOINDEX(pnic->uNewState);
1444
1445 if (iOldState == STATEIMAGE_UNCHECKED && iNewState == STATEIMAGE_CHECKED)
1446 {
1447 // this item is just checked
1450 }
1451 else if (iOldState == STATEIMAGE_CHECKED && iNewState == STATEIMAGE_UNCHECKED)
1452 {
1453 // this item is just unchecked
1456 }
1457 }
1458 }
1459 break;
1460
1461 case LVN_COLUMNCLICK:
1462 {
1464
1465 m_ListView->ColumnClick(pnmv);
1466 }
1467 break;
1468
1469 case NM_DBLCLK:
1470 {
1472 if (Item->iItem != -1)
1473 {
1474 /* this won't do anything if the program is already installed */
1475
1477 {
1479 (CAppInfo *)m_ListView->GetItemData(Item->iItem));
1480 }
1481 }
1482 }
1483 break;
1484
1485 case NM_RCLICK:
1486 {
1487 if (((LPNMLISTVIEW)lParam)->iItem != -1)
1488 {
1489 ShowPopupMenuEx(m_hWnd, m_hWnd, 0, ID_INSTALL);
1490 }
1491 }
1492 break;
1493 }
1494 }
1495 else if (pNotifyHeader->hwndFrom == m_Toolbar->GetWindow())
1496 {
1497 switch (pNotifyHeader->code)
1498 {
1499 case TTN_GETDISPINFO:
1501 break;
1502 }
1503 }
1504 }
1505 break;
1506
1507 case WM_SYSCOLORCHANGE:
1508 {
1509 /* Forward WM_SYSCOLORCHANGE to common controls */
1510 m_ListView->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1512 m_Toolbar->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1513 m_ComboBox->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1514 }
1515 break;
1516
1517 case WM_SIZE:
1518 {
1520 break;
1521 }
1522
1523 case WM_COMMAND:
1524 {
1526 }
1527 break;
1528 }
1529 return FALSE;
1530}
#define STATEIMAGETOINDEX(x)
Definition: appview.h:60
#define STATEIMAGE_UNCHECKED
Definition: appview.h:64
#define STATEIMAGE_CHECKED
Definition: appview.h:65
@ AppViewTypeAvailableApps
Definition: appview.h:71
VOID ShowPopupMenuEx(HWND hwnd, HWND hwndOwner, UINT MenuID, UINT DefaultItem)
Definition: misc.cpp:46
BOOL CreateToolbar()
Definition: appview.cpp:1533
VOID ItemGetFocus(LPVOID CallbackParam)
Definition: appview.cpp:1898
BOOL CreateHSplitter()
Definition: appview.cpp:1567
BOOL CreateAppInfoDisplay()
Definition: appview.cpp:1594
VOID OnCommand(WPARAM wParam, LPARAM lParam)
Definition: appview.cpp:1678
VOID OnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
Definition: appview.cpp:1618
BOOL CreateComboBox()
Definition: appview.cpp:1556
BOOL CreateSearchBar()
Definition: appview.cpp:1544
BOOL CreateListView()
Definition: appview.cpp:1583
VOID ItemCheckStateChanged(BOOL bChecked, LPVOID CallbackParam)
Definition: appview.cpp:1920
VOID ColumnClick(LPNMLISTVIEW pnmv)
Definition: appview.cpp:1025
VOID ItemCheckStateNotify(int iItem, BOOL bCheck)
Definition: appview.cpp:1359
VOID OnGetDispInfo(LPTOOLTIPTEXT lpttt)
Definition: appview.cpp:62
BOOL InstallApplication(CAppInfo *Info)
Definition: gui.cpp:733
#define FALSE
Definition: types.h:117
static BOOLEAN bSuccess
Definition: drive.cpp:433
#define LVN_COLUMNCLICK
Definition: commctrl.h:3139
#define NM_DBLCLK
Definition: commctrl.h:131
#define LVIF_STATE
Definition: commctrl.h:2312
#define TTN_GETDISPINFO
Definition: commctrl.h:1878
#define ListView_GetItemCount(hwnd)
Definition: commctrl.h:2307
struct tagNMITEMACTIVATE * LPNMITEMACTIVATE
struct tagNMLISTVIEW * LPNMLISTVIEW
#define NM_RCLICK
Definition: commctrl.h:133
#define LVN_ITEMCHANGED
Definition: commctrl.h:3131
#define LVIS_FOCUSED
Definition: commctrl.h:2318
#define LPTOOLTIPTEXT
Definition: commctrl.h:1890
#define EM_SETBKGNDCOLOR
Definition: richedit.h:100
#define WM_NOTIFY
Definition: richedit.h:61
Definition: tftpd.h:60
UINT code
Definition: winuser.h:3159
HWND hwndFrom
Definition: winuser.h:3157
UINT uNewState
Definition: commctrl.h:3036
LPARAM lParam
Definition: commctrl.h:3040
UINT uOldState
Definition: commctrl.h:3037
LONG bottom
Definition: windef.h:309
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
DWORD WINAPI GetSysColor(_In_ int)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
#define WM_CREATE
Definition: winuser.h:1608
#define WM_SIZE
Definition: winuser.h:1611
#define WM_SYSCOLORCHANGE
Definition: winuser.h:1626
struct tagNMHDR * LPNMHDR

◆ SetDisplayAppType()

BOOL CApplicationView::SetDisplayAppType ( APPLICATION_VIEW_TYPE  AppType)

Definition at line 1818 of file appview.cpp.

1819{
1820 if (!m_ListView->SetDisplayAppType(AppType))
1821 {
1822 return FALSE;
1823 }
1824 ApplicationViewType = AppType;
1826
1827 HMENU hMenu = ::GetMenu(m_hWnd);
1828 switch (AppType)
1829 {
1835
1836 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, FALSE);
1837 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, TRUE);
1838 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, TRUE);
1839 break;
1840
1846
1847 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, TRUE);
1849 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, FALSE);
1850 break;
1851 }
1852 return TRUE;
1853}
VOID SetWelcomeText()
Definition: appview.cpp:935
BOOL SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
Definition: appview.cpp:1216

Referenced by CMainWindow::UpdateApplicationsList().

◆ SetFocusOnSearchBar()

void CApplicationView::SetFocusOnSearchBar ( )

Definition at line 1612 of file appview.cpp.

1613{
1615}
HWND SetFocus()
Definition: atlwin.h:1198

Referenced by CMainWindow::OnCommand().

◆ SetRedraw()

void CApplicationView::SetRedraw ( BOOL  bRedraw)

Definition at line 1605 of file appview.cpp.

1606{
1607 CWindow::SetRedraw(bRedraw);
1608 m_ListView->SetRedraw(bRedraw);
1609}
void SetRedraw(BOOL bRedraw=TRUE)
Definition: atlwin.h:1234

Referenced by CMainWindow::UpdateApplicationsList().

◆ SetWatermark()

VOID CApplicationView::SetWatermark ( const CStringW Text)

Definition at line 1862 of file appview.cpp.

1863{
1865}
VOID SetWatermark(const CStringW &Text)
Definition: appview.cpp:1004
char * Text
Definition: combotst.c:136

Referenced by CMainWindow::UpdateApplicationsList().

Member Data Documentation

◆ ApplicationViewType

APPLICATION_VIEW_TYPE CApplicationView::ApplicationViewType = AppViewTypeAvailableApps
private

Definition at line 353 of file appview.h.

Referenced by ItemGetFocus(), ProcessWindowMessage(), and SetDisplayAppType().

◆ m_AppsInfo

CAppInfoDisplay* CApplicationView::m_AppsInfo = NULL
private

◆ m_ComboBox

CUiWindow<CComboBox>* CApplicationView::m_ComboBox = NULL
private

◆ m_HSplitter

CUiSplitPanel* CApplicationView::m_HSplitter = NULL
private

◆ m_ListView

◆ m_MainWindow

CMainWindow* CApplicationView::m_MainWindow = NULL
private

Definition at line 352 of file appview.h.

Referenced by ItemCheckStateChanged(), OnCommand(), and ProcessWindowMessage().

◆ m_Panel

CUiPanel* CApplicationView::m_Panel = NULL
private

Definition at line 345 of file appview.h.

Referenced by CreateHSplitter(), CreateToolbar(), OnSize(), and ProcessWindowMessage().

◆ m_SearchBar

CUiWindow<CSearchBar>* CApplicationView::m_SearchBar = NULL
private

◆ m_Toolbar


The documentation for this class was generated from the following files: