/* ** Updates the list of skins. ** */ void DialogAbout::TabSkins::UpdateSkinList() { // Delete all entries HWND item = GetControl(Id_SkinsListBox); ListBox_ResetContent(item); // Add entries for each skin std::wstring::size_type maxLength = 0; const std::map<std::wstring, Skin*>& windows = GetRainmeter().GetAllSkins(); std::map<std::wstring, Skin*>::const_iterator iter = windows.begin(); bool found = false; for ( ; iter != windows.end(); ++iter) { const std::wstring& skinName = (*iter).first; std::wstring::size_type curLength = skinName.length(); if (curLength > maxLength) { maxLength = curLength; } const WCHAR* name = skinName.c_str(); int index = ListBox_AddString(item, name); if (!found && m_SkinWindow == (*iter).second) { found = true; m_SkinWindow = (*iter).second; ListBox_SetCurSel(item, index); } } ListBox_SetHorizontalExtent(item, 6 * maxLength); if (!found) { if (windows.empty()) { m_SkinWindow = nullptr; item = GetControl(Id_ItemsListView); ListView_DeleteAllItems(item); } else { // Default to first skin m_SkinWindow = (*windows.begin()).second; ListBox_SetCurSel(item, 0); UpdateMeasureList(m_SkinWindow); } } }
/* ** Updates the list of skins. ** */ void CDialogAbout::CTabSkins::UpdateSkinList() { // Delete all entries HWND item = GetDlgItem(m_Window, IDC_ABOUTSKINS_ITEMS_LISTBOX); ListBox_ResetContent(item); // Add entries for each skin std::wstring::size_type maxLength = 0; const std::map<std::wstring, CMeterWindow*>& windows = Rainmeter->GetAllMeterWindows(); std::map<std::wstring, CMeterWindow*>::const_iterator iter = windows.begin(); bool found = false; for ( ; iter != windows.end(); ++iter) { const std::wstring& skinName = (*iter).first; std::wstring::size_type curLength = skinName.length(); if (curLength > maxLength) { maxLength = curLength; } const WCHAR* name = skinName.c_str(); int index = ListBox_AddString(item, name); if (!found && m_SkinWindow == (*iter).second) { found = true; m_SkinWindow = (*iter).second; ListBox_SetCurSel(item, index); } } ListBox_SetHorizontalExtent(item, 6 * maxLength); if (!found) { if (windows.empty()) { m_SkinWindow = NULL; item = GetDlgItem(m_Window, IDC_ABOUTSKINS_ITEMS_LISTVIEW); ListView_DeleteAllItems(item); } else { // Default to first skin m_SkinWindow = (*windows.begin()).second; ListBox_SetCurSel(item, 0); UpdateMeasureList(m_SkinWindow); } } }
void UninstallerShortcutsListbox::updateListbox() const { SendMessage(m_listbox, WM_SETREDRAW, FALSE, 0); ListBox_ResetContent(m_listbox); size_t maxWidth = 0; for (const wstring& file : m_files) { ListBox_AddString(m_listbox, file.data()); maxWidth = __max(maxWidth, file.size()); } ListBox_SetHorizontalExtent(m_listbox, getTextWidth(m_dialogbox, maxWidth)); SendMessage(m_listbox, WM_SETREDRAW, TRUE, 0); RedrawWindow(m_listbox, NULL, NULL, RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN); }