Change PickView::view from a class, into an enum Use a C++11 scoped enum so we don't have to change all the uses of it's values. --- PickView.cc | 44 ++++++++++++-------------------------------- PickView.h | 41 +++++++++-------------------------------- 2 files changed, 21 insertions(+), 64 deletions(-)
diff --git a/PickView.cc b/PickView.cc index c784a2a..588cfec 100644 --- a/PickView.cc +++ b/PickView.cc @@ -52,15 +52,6 @@ static PickView::Header cat_headers[] = { {0, 0, 0, false} }; -// PickView:: views -const PickView::views PickView::views::Unknown (0); -const PickView::views PickView::views::PackageFull (1); -const PickView::views PickView::views::Package (2); -const PickView::views PickView::views::PackageKeeps (3); -const PickView::views PickView::views::PackageSkips (4); -const PickView::views PickView::views::PackageUserPicked (5); -const PickView::views PickView::views::Category (6); - ATOM PickView::WindowClassAtom = 0; // DoInsertItem - inserts an item into a header control. @@ -152,7 +143,11 @@ PickView::note_width (PickView::Header *hdrs, HDC dc, void PickView::cycleViewMode () { - setViewMode (++view_mode); + PickView::views _value = (PickView::views)((int)view_mode + 1); + if (_value > PickView::views::Category) + _value = PickView::views::PackageFull; + + setViewMode (_value); } void @@ -235,25 +230,19 @@ PickView::setViewMode (views mode) const char * PickView::mode_caption () { - return view_mode.caption (); -} - -const char * -PickView::views::caption () -{ - switch (_value) + switch (view_mode) { - case 1: + case views::PackageFull: return "Full"; - case 2: + case views::Package: return "Pending"; - case 3: + case views::PackageKeeps: return "Up To Date"; - case 4: + case views::PackageSkips: return "Not Installed"; - case 5: + case views::PackageUserPicked: return "Picked"; - case 6: + case views::Category: return "Category"; default: return ""; @@ -348,15 +337,6 @@ PickView::insert_category (Category *cat, bool collapsed) delete &catline; } -PickView::views& -PickView::views::operator++ () -{ - ++_value; - if (_value > Category._value) - _value = 1; - return *this; -} - int PickView::click (int row, int x) { diff --git a/PickView.h b/PickView.h index fd20dc9..054ab4a 100644 --- a/PickView.h +++ b/PickView.h @@ -40,7 +40,7 @@ class PickView : public Window public: virtual bool Create (Window * Parent = NULL, DWORD Style = WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_CLIPCHILDREN, RECT * r = NULL); virtual bool registerWindowClass (); - class views; + enum class views; class Header; int num_columns; void defaultTrust (trusts trust); @@ -96,38 +96,15 @@ public: return listheader; } - class views + enum class views { - public: - static const views Unknown; - static const views PackageFull; - static const views Package; - static const views PackageKeeps; - static const views PackageSkips; - static const views PackageUserPicked; - static const views Category; - views ():_value (0) - { - }; - views (int aInt) - { - _value = aInt; - if (_value < 0 || _value > 6) - _value = 0; - } - views & operator++ (); - bool operator == (views const &rhs) - { - return _value == rhs._value; - } - bool operator != (views const &rhs) - { - return _value != rhs._value; - } - const char *caption (); - - private: - int _value; + Unknown, + PackageFull, + Package, + PackageKeeps, + PackageSkips, + PackageUserPicked, + Category, }; class Header -- 2.8.3