@@ -942,6 +942,7 @@ HRESULT MainWindow::Initialize()
942942 AppendLog (AppendLogModeImmediate, L" Windows version is older than Windows 10. Application will have very limited functionality.\r\n " );
943943 }
944944
945+ InitializeDisplayTextEdit ();
945946 InitializeLanguageMenu ();
946947 InitializeFontCollectionFilterUI ();
947948 InitializeFontCollectionListUI ();
@@ -1172,6 +1173,13 @@ DialogProcResult CALLBACK MainWindow::OnCommand(HWND hwnd, WPARAM wParam, LPARAM
11721173 UpdateFontCollectionListUI ();
11731174 break ;
11741175
1176+ case IdcText:
1177+ if (wmEvent == EN_CHANGE)
1178+ {
1179+ InvalidateRect (GetDlgItem (hwnd_, IdcFontCollectionList), nullptr , true );
1180+ }
1181+ break ;
1182+
11751183 case IdcActivateFontCollectionFilter:
11761184 {
11771185 // Get the focused item to see which filter is being activated.
@@ -1522,14 +1530,20 @@ HRESULT MainWindow::DrawFontCollectionIconPreview(const NMLVCUSTOMDRAW* customDr
15221530 return S_FALSE;
15231531
15241532 // Get the item text and icon index.
1533+ // Check if the text control has any text in it, else just use the listview item text.
15251534 wchar_t textBuffer[256 ]; textBuffer[0 ] = ' \0 ' ;
1526- LVITEM listViewItem;
1527- ZeroMemory (OUT &listViewItem, sizeof (listViewItem));
1528- listViewItem.mask = LVIF_TEXT | LVIF_IMAGE;
1529- listViewItem.pszText = textBuffer;
1530- listViewItem.cchTextMax = ARRAYSIZE (textBuffer);
1531- listViewItem.iItem = itemIndex;
1532- ListView_GetItem (customDraw->nmcd .hdr .hwndFrom , OUT &listViewItem);
1535+ HWND hwndText = GetDlgItem (hwnd_, IdcText);
1536+ Edit_GetText (hwndText, textBuffer, std::size (textBuffer));
1537+
1538+ LVITEM listViewItem = {};
1539+ if (textBuffer[0 ] == ' \0 ' )
1540+ {
1541+ listViewItem.mask = LVIF_TEXT | LVIF_IMAGE;
1542+ listViewItem.pszText = textBuffer;
1543+ listViewItem.cchTextMax = ARRAYSIZE (textBuffer);
1544+ listViewItem.iItem = itemIndex;
1545+ ListView_GetItem (customDraw->nmcd .hdr .hwndFrom , OUT &listViewItem);
1546+ }
15331547
15341548 // Transfer bitmap into temporary bitmap.
15351549 BitBlt (renderTarget_->GetMemoryDC (), 0 ,0 , rect.right - rect.left , rect.bottom - rect.top , customDraw->nmcd .hdc , rect.left , rect.top , SRCCOPY|NOMIRRORBITMAP);
@@ -1763,13 +1777,13 @@ void MainWindow::OnSize()
17631777 RECT paddedClientRect = clientRect;
17641778 InflateRect (IN OUT &paddedClientRect, -spacing, -spacing);
17651779
1766- const size_t filterIndex = 0 ;
1767- const size_t logIndex = 2 ;
1780+ const size_t filterIndex = 1 ;
1781+ const size_t logIndex = 3 ;
17681782 const long mainWindowThirdWidth = paddedClientRect.right / 3 ;
17691783 const long mainWindowQuarterHeight = paddedClientRect.bottom / 4 ;
17701784 WindowPosition windowPositions[] = {
1771- // WindowPosition(GetDlgItem(hwnd, IdcTags ), PositionOptionsFillHeight | PositionOptionsAlignTop),
1772- WindowPosition (GetDlgItem (hwnd, IdcFontCollectionFilter), PositionOptionsFillHeight),
1785+ WindowPosition (GetDlgItem (hwnd, IdcText ), PositionOptionsFillWidth | PositionOptionsAlignTop),
1786+ WindowPosition (GetDlgItem (hwnd, IdcFontCollectionFilter), PositionOptionsFillHeight | PositionOptionsNewLine ),
17731787 WindowPosition (GetDlgItem (hwnd, IdcFontCollectionList), PositionOptionsFillWidth | PositionOptionsFillHeight),
17741788 WindowPosition (GetDlgItem (hwnd, IdcLog), PositionOptionsFillWidth | PositionOptionsAlignTop | PositionOptionsNewLine),
17751789 };
@@ -2988,6 +3002,14 @@ HRESULT MainWindow::PopFilter(
29883002}
29893003
29903004
3005+ HRESULT MainWindow::InitializeDisplayTextEdit ()
3006+ {
3007+ HWND hwndText = GetDlgItem (hwnd_, IdcText);
3008+ Edit_SetCueBannerText (hwndText, L" (icon display text)" );
3009+ return S_OK;
3010+ }
3011+
3012+
29913013HRESULT MainWindow::InitializeLanguageMenu ()
29923014{
29933015 HMENU mainMenu = GetMenu (hwnd_);
0 commit comments