ReactOS 0.4.15-dev-8434-g155a7c7
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 345 of file appview.h.

Constructor & Destructor Documentation

◆ CApplicationView()

CApplicationView::CApplicationView ( CMainWindow MainWindow)

Definition at line 1866 of file appview.cpp.

1866 : m_MainWindow(MainWindow)
1867{
1868}
CMainWindow * m_MainWindow
Definition: appview.h:355

◆ ~CApplicationView()

CApplicationView::~CApplicationView ( )

Definition at line 1870 of file appview.cpp.

1871{
1872 delete m_Toolbar;
1873 delete m_SearchBar;
1874 delete m_ListView;
1875 delete m_AppsInfo;
1876 delete m_HSplitter;
1877}
CUiWindow< CSearchBar > * m_SearchBar
Definition: appview.h:351
CAppInfoDisplay * m_AppsInfo
Definition: appview.h:353
CUiSplitPanel * m_HSplitter
Definition: appview.h:354
CMainToolbar * m_Toolbar
Definition: appview.h:349
CAppsListView * m_ListView
Definition: appview.h:352

Member Function Documentation

◆ AddApplication()

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

Definition at line 1944 of file appview.cpp.

1945{
1946 return m_ListView->AddApplication(AppInfo, InitialCheckState);
1947}
BOOL AddApplication(CAppInfo *AppInfo, BOOL InitialCheckState)
Definition: appview.cpp:1399

Referenced by CMainWindow::AddApplicationsToView().

◆ AppendTabOrderWindow()

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

Reimplemented from CUiWindow< CWindowImpl< CApplicationView > >.

Definition at line 1974 of file appview.cpp.

1975{
1981}
CUiWindow< CComboBox > * m_ComboBox
Definition: appview.h:350
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 1956 of file appview.cpp.

1957{
1959}
VOID CheckAll()
Definition: appview.cpp:1284

Referenced by CMainWindow::OnCommand().

◆ Create()

HWND CApplicationView::Create ( HWND  hwndParent)

Definition at line 1896 of file appview.cpp.

1897{
1898 RECT r = {0, 0, 0, 0};
1899
1901
1903}
#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 1682 of file appview.cpp.

1683{
1688
1689 return m_AppsInfo->Create(m_hWnd) != NULL;
1690}
HWND Create(HWND hwndParent)
Definition: appview.cpp:914
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 1644 of file appview.cpp.

1645{
1649 m_ComboBox->m_Margin.top = 4;
1650
1651 return m_ComboBox->Create(m_Toolbar->m_hWnd) != NULL;
1652}
HWND Create(HWND hwndParent)
Definition: appview.cpp:215
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 1655 of file appview.cpp.

1656{
1657 m_HSplitter = new CUiSplitPanel();
1662 m_HSplitter->m_Pos = INT_MAX; // set INT_MAX to use lowest possible position (m_MinSecond)
1663 m_HSplitter->m_MinFirst = 10;
1664 m_HSplitter->m_MinSecond = 140;
1666
1667 return m_HSplitter->Create(m_hWnd) != NULL;
1668}
CUiPanel * m_Panel
Definition: appview.h:348
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 1671 of file appview.cpp.

1672{
1673 m_ListView = new CAppsListView();
1677
1678 return m_ListView->Create(m_hWnd) != NULL;
1679}
HWND Create(HWND hwndParent)
Definition: appview.cpp:1246
CUiCollection & First()
Definition: rosui.h:618

Referenced by ProcessWindowMessage().

◆ CreateSearchBar()

BOOL CApplicationView::CreateSearchBar ( )
private

Definition at line 1632 of file appview.cpp.

1633{
1639
1640 return m_SearchBar->Create(m_Toolbar->m_hWnd) != NULL;
1641}
#define TOOLBAR_PADDING
Definition: appview.h:36
HWND Create(HWND hwndParent)
Definition: appview.cpp:194
LONG right
Definition: windef.h:308

Referenced by ProcessWindowMessage().

◆ CreateToolbar()

BOOL CApplicationView::CreateToolbar ( )
private

Definition at line 1621 of file appview.cpp.

1622{
1623 m_Toolbar = new CMainToolbar();
1627
1628 return m_Toolbar->Create(m_hWnd) != NULL;
1629}
HWND Create(HWND hwndParent)
Definition: appview.cpp:102

Referenced by ProcessWindowMessage().

◆ GetFocusedItemData()

PVOID CApplicationView::GetFocusedItemData ( )

◆ GetItemCount()

int CApplicationView::GetItemCount ( )

Definition at line 1968 of file appview.cpp.

1969{
1970 return m_ListView->GetItemCount();
1971}

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

◆ GetWndClassInfo()

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

Definition at line 1880 of file appview.cpp.

1881{
1882 DWORD csStyle = CS_VREDRAW | CS_HREDRAW;
1883 static ATL::CWndClassInfo wc = {
1884 {sizeof(WNDCLASSEX), csStyle, StartWindowProc, 0, 0, NULL, NULL, NULL, (HBRUSH)(COLOR_BTNFACE + 1), NULL,
1885 L"RAppsApplicationView", NULL},
1886 NULL,
1887 NULL,
1888 IDC_ARROW,
1889 TRUE,
1890 0,
1891 _T("")};
1892 return wc;
1893}
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:5728
#define COLOR_BTNFACE
Definition: winuser.h:928

◆ ItemCheckStateChanged()

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

Definition at line 2008 of file appview.cpp.

2009{
2010 m_MainWindow->ItemCheckStateChanged(bChecked, CallbackParam);
2011}
VOID ItemCheckStateChanged(BOOL bChecked, LPVOID CallbackParam)
Definition: gui.cpp:721

Referenced by ProcessWindowMessage().

◆ ItemGetFocus()

VOID CApplicationView::ItemGetFocus ( LPVOID  CallbackParam)

Definition at line 1986 of file appview.cpp.

1987{
1988 if (CallbackParam)
1989 {
1990 CAppInfo *Info = static_cast<CAppInfo *>(CallbackParam);
1992
1994 {
1995 HMENU hMenu = ::GetMenu(m_hWnd);
1996
1997 BOOL CanModify = Info->CanModify();
1998
1999 EnableMenuItem(hMenu, ID_MODIFY, CanModify ? MF_ENABLED : MF_GRAYED);
2000 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, CanModify);
2001 }
2002 }
2003}
@ AppViewTypeInstalledApps
Definition: appview.h:72
#define ID_MODIFY
Definition: resource.h:78
VOID ShowAppInfo(CAppInfo *Info)
Definition: appview.cpp:922
APPLICATION_VIEW_TYPE ApplicationViewType
Definition: appview.h:356
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 1766 of file appview.cpp.

1767{
1768 if (lParam)
1769 {
1770 if ((HWND)lParam == m_SearchBar->GetWindow())
1771 {
1772 CStringW szBuf;
1773 switch (HIWORD(wParam))
1774 {
1775 case EN_SETFOCUS:
1776 {
1777 CStringW szWndText;
1778
1779 szBuf.LoadStringW(IDS_SEARCH_TEXT);
1780 m_SearchBar->GetWindowTextW(szWndText);
1781 if (szBuf == szWndText)
1782 {
1783 m_SearchBar->SetWindowTextW(L"");
1784 }
1785 }
1786 break;
1787
1788 case EN_KILLFOCUS:
1789 {
1791 if (szBuf.IsEmpty())
1792 {
1793 szBuf.LoadStringW(IDS_SEARCH_TEXT);
1794 m_SearchBar->SetWindowTextW(szBuf.GetString());
1795 }
1796 }
1797 break;
1798
1799 case EN_CHANGE:
1800 {
1801 CStringW szWndText;
1802
1803 szBuf.LoadStringW(IDS_SEARCH_TEXT);
1804 m_SearchBar->GetWindowTextW(szWndText);
1805 if (szBuf == szWndText)
1806 {
1807 szWndText = L"";
1808 m_MainWindow->SearchTextChanged(szWndText);
1809 }
1810 else
1811 {
1812 m_MainWindow->SearchTextChanged(szWndText);
1813 }
1814 }
1815 break;
1816 }
1817
1818 return;
1819 }
1820 else if ((HWND)lParam == m_ComboBox->GetWindow())
1821 {
1822 int NotifyCode = HIWORD(wParam);
1823 switch (NotifyCode)
1824 {
1825 case CBN_SELCHANGE:
1826 int CurrSelection = m_ComboBox->SendMessageW(CB_GETCURSEL);
1827
1828 int ViewModeList[] = {LV_VIEW_DETAILS, LV_VIEW_LIST, LV_VIEW_TILE};
1829 ATLASSERT(CurrSelection < (int)_countof(ViewModeList));
1830 if (!m_ListView->SetViewMode(ViewModeList[CurrSelection]))
1831 {
1832 MessageBoxW(L"View mode invalid or unimplemented");
1833 }
1834 break;
1835 }
1836
1837 return;
1838 }
1839 else if ((HWND)lParam == m_Toolbar->GetWindow())
1840 {
1841 // the message is sent from Toolbar. fall down to continue process
1842 }
1843 else
1844 {
1845 return;
1846 }
1847 }
1848
1849 // the LOWORD of wParam contains a Menu or Control ID
1850 WORD wCommand = LOWORD(wParam);
1851
1852 switch (wCommand)
1853 {
1854 case ID_INSTALL:
1855 case ID_UNINSTALL:
1856 case ID_MODIFY:
1857 case ID_REGREMOVE:
1858 case ID_REFRESH:
1859 case ID_RESETDB:
1860 case ID_CHECK_ALL:
1861 m_MainWindow->SendMessageW(WM_COMMAND, wCommand, 0);
1862 break;
1863 }
1864}
#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:1393
BOOL SearchTextChanged(CStringW &SearchText)
Definition: gui.cpp:764
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:70
#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 1706 of file appview.cpp.

1707{
1708 if (wParam == SIZE_MINIMIZED)
1709 return;
1710
1711 /* Size tool bar */
1713
1714 /* Automatically hide captions */
1715 DWORD dToolbarTreshold = m_Toolbar->GetMaxButtonsWidth();
1716 DWORD dSearchbarMargin = (LOWORD(lParam) - m_SearchBar->m_Width - m_ComboBox->m_Width - TOOLBAR_PADDING * 2);
1717
1718 if (dSearchbarMargin > dToolbarTreshold)
1719 {
1721 }
1722 else if (dSearchbarMargin < dToolbarTreshold)
1723 {
1725 }
1726
1727 RECT r = {0, 0, LOWORD(lParam), HIWORD(lParam)};
1728 HDWP hdwp = NULL;
1730
1731 hdwp = BeginDeferWindowPos(count);
1732 if (hdwp)
1733 {
1734 hdwp = m_Panel->OnParentSize(r, hdwp);
1735 if (hdwp)
1736 {
1737 EndDeferWindowPos(hdwp);
1738 }
1739 }
1740
1742 hdwp = BeginDeferWindowPos(count);
1743 if (hdwp)
1744 {
1745 hdwp = m_SearchBar->OnParentSize(r, hdwp);
1746 if (hdwp)
1747 {
1748 EndDeferWindowPos(hdwp);
1749 }
1750 }
1751
1754 hdwp = BeginDeferWindowPos(count);
1755 if (hdwp)
1756 {
1757 hdwp = m_ComboBox->OnParentSize(r, hdwp);
1758 if (hdwp)
1759 {
1760 EndDeferWindowPos(hdwp);
1761 }
1762 }
1763}
int m_Width
Definition: appview.h:336
VOID ShowButtonCaption()
Definition: appview.cpp:168
DWORD GetMaxButtonsWidth() const
Definition: appview.cpp:175
VOID HideButtonCaption()
Definition: appview.cpp:161
const INT m_Width
Definition: appview.h:308
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 1463 of file appview.cpp.

1470{
1471 theResult = 0;
1472 switch (message)
1473 {
1474 case WM_CREATE:
1475 {
1476 BOOL bSuccess = TRUE;
1477 m_Panel = new CUiPanel();
1480
1487
1489
1490 RECT rTop;
1491
1492 ::GetWindowRect(m_Toolbar->m_hWnd, &rTop);
1493 m_HSplitter->m_Margin.top = rTop.bottom - rTop.top;
1494 if (!bSuccess)
1495 {
1496 return -1; // creation failure
1497 }
1498 }
1499 break;
1500
1501 case WM_NOTIFY:
1502 {
1503 LPNMHDR pNotifyHeader = (LPNMHDR)lParam;
1504 if (pNotifyHeader->hwndFrom == m_ListView->GetWindow())
1505 {
1506 switch (pNotifyHeader->code)
1507 {
1508 case LVN_ITEMCHANGED:
1509 {
1511
1512 /* Check if this is a valid item
1513 * (technically, it can be also an unselect) */
1514 INT ItemIndex = pnic->iItem;
1515 if (ItemIndex == -1 || ItemIndex >= ListView_GetItemCount(pnic->hdr.hwndFrom))
1516 {
1517 break;
1518 }
1519
1520 /* Check if the focus has been moved to another item */
1521 if ((pnic->uChanged & LVIF_STATE) && (pnic->uNewState & LVIS_FOCUSED) &&
1522 !(pnic->uOldState & LVIS_FOCUSED))
1523 {
1524 ItemGetFocus((LPVOID)pnic->lParam);
1525 }
1526
1527 /* Check if the item is checked/unchecked */
1528 if (pnic->uChanged & LVIF_STATE)
1529 {
1530 int iOldState = STATEIMAGETOINDEX(pnic->uOldState);
1531 int iNewState = STATEIMAGETOINDEX(pnic->uNewState);
1532
1533 if (iOldState == STATEIMAGE_UNCHECKED && iNewState == STATEIMAGE_CHECKED)
1534 {
1535 // this item is just checked
1538 }
1539 else if (iOldState == STATEIMAGE_CHECKED && iNewState == STATEIMAGE_UNCHECKED)
1540 {
1541 // this item is just unchecked
1544 }
1545 }
1546 }
1547 break;
1548
1549 case LVN_COLUMNCLICK:
1550 {
1552
1553 m_ListView->ColumnClick(pnmv);
1554 }
1555 break;
1556
1557 case NM_DBLCLK:
1558 {
1560 if (Item->iItem != -1)
1561 {
1562 /* this won't do anything if the program is already installed */
1563
1565 {
1567 (CAppInfo *)m_ListView->GetItemData(Item->iItem));
1568 }
1569 }
1570 }
1571 break;
1572
1573 case NM_RCLICK:
1574 {
1575 if (((LPNMLISTVIEW)lParam)->iItem != -1)
1576 {
1577 ShowPopupMenuEx(m_hWnd, m_hWnd, 0, ID_INSTALL);
1578 }
1579 }
1580 break;
1581 }
1582 }
1583 else if (pNotifyHeader->hwndFrom == m_Toolbar->GetWindow())
1584 {
1585 switch (pNotifyHeader->code)
1586 {
1587 case TTN_GETDISPINFO:
1589 break;
1590 }
1591 }
1592 }
1593 break;
1594
1595 case WM_SYSCOLORCHANGE:
1596 {
1597 /* Forward WM_SYSCOLORCHANGE to common controls */
1598 m_ListView->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1600 m_Toolbar->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1601 m_ComboBox->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1602 }
1603 break;
1604
1605 case WM_SIZE:
1606 {
1608 break;
1609 }
1610
1611 case WM_COMMAND:
1612 {
1614 }
1615 break;
1616 }
1617 return FALSE;
1618}
#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:43
BOOL CreateToolbar()
Definition: appview.cpp:1621
VOID ItemGetFocus(LPVOID CallbackParam)
Definition: appview.cpp:1986
BOOL CreateHSplitter()
Definition: appview.cpp:1655
BOOL CreateAppInfoDisplay()
Definition: appview.cpp:1682
VOID OnCommand(WPARAM wParam, LPARAM lParam)
Definition: appview.cpp:1766
VOID OnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
Definition: appview.cpp:1706
BOOL CreateComboBox()
Definition: appview.cpp:1644
BOOL CreateSearchBar()
Definition: appview.cpp:1632
BOOL CreateListView()
Definition: appview.cpp:1671
VOID ItemCheckStateChanged(BOOL bChecked, LPVOID CallbackParam)
Definition: appview.cpp:2008
VOID ColumnClick(LPNMLISTVIEW pnmv)
Definition: appview.cpp:1127
VOID ItemCheckStateNotify(int iItem, BOOL bCheck)
Definition: appview.cpp:1447
VOID OnGetDispInfo(LPTOOLTIPTEXT lpttt)
Definition: appview.cpp:65
BOOL InstallApplication(CAppInfo *Info)
Definition: gui.cpp:749
#define FALSE
Definition: types.h:117
static BOOLEAN bSuccess
Definition: drive.cpp:477
#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 1906 of file appview.cpp.

1907{
1908 if (!m_ListView->SetDisplayAppType(AppType))
1909 {
1910 return FALSE;
1911 }
1912 ApplicationViewType = AppType;
1914
1915 HMENU hMenu = ::GetMenu(m_hWnd);
1916 switch (AppType)
1917 {
1923
1924 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, FALSE);
1925 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, TRUE);
1926 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, TRUE);
1927 break;
1928
1934
1935 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, TRUE);
1937 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, FALSE);
1938 break;
1939 }
1940 return TRUE;
1941}
VOID SetWelcomeText()
Definition: appview.cpp:938
BOOL SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
Definition: appview.cpp:1313

Referenced by CMainWindow::UpdateApplicationsList().

◆ SetFocusOnSearchBar()

void CApplicationView::SetFocusOnSearchBar ( )

Definition at line 1700 of file appview.cpp.

1701{
1703}
HWND SetFocus()
Definition: atlwin.h:1198

Referenced by CMainWindow::OnCommand().

◆ SetRedraw()

void CApplicationView::SetRedraw ( BOOL  bRedraw)

Definition at line 1693 of file appview.cpp.

1694{
1695 CWindow::SetRedraw(bRedraw);
1696 m_ListView->SetRedraw(bRedraw);
1697}
void SetRedraw(BOOL bRedraw=TRUE)
Definition: atlwin.h:1234

Referenced by CMainWindow::UpdateApplicationsList().

◆ SetWatermark()

VOID CApplicationView::SetWatermark ( const CStringW Text)

Definition at line 1950 of file appview.cpp.

1951{
1953}
VOID SetWatermark(const CStringW &Text)
Definition: appview.cpp:1106
char * Text
Definition: combotst.c:136

Referenced by CMainWindow::UpdateApplicationsList().

Member Data Documentation

◆ ApplicationViewType

APPLICATION_VIEW_TYPE CApplicationView::ApplicationViewType = AppViewTypeAvailableApps
private

Definition at line 356 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 355 of file appview.h.

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

◆ m_Panel

CUiPanel* CApplicationView::m_Panel = NULL
private

Definition at line 348 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: