diff options
Diffstat (limited to 'shell/source/win32/shlxthandler/propsheets/listviewbuilder.cxx')
-rw-r--r-- | shell/source/win32/shlxthandler/propsheets/listviewbuilder.cxx | 84 |
1 files changed, 13 insertions, 71 deletions
diff --git a/shell/source/win32/shlxthandler/propsheets/listviewbuilder.cxx b/shell/source/win32/shlxthandler/propsheets/listviewbuilder.cxx index 8d659582c642..bc3561db7710 100644 --- a/shell/source/win32/shlxthandler/propsheets/listviewbuilder.cxx +++ b/shell/source/win32/shlxthandler/propsheets/listviewbuilder.cxx @@ -50,10 +50,7 @@ list_view_builder_ptr create_list_view_builder( HWND hwnd_lv, const std::wstring& col1, const std::wstring& col2) { - if (is_windows_xp_or_above()) - return list_view_builder_ptr(new winxp_list_view_builder(hwnd_lv, col1, col2)); - else - return list_view_builder_ptr(new list_view_builder(hwnd_lv, col1, col2)); + return list_view_builder_ptr(new list_view_builder(hwnd_lv, col1, col2)); } @@ -64,7 +61,9 @@ list_view_builder::list_view_builder( row_index_(-1), hwnd_list_view_(hwnd_list_view), column1_title_(column1_title), - column2_title_(column2_title) + column2_title_(column2_title), + group_count_(-1), + row_count_(0) { } @@ -121,73 +120,11 @@ void list_view_builder::setup_list_view() header = GetResString(IDS_PROPERTY_VALUE); lvc.pszText = const_cast<wchar_t*>(header.c_str()); ListView_InsertColumnW(hwnd_list_view_, 1, &lvc); + ListView_EnableGroupView(hwnd_list_view_, TRUE); } -void list_view_builder::insert_group(const std::wstring& /*title*/) -{ - insert_item(L"", L"", false); -} - - -void list_view_builder::insert_item(const std::wstring& title, const std::wstring& value, bool is_editable) -{ - LVITEMW lvi; - - lvi.iItem = ++row_index_; - lvi.iSubItem = 0; - lvi.mask = LVIF_TEXT; - lvi.state = 0; - lvi.cchTextMax = static_cast<int>(title.size() + 1); - lvi.stateMask = 0; - lvi.pszText = const_cast<wchar_t*>(title.c_str()); - - if (title.length() > 0) - { - lvi.mask |= LVIF_IMAGE; - - if (is_editable) - lvi.iImage = 4; - else - lvi.iImage = 3; - } - - ListView_InsertItemW(hwnd_list_view_, &lvi); - - lvi.mask = LVIF_TEXT; - lvi.iSubItem = 1; - lvi.pszText = const_cast<wchar_t*>(value.c_str()); - - ListView_SetItemW(hwnd_list_view_, &lvi); -} - - -HWND list_view_builder::get_list_view() const -{ - return hwnd_list_view_; -} - - -winxp_list_view_builder::winxp_list_view_builder( - HWND hwnd_list_view, - const std::wstring& column1_title, - const std::wstring& column2_title) : - list_view_builder(hwnd_list_view, column1_title, column2_title), - group_count_(-1), - row_count_(0) -{ -} - - -void winxp_list_view_builder::setup_list_view() -{ - list_view_builder::setup_list_view(); - - ListView_EnableGroupView(get_list_view(), TRUE); -} - - -void winxp_list_view_builder::insert_group(const std::wstring& name) +void list_view_builder::insert_group(const std::wstring& name) { LVGROUP lvg; @@ -205,8 +142,7 @@ void winxp_list_view_builder::insert_group(const std::wstring& name) } -void winxp_list_view_builder::insert_item( - const std::wstring& title, const std::wstring& value, bool is_editable) +void list_view_builder::insert_item(const std::wstring& title, const std::wstring& value, bool is_editable) { LVITEMW lvi; @@ -239,4 +175,10 @@ void winxp_list_view_builder::insert_item( row_count_++; } + +HWND list_view_builder::get_list_view() const +{ + return hwnd_list_view_; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |