ReactOS 0.4.16-dev-751-g45ed1a9
CApplicationView Class Reference

#include <appview.h>

Inheritance diagram for CApplicationView:
Collaboration diagram for CApplicationView:

Classes

struct  RESTORELISTSELECTION
 

Public Member Functions

 CApplicationView (CMainWindow *MainWindow)
 
 ~CApplicationView ()
 
HWND Create (HWND hwndParent)
 
void SetRedraw (BOOL bRedraw)
 
void RefreshAvailableItem (PCWSTR PackageName)
 
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 GetRestoreListSelectionData (RESTORELISTSELECTION &Restore)
 
VOID RestoreListSelection (const RESTORELISTSELECTION &Restore)
 
VOID RefreshDetailsPane (CAppInfo &Info, bool OnlyUpdateText=false)
 
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 1994 of file appview.cpp.

1994 : m_MainWindow(MainWindow)
1995{
1996}
CMainWindow * m_MainWindow
Definition: appview.h:355

◆ ~CApplicationView()

CApplicationView::~CApplicationView ( )

Definition at line 1998 of file appview.cpp.

1999{
2000 delete m_Toolbar;
2001 delete m_SearchBar;
2002 delete m_ListView;
2003 delete m_AppsInfo;
2004 delete m_HSplitter;
2005}
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 2082 of file appview.cpp.

2083{
2084 return m_ListView->AddApplication(AppInfo, InitialCheckState);
2085}
BOOL AddApplication(CAppInfo *AppInfo, BOOL InitialCheckState)
Definition: appview.cpp:1461

Referenced by CMainWindow::AddApplicationsToView().

◆ AppendTabOrderWindow()

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

Reimplemented from CUiWindow< CWindowImpl< CApplicationView > >.

Definition at line 2112 of file appview.cpp.

2113{
2119}
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 2094 of file appview.cpp.

2095{
2097}
VOID CheckAll()
Definition: appview.cpp:1344

Referenced by CMainWindow::OnCommand().

◆ Create()

HWND CApplicationView::Create ( HWND  hwndParent)

Definition at line 2024 of file appview.cpp.

2025{
2026 RECT r = {0, 0, 0, 0};
2027
2028 // Pick the "Programs" sub-menu for building the context menu.
2029 HMENU hMenu = ::GetSubMenu(m_MainWindow->GetMenu(), 1);
2030
2032}
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
HMENU GetMenu() const
Definition: atlwin.h:682
static HWND hwndParent
Definition: cryptui.c:300
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)

Referenced by CMainWindow::CreateApplicationView().

◆ CreateAppInfoDisplay()

BOOL CApplicationView::CreateAppInfoDisplay ( )
private

Definition at line 1794 of file appview.cpp.

1795{
1800
1801 return m_AppsInfo->Create(m_hWnd) != NULL;
1802}
HWND Create(HWND hwndParent)
Definition: appview.cpp:950
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 1756 of file appview.cpp.

1757{
1761 m_ComboBox->m_Margin.top = 4;
1762
1763 return m_ComboBox->Create(m_Toolbar->m_hWnd) != NULL;
1764}
HWND Create(HWND hwndParent)
Definition: appview.cpp:261
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 1767 of file appview.cpp.

1768{
1769 m_HSplitter = new CUiSplitPanel();
1774 m_HSplitter->m_Pos = INT_MAX; // set INT_MAX to use lowest possible position (m_MinSecond)
1775 m_HSplitter->m_MinFirst = 10;
1776 m_HSplitter->m_MinSecond = 140;
1778
1779 return m_HSplitter->Create(m_hWnd) != NULL;
1780}
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: intsafe.h:150

Referenced by ProcessWindowMessage().

◆ CreateListView()

BOOL CApplicationView::CreateListView ( )
private

Definition at line 1783 of file appview.cpp.

1784{
1785 m_ListView = new CAppsListView();
1789
1790 return m_ListView->Create(m_hWnd) != NULL;
1791}
HWND Create(HWND hwndParent)
Definition: appview.cpp:1306
CUiCollection & First()
Definition: rosui.h:618

Referenced by ProcessWindowMessage().

◆ CreateSearchBar()

BOOL CApplicationView::CreateSearchBar ( )
private

Definition at line 1744 of file appview.cpp.

1745{
1751
1752 return m_SearchBar->Create(m_Toolbar->m_hWnd) != NULL;
1753}
#define TOOLBAR_PADDING
Definition: appview.h:36
HWND Create(HWND hwndParent)
Definition: appview.cpp:240
LONG right
Definition: windef.h:308

Referenced by ProcessWindowMessage().

◆ CreateToolbar()

BOOL CApplicationView::CreateToolbar ( )
private

Definition at line 1733 of file appview.cpp.

1734{
1735 m_Toolbar = new CMainToolbar();
1739
1740 return m_Toolbar->Create(m_hWnd) != NULL;
1741}
HWND Create(HWND hwndParent)
Definition: appview.cpp:146

Referenced by ProcessWindowMessage().

◆ GetFocusedItemData()

PVOID CApplicationView::GetFocusedItemData ( )

◆ GetItemCount()

int CApplicationView::GetItemCount ( )

Definition at line 2106 of file appview.cpp.

2107{
2108 return m_ListView->GetItemCount();
2109}

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

◆ GetRestoreListSelectionData()

VOID CApplicationView::GetRestoreListSelectionData ( RESTORELISTSELECTION Restore)

Definition at line 2122 of file appview.cpp.

2123{
2124 LVITEMW &Item = Restore.Item;
2126 Item.iItem = -1, Item.iSubItem = 0;
2127 Item.stateMask = LVIS_FOCUSED|LVIS_SELECTED;
2128 Item.pszText = Restore.Name, Item.cchTextMax = _countof(Restore.Name);
2129
2130 HWND hList = m_ListView ? m_ListView->m_hWnd : NULL;
2131 if (hList)
2132 {
2135 }
2136}
HWND hList
Definition: livecd.c:10
#define LVIF_STATE
Definition: commctrl.h:2317
#define LVNI_FOCUSED
Definition: commctrl.h:2428
#define ListView_GetNextItem(hwnd, i, flags)
Definition: commctrl.h:2439
#define LVIS_SELECTED
Definition: commctrl.h:2324
#define LVIF_TEXT
Definition: commctrl.h:2314
#define LVIS_FOCUSED
Definition: commctrl.h:2323
#define ListView_GetItem(hwnd, pitem)
Definition: commctrl.h:2399
#define _countof(array)
Definition: sndvol32.h:70
UINT mask
Definition: commctrl.h:2365
_In_ WDFCOLLECTION _In_ WDFOBJECT Item

Referenced by CMainWindow::UpdateApplicationsList().

◆ GetWndClassInfo()

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

Definition at line 2008 of file appview.cpp.

2009{
2010 DWORD csStyle = CS_VREDRAW | CS_HREDRAW;
2011 static ATL::CWndClassInfo wc = {
2012 {sizeof(WNDCLASSEX), csStyle, StartWindowProc, 0, 0, NULL, NULL, NULL, (HBRUSH)(COLOR_BTNFACE + 1), NULL,
2013 L"RAppsApplicationView", NULL},
2014 NULL,
2015 NULL,
2016 IDC_ARROW,
2017 TRUE,
2018 0,
2019 _T("")};
2020 return wc;
2021}
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:5731
#define COLOR_BTNFACE
Definition: winuser.h:931

◆ ItemCheckStateChanged()

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

Definition at line 2187 of file appview.cpp.

2188{
2189 m_MainWindow->ItemCheckStateChanged(bChecked, CallbackParam);
2190}
VOID ItemCheckStateChanged(BOOL bChecked, LPVOID CallbackParam)
Definition: gui.cpp:815

Referenced by ProcessWindowMessage().

◆ ItemGetFocus()

VOID CApplicationView::ItemGetFocus ( LPVOID  CallbackParam)

Definition at line 2165 of file appview.cpp.

2166{
2167 if (CallbackParam)
2168 {
2169 CAppInfo *Info = static_cast<CAppInfo *>(CallbackParam);
2171
2173 {
2174 HMENU hMenu = ::GetMenu(m_hWnd);
2175
2176 BOOL CanModify = Info->CanModify();
2177
2178 EnableMenuItem(hMenu, ID_MODIFY, CanModify ? MF_ENABLED : MF_GRAYED);
2179 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, CanModify);
2180 }
2181 }
2182}
@ AppViewTypeInstalledApps
Definition: appview.h:72
#define ID_MODIFY
Definition: resource.h:77
APPLICATION_VIEW_TYPE ApplicationViewType
Definition: appview.h:356
VOID RefreshDetailsPane(CAppInfo &Info, bool OnlyUpdateText=false)
Definition: appview.cpp:2157
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 1894 of file appview.cpp.

1895{
1896 if (lParam)
1897 {
1898 if ((HWND)lParam == m_SearchBar->GetWindow())
1899 {
1900 CStringW szBuf;
1901 switch (HIWORD(wParam))
1902 {
1903 case EN_SETFOCUS:
1904 {
1905 CStringW szWndText;
1906
1907 szBuf.LoadStringW(IDS_SEARCH_TEXT);
1908 m_SearchBar->GetWindowTextW(szWndText);
1909 if (szBuf == szWndText)
1910 {
1911 m_SearchBar->SetWindowTextW(L"");
1912 }
1913 }
1914 break;
1915
1916 case EN_KILLFOCUS:
1917 {
1919 if (szBuf.IsEmpty())
1920 {
1921 szBuf.LoadStringW(IDS_SEARCH_TEXT);
1922 m_SearchBar->SetWindowTextW(szBuf.GetString());
1923 }
1924 }
1925 break;
1926
1927 case EN_CHANGE:
1928 {
1929 CStringW szWndText;
1930
1931 szBuf.LoadStringW(IDS_SEARCH_TEXT);
1932 m_SearchBar->GetWindowTextW(szWndText);
1933 if (szBuf == szWndText)
1934 {
1935 szWndText = L"";
1936 m_MainWindow->SearchTextChanged(szWndText);
1937 }
1938 else
1939 {
1940 m_MainWindow->SearchTextChanged(szWndText);
1941 }
1942 }
1943 break;
1944 }
1945
1946 return;
1947 }
1948 else if ((HWND)lParam == m_ComboBox->GetWindow())
1949 {
1950 int NotifyCode = HIWORD(wParam);
1951 switch (NotifyCode)
1952 {
1953 case CBN_SELCHANGE:
1954 int CurrSelection = m_ComboBox->SendMessageW(CB_GETCURSEL);
1955
1956 int ViewModeList[] = {LV_VIEW_DETAILS, LV_VIEW_LIST, LV_VIEW_TILE};
1957 ATLASSERT(CurrSelection < (int)_countof(ViewModeList));
1958 if (!m_ListView->SetViewMode(ViewModeList[CurrSelection]))
1959 {
1960 MessageBoxW(L"View mode invalid or unimplemented");
1961 }
1962 break;
1963 }
1964
1965 return;
1966 }
1967 else if ((HWND)lParam == m_Toolbar->GetWindow())
1968 {
1969 // the message is sent from Toolbar. fall down to continue process
1970 }
1971 else
1972 {
1973 return;
1974 }
1975 }
1976
1977 // the LOWORD of wParam contains a Menu or Control ID
1978 WORD wCommand = LOWORD(wParam);
1979
1980 switch (wCommand)
1981 {
1982 case ID_INSTALL:
1983 case ID_UNINSTALL:
1984 case ID_MODIFY:
1985 case ID_REGREMOVE:
1986 case ID_REFRESH:
1987 case ID_RESETDB:
1988 case ID_CHECK_ALL:
1989 m_MainWindow->SendMessageW(WM_COMMAND, wCommand, 0);
1990 break;
1991 }
1992}
#define ATLASSERT(x)
Definition: CComVariant.cpp:10
#define ID_REFRESH
Definition: resource.h:16
#define ID_REGREMOVE
Definition: resource.h:82
#define IDS_SEARCH_TEXT
Definition: resource.h:101
#define ID_UNINSTALL
Definition: resource.h:74
#define ID_CHECK_ALL
Definition: resource.h:84
#define ID_RESETDB
Definition: resource.h:83
#define ID_INSTALL
Definition: resource.h:73
bool IsEmpty() const noexcept
Definition: atlsimpstr.h:394
PXSTR GetString() noexcept
Definition: atlsimpstr.h:367
BOOL SetViewMode(DWORD ViewMode)
Definition: appview.cpp:1455
BOOL SearchTextChanged(CStringW &SearchText)
Definition: gui.cpp:849
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:2846
#define LV_VIEW_LIST
Definition: commctrl.h:2848
#define LV_VIEW_TILE
Definition: commctrl.h:2849
#define HIWORD(l)
Definition: typedefs.h:247
_In_ ULONG NotifyCode
Definition: winddi.h:4265
#define EN_KILLFOCUS
Definition: winuser.h:2028
#define EN_SETFOCUS
Definition: winuser.h:2030
#define WM_COMMAND
Definition: winuser.h:1743
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
#define CBN_SELCHANGE
Definition: winuser.h:1982
#define CB_GETCURSEL
Definition: winuser.h:1946
#define EN_CHANGE
Definition: winuser.h:2025

Referenced by ProcessWindowMessage().

◆ OnSize()

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

Definition at line 1834 of file appview.cpp.

1835{
1836 if (wParam == SIZE_MINIMIZED)
1837 return;
1838
1839 /* Resize the toolbar */
1841
1842 /* Automatically hide captions */
1843 DWORD dToolbarTreshold = m_Toolbar->GetMaxButtonsWidth();
1844 DWORD dSearchbarMargin = (LOWORD(lParam) - m_SearchBar->m_Width - m_ComboBox->m_Width - TOOLBAR_PADDING * 2);
1845
1846 if (dSearchbarMargin > dToolbarTreshold)
1847 {
1849 }
1850 else if (dSearchbarMargin < dToolbarTreshold)
1851 {
1853 }
1854
1855 RECT r = {0, 0, LOWORD(lParam), HIWORD(lParam)};
1856 HDWP hdwp = NULL;
1858
1859 hdwp = BeginDeferWindowPos(count);
1860 if (hdwp)
1861 {
1862 hdwp = m_Panel->OnParentSize(r, hdwp);
1863 if (hdwp)
1864 {
1865 EndDeferWindowPos(hdwp);
1866 }
1867 }
1868
1870 hdwp = BeginDeferWindowPos(count);
1871 if (hdwp)
1872 {
1873 hdwp = m_SearchBar->OnParentSize(r, hdwp);
1874 if (hdwp)
1875 {
1876 EndDeferWindowPos(hdwp);
1877 }
1878 }
1879
1882 hdwp = BeginDeferWindowPos(count);
1883 if (hdwp)
1884 {
1885 hdwp = m_ComboBox->OnParentSize(r, hdwp);
1886 if (hdwp)
1887 {
1888 EndDeferWindowPos(hdwp);
1889 }
1890 }
1891}
int m_Width
Definition: appview.h:336
DWORD GetMaxButtonsWidth() const
Definition: appview.cpp:221
void ShowButtonCaption(bool bShow)
Definition: appview.cpp:203
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:2509
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 1525 of file appview.cpp.

1532{
1533 theResult = 0;
1534 switch (message)
1535 {
1536 case WM_CREATE:
1537 {
1538 BOOL bSuccess = TRUE;
1539 m_Panel = new CUiPanel();
1542
1549
1550 /* APPWIZ-mode: Remove the unneeded menu items and toolbar buttons */
1552 {
1553 HMENU hMenu;
1554
1555 /* Delete the "Settings" item in the "File" sub-menu */
1556 hMenu = ::GetSubMenu(m_MainWindow->GetMenu(), 0);
1558
1559 /* Remove the menu items: ID_INSTALL, ID_RESETDB */
1560 hMenu = GetMenu();
1563
1564 /* Remove the toolbar buttons:
1565 * ID_INSTALL, ID_CHECK_ALL, ID_RESETDB
1566 * We only keep:
1567 * ID_UNINSTALL, ID_MODIFY, ID_REFRESH */
1568 TBBUTTONINFO info = { sizeof(info), 0 };
1569 int index;
1570
1572 if (index >= 0) m_Toolbar->DeleteButton(index);
1573
1575 if (index >= 0) m_Toolbar->DeleteButton(index);
1576
1578 if (index >= 0) m_Toolbar->DeleteButton(index);
1579
1580 /* Update the ideal width to use as a max width of buttons */
1582 }
1583
1584 /* Resize the toolbar */
1586
1587 RECT rTop;
1588
1589 ::GetWindowRect(m_Toolbar->m_hWnd, &rTop);
1590 m_HSplitter->m_Margin.top = rTop.bottom - rTop.top;
1591 if (!bSuccess)
1592 {
1593 return -1; // creation failure
1594 }
1595 }
1596 break;
1597
1598 case WM_NOTIFY:
1599 {
1600 LPNMHDR pNotifyHeader = (LPNMHDR)lParam;
1601 if (pNotifyHeader->hwndFrom == m_ListView->GetWindow())
1602 {
1603 switch (pNotifyHeader->code)
1604 {
1605 case LVN_ITEMCHANGED:
1606 {
1608
1609 /* Check if this is a valid item
1610 * (technically, it can be also an unselect) */
1611 INT ItemIndex = pnic->iItem;
1612 if (ItemIndex == -1 || ItemIndex >= ListView_GetItemCount(pnic->hdr.hwndFrom))
1613 {
1614 break;
1615 }
1616
1617 /* Check if the focus has been moved to another item */
1618 if ((pnic->uChanged & LVIF_STATE) && (pnic->uNewState & LVIS_FOCUSED) &&
1619 !(pnic->uOldState & LVIS_FOCUSED))
1620 {
1621 ItemGetFocus((LPVOID)pnic->lParam);
1622 }
1623
1624 /* Check if the item is checked/unchecked */
1625 if (pnic->uChanged & LVIF_STATE)
1626 {
1627 int iOldState = STATEIMAGETOINDEX(pnic->uOldState);
1628 int iNewState = STATEIMAGETOINDEX(pnic->uNewState);
1629
1630 if (iOldState == STATEIMAGE_UNCHECKED && iNewState == STATEIMAGE_CHECKED)
1631 {
1632 // this item is just checked
1635 }
1636 else if (iOldState == STATEIMAGE_CHECKED && iNewState == STATEIMAGE_UNCHECKED)
1637 {
1638 // this item is just unchecked
1641 }
1642 }
1643 }
1644 break;
1645
1646 case LVN_COLUMNCLICK:
1647 {
1649
1650 m_ListView->ColumnClick(pnmv);
1651 }
1652 break;
1653
1654 case NM_DBLCLK:
1655 {
1657 if (Item->iItem != -1)
1658 {
1659 /* this won't do anything if the program is already installed */
1660
1662 {
1664 (CAppInfo *)m_ListView->GetItemData(Item->iItem));
1665 }
1666 }
1667 }
1668 break;
1669 }
1670 }
1671 else if (pNotifyHeader->hwndFrom == m_Toolbar->GetWindow())
1672 {
1673 switch (pNotifyHeader->code)
1674 {
1675 case TTN_GETDISPINFO:
1677 break;
1678 }
1679 }
1680 }
1681 break;
1682
1683 case WM_SYSCOLORCHANGE:
1684 {
1685 /* Forward WM_SYSCOLORCHANGE to common controls */
1686 m_ListView->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1687 m_AppsInfo->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1688 m_Toolbar->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1689 m_ComboBox->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1690 }
1691 break;
1692
1693 case WM_SIZE:
1694 {
1696 break;
1697 }
1698
1699 case WM_COMMAND:
1700 {
1702 }
1703 break;
1704
1705 case WM_CONTEXTMENU:
1706 {
1707 bool kbd = -1 == (int)(INT_PTR)lParam;
1708 if ((HWND)wParam == m_ListView->m_hWnd)
1709 {
1710 int item = m_ListView->GetNextItem(-1, LVNI_FOCUSED | LVNI_SELECTED);
1711 if (item != -1)
1712 {
1713 POINT *ppt = NULL, pt;
1714 if (kbd)
1715 {
1716 RECT r;
1718 pt.x = r.left + (r.right - r.left) / 2;
1719 pt.y = r.top + (r.bottom - r.top) / 2;
1720 ::ClientToScreen((HWND)wParam, ppt = &pt);
1721 }
1722 ShowPopupMenuEx(m_hWnd, m_hWnd, 0, ID_INSTALL, ppt);
1723 return TRUE;
1724 }
1725 }
1726 }
1727 break;
1728 }
1729 return FALSE;
1730}
BOOL DeleteMenuEx(_In_ HMENU hMenu, _In_ UINT uPosition, _In_ UINT uFlags)
Definition: appview.cpp:22
#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
#define index(s, c)
Definition: various.h:29
VOID ShowPopupMenuEx(HWND hwnd, HWND hwndOwner, UINT MenuID, UINT DefaultItem, POINT *Point=NULL)
Definition: misc.cpp:68
#define ID_SETTINGS
Definition: resource.h:80
BOOL CreateToolbar()
Definition: appview.cpp:1733
VOID ItemGetFocus(LPVOID CallbackParam)
Definition: appview.cpp:2165
BOOL CreateHSplitter()
Definition: appview.cpp:1767
BOOL CreateAppInfoDisplay()
Definition: appview.cpp:1794
VOID OnCommand(WPARAM wParam, LPARAM lParam)
Definition: appview.cpp:1894
VOID OnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
Definition: appview.cpp:1834
BOOL CreateComboBox()
Definition: appview.cpp:1756
BOOL CreateSearchBar()
Definition: appview.cpp:1744
BOOL CreateListView()
Definition: appview.cpp:1783
VOID ItemCheckStateChanged(BOOL bChecked, LPVOID CallbackParam)
Definition: appview.cpp:2187
VOID ColumnClick(LPNMLISTVIEW pnmv)
Definition: appview.cpp:1187
VOID ItemCheckStateNotify(int iItem, BOOL bCheck)
Definition: appview.cpp:1509
void UpdateMaxButtonsWidth()
Definition: appview.cpp:213
VOID OnGetDispInfo(LPTOOLTIPTEXT lpttt)
Definition: appview.cpp:109
BOOL m_bAppwizMode
Definition: gui.h:61
BOOL InstallApplication(CAppInfo *Info)
Definition: gui.cpp:843
DWORD DeleteButton(int index)
Definition: rosctrls.h:347
DWORD GetButtonInfo(int cmdId, TBBUTTONINFO *info)
Definition: rosctrls.h:352
#define FALSE
Definition: types.h:117
static BOOLEAN bSuccess
Definition: drive.cpp:355
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
#define pt(x, y)
Definition: drawing.c:79
GLuint index
Definition: glext.h:6031
static ATOM item
Definition: dde.c:856
#define ListView_GetItemRect(hwnd, i, prc, code)
Definition: commctrl.h:2483
#define LVN_COLUMNCLICK
Definition: commctrl.h:3144
#define NM_DBLCLK
Definition: commctrl.h:131
#define LVNI_SELECTED
Definition: commctrl.h:2429
#define TBBUTTONINFO
Definition: commctrl.h:1254
#define TTN_GETDISPINFO
Definition: commctrl.h:1883
#define ListView_GetItemCount(hwnd)
Definition: commctrl.h:2312
struct tagNMITEMACTIVATE * LPNMITEMACTIVATE
#define LVIR_LABEL
Definition: commctrl.h:2479
struct tagNMLISTVIEW * LPNMLISTVIEW
#define LVN_ITEMCHANGED
Definition: commctrl.h:3136
#define LPTOOLTIPTEXT
Definition: commctrl.h:1895
#define WM_CONTEXTMENU
Definition: richedit.h:64
#define WM_NOTIFY
Definition: richedit.h:61
Definition: tftpd.h:60
UINT code
Definition: winuser.h:3162
HWND hwndFrom
Definition: winuser.h:3160
UINT uNewState
Definition: commctrl.h:3041
LPARAM lParam
Definition: commctrl.h:3045
UINT uOldState
Definition: commctrl.h:3042
LONG bottom
Definition: windef.h:309
int32_t INT_PTR
Definition: typedefs.h:64
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define MF_BYCOMMAND
Definition: winuser.h:202
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
#define WM_CREATE
Definition: winuser.h:1611
#define WM_SIZE
Definition: winuser.h:1614
#define WM_SYSCOLORCHANGE
Definition: winuser.h:1629
BOOL WINAPI ClientToScreen(_In_ HWND, _Inout_ LPPOINT)
struct tagNMHDR * LPNMHDR

◆ RefreshAvailableItem()

void CApplicationView::RefreshAvailableItem ( PCWSTR  PackageName)

Definition at line 1812 of file appview.cpp.

1813{
1814 if (ApplicationViewType != AppViewTypeAvailableApps || !PackageName)
1815 return;
1816 CAppInfo *pApp;
1817 for (UINT i = 0; (pApp = (CAppInfo*)m_ListView->GetItemData(i)) != NULL; ++i)
1818 {
1819 if (pApp->szIdentifier.CompareNoCase(PackageName) == 0)
1820 {
1821 RefreshDetailsPane(*pApp, true);
1822 break;
1823 }
1824 }
1825}
int CompareNoCase(_In_z_ PCXSTR psz) const
Definition: cstringt.h:743
const CStringW szIdentifier
Definition: appinfo.h:108
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int UINT
Definition: ndis.h:50

Referenced by CMainWindow::ProcessWindowMessage().

◆ RefreshDetailsPane()

VOID CApplicationView::RefreshDetailsPane ( CAppInfo Info,
bool  OnlyUpdateText = false 
)

Definition at line 2157 of file appview.cpp.

2158{
2159 m_AppsInfo->ShowAppInfo(Info, OnlyUpdateText);
2160}
VOID ShowAppInfo(CAppInfo &Info, bool OnlyUpdateText=false)
Definition: appview.cpp:958

Referenced by ItemGetFocus(), and RefreshAvailableItem().

◆ RestoreListSelection()

VOID CApplicationView::RestoreListSelection ( const RESTORELISTSELECTION Restore)

Definition at line 2139 of file appview.cpp.

2140{
2141 const LVITEMW &Item = Restore.Item;
2142 int index = Item.iItem;
2143 if (index != -1) // Was there a selected item?
2144 {
2145 LVFINDINFOW fi;
2146 fi.flags = LVFI_STRING;
2147 fi.psz = Item.pszText;
2148 index = ListView_FindItem(m_ListView->m_hWnd, -1, &fi);
2149 }
2150 if (index != -1) // Is it still in the list?
2151 {
2152 ListView_SetItemState(m_ListView->m_hWnd, index, Item.state, Item.stateMask);
2153 }
2154}
#define ListView_SetItemState(hwndLV, i, data, mask)
Definition: commctrl.h:2678
#define LVFI_STRING
Definition: commctrl.h:2442
#define ListView_FindItem(hwnd, iStart, plvfi)
Definition: commctrl.h:2475
LPCWSTR psz
Definition: commctrl.h:2462

Referenced by CMainWindow::UpdateApplicationsList().

◆ SetDisplayAppType()

BOOL CApplicationView::SetDisplayAppType ( APPLICATION_VIEW_TYPE  AppType)

Definition at line 2035 of file appview.cpp.

2036{
2037 if (!m_ListView->SetDisplayAppType(AppType))
2038 {
2039 return FALSE;
2040 }
2041 ApplicationViewType = AppType;
2043
2044 HMENU hMenu = ::GetMenu(m_hWnd);
2045 switch (AppType)
2046 {
2048 {
2053
2054 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, FALSE);
2055 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, TRUE);
2056 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, TRUE);
2058 break;
2059 }
2060
2062 {
2063 // We shouldn't get there in APPWIZ-mode.
2065
2070
2071 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, TRUE);
2073 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, FALSE);
2074 m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_CHECK_ALL, TRUE);
2075 break;
2076 }
2077 }
2078 return TRUE;
2079}
void SetWelcomeText(bool bAppwiz)
Definition: appview.cpp:977
BOOL SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
Definition: appview.cpp:1373

Referenced by CMainWindow::UpdateApplicationsList().

◆ SetFocusOnSearchBar()

void CApplicationView::SetFocusOnSearchBar ( )

Definition at line 1828 of file appview.cpp.

1829{
1831}
HWND SetFocus()
Definition: atlwin.h:1198

Referenced by CMainWindow::OnCommand().

◆ SetRedraw()

void CApplicationView::SetRedraw ( BOOL  bRedraw)

Definition at line 1805 of file appview.cpp.

1806{
1807 CWindow::SetRedraw(bRedraw);
1808 m_ListView->SetRedraw(bRedraw);
1809}
void SetRedraw(BOOL bRedraw=TRUE)
Definition: atlwin.h:1234

Referenced by CMainWindow::UpdateApplicationsList().

◆ SetWatermark()

VOID CApplicationView::SetWatermark ( const CStringW Text)

Definition at line 2088 of file appview.cpp.

2089{
2091}
VOID SetWatermark(const CStringW &Text)
Definition: appview.cpp:1174
char * Text
Definition: combotst.c:136

Referenced by CMainWindow::UpdateApplicationsList().

Member Data Documentation

◆ ApplicationViewType

APPLICATION_VIEW_TYPE CApplicationView::ApplicationViewType = AppViewTypeAvailableApps
private

◆ m_AppsInfo

◆ 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

◆ 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: