Drag setup into the 1990s, by replacing the custom-drawn package chooser with a ListView common control.
As well as removing a lot of Win32 GDI drawing, this also enables the following improvements to be much more straightforward: * Use standard UI elements to choose an action to take on a package or category, rather than the weird UX of clicking to cycle around a list of options of undisclosed length. * Add tooltips (initially, the ldesc as a tooltip for sdesc) * Make the package chooser keyboard accessible (not done yet) The branch for this patch series can be found at: https://github.com/jon-turney/cygwin-setup/tree/listview Jon Turney (13): Change packagemeta::_actions to an enum Add OnNotify virtual function to class Window for WM_NOTIFY notifications Drop 'using namespace std;' from PickView.cc Use a ListView common control rather than a hand-built grid Custom draw checkboxes in ListView control Add methods for listing possible actions on, and applying one to, a package Custom draw popup menus in ListView control Show the count of packages in a category Use an icon to represent expanded/collapsed state Use indents in category view Add LDesc() accessor method to SolvableVersion Restore packagemeta::LDesc() Add ldesc tooltips to sdesc column of listview ActionList.h | 55 +++ ListView.cc | 585 +++++++++++++++++++++++++++++ ListView.h | 96 +++++ Makefile.am | 12 +- PickCategoryLine.cc | 165 +++----- PickCategoryLine.h | 81 ++-- PickLine.h | 47 --- PickPackageLine.cc | 150 ++++---- PickPackageLine.h | 31 +- PickView.cc | 898 ++++++++------------------------------------ PickView.h | 217 ++++++----- check-na.bmp | Bin 106 -> 0 bytes check-no.bmp | Bin 106 -> 0 bytes check-yes.bmp | Bin 106 -> 0 bytes choose-spin.bmp | Bin 106 -> 0 bytes choose.cc | 71 ++-- choose.h | 6 +- libsolv.cc | 14 + libsolv.h | 1 + main.cc | 2 +- package_meta.cc | 155 ++++---- package_meta.h | 38 +- proppage.cc | 14 +- res.rc | 19 +- resource.h | 13 +- tree-minus.bmp | Bin 106 -> 0 bytes tree-minus.ico | Bin 0 -> 299654 bytes tree-minus.svg | 118 ++++++ tree-plus.bmp | Bin 106 -> 0 bytes tree-plus.ico | Bin 0 -> 299671 bytes tree-plus.svg | 126 +++++++ window.h | 7 + 32 files changed, 1608 insertions(+), 1313 deletions(-) create mode 100644 ActionList.h create mode 100644 ListView.cc create mode 100644 ListView.h delete mode 100644 PickLine.h delete mode 100644 check-na.bmp delete mode 100644 check-no.bmp delete mode 100644 check-yes.bmp delete mode 100644 choose-spin.bmp delete mode 100644 tree-minus.bmp create mode 100644 tree-minus.ico create mode 100755 tree-minus.svg delete mode 100644 tree-plus.bmp create mode 100644 tree-plus.ico create mode 100644 tree-plus.svg -- 2.17.0