}
}
+LRESULT
+CAppsListView::OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
+{
+ LRESULT lRes = this->DefWindowProc(uMsg, wParam, lParam);
+ if (!m_Watermark.IsEmpty())
+ {
+ RECT rc;
+ GetClientRect(&rc);
+ HGDIOBJ oldFont = SelectFont(HDC(wParam), GetStockFont(DEFAULT_GUI_FONT));
+ DrawShadowText(
+ HDC(wParam), m_Watermark.GetString(), m_Watermark.GetLength(), &rc,
+ DT_CENTER | DT_VCENTER | DT_NOPREFIX | DT_SINGLELINE, GetSysColor(COLOR_GRAYTEXT),
+ GetSysColor(COLOR_GRAYTEXT), 1, 1);
+ SelectFont(HDC(wParam), oldFont);
+ }
+ return lRes;
+}
+
+VOID CAppsListView::SetWatermark(const CStringW& Text)
+{
+ m_Watermark = Text;
+}
+
+
VOID CAppsListView::SetCheckboxesVisible(BOOL bIsVisible)
{
if (bIsVisible)
SetImageList(m_hImageListView, LVSIL_SMALL);
SetImageList(m_hImageListView, LVSIL_NORMAL);
+#pragma push_macro("SubclassWindow")
+#undef SubclassWindow
+ m_hWnd = NULL;
+ SubclassWindow(hwnd);
+#pragma pop_macro("SubclassWindow")
+
return hwnd;
}
return m_ListView->AddAvailableApplication(AvlbAppInfo, InitCheckState, param);
}
+VOID CApplicationView::SetWatermark(const CStringW& Text)
+{
+ ATLASSERT(GetItemCount() == 0);
+
+ m_ListView->SetWatermark(Text);
+}
+
void CApplicationView::CheckAll()
{
m_ListView->CheckAll();
m_ApplicationView->SetRedraw(TRUE);
m_ApplicationView->RedrawWindow(0, 0, RDW_INVALIDATE | RDW_ALLCHILDREN); // force the child window to repaint
UpdateStatusBarText();
+
+ CStringW text;
+ if (m_ApplicationView->GetItemCount() == 0 && !szSearchPattern.IsEmpty())
+ {
+ text.LoadString(IDS_NO_SEARCH_RESULTS);
+ }
+ m_ApplicationView->SetWatermark(text);
+
bUpdating = FALSE;
}
};
class CAppsListView :
- public CUiWindow<CListView>
+ public CUiWindow<CWindowImpl<CAppsListView, CListView>>
{
struct SortContext
{
APPLICATION_VIEW_TYPE ApplicationViewType = AppViewTypeEmpty;
HIMAGELIST m_hImageListView = NULL;
+ CStringW m_Watermark;
+
+ BEGIN_MSG_MAP(CAppsListView)
+ MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackground)
+ END_MSG_MAP()
+
+
+ LRESULT OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
public:
CAppsListView();
~CAppsListView();
+ VOID SetWatermark(const CStringW& Text);
VOID SetCheckboxesVisible(BOOL bIsVisible);
VOID ColumnClick(LPNMLISTVIEW pnmv);
BOOL AddInstalledApplication(CInstalledApplicationInfo *InstAppInfo, LPVOID param);
BOOL AddAvailableApplication(CAvailableApplicationInfo *AvlbAppInfo, BOOL InitCheckState, LPVOID param);
+ VOID SetWatermark(const CStringW& Text);
+
void CheckAll();
PVOID GetFocusedItemData();
#define IDS_APP_DISPLAY_DETAILS 133
#define IDS_APP_DISPLAY_LIST 134
#define IDS_APP_DISPLAY_TILE 135
+#define IDS_NO_SEARCH_RESULTS 136
/* Tooltips */
#define IDS_TOOLTIP_INSTALL 200
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "Liste"
IDS_APP_DISPLAY_TILE "Kacheln"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Détails"
IDS_APP_DISPLAY_LIST "Liste"
IDS_APP_DISPLAY_TILE "Tuile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Részletek"
IDS_APP_DISPLAY_LIST "Lista"
IDS_APP_DISPLAY_TILE "Csempe"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Szczegóły"
IDS_APP_DISPLAY_LIST "Lista"
IDS_APP_DISPLAY_TILE "Kafelki"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Detaylar"
IDS_APP_DISPLAY_LIST "Liste"
IDS_APP_DISPLAY_TILE "Karo"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "Details"
IDS_APP_DISPLAY_LIST "List"
IDS_APP_DISPLAY_TILE "Tile"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "细节"
IDS_APP_DISPLAY_LIST "列表"
IDS_APP_DISPLAY_TILE "卡片"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "詳細資料"
IDS_APP_DISPLAY_LIST "列表"
IDS_APP_DISPLAY_TILE "並排"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE
IDS_APP_DISPLAY_DETAILS "詳情"
IDS_APP_DISPLAY_LIST "列表"
IDS_APP_DISPLAY_TILE "卡片"
+ IDS_NO_SEARCH_RESULTS "No search results"
END
STRINGTABLE