menu: fix iterator's operator[] and definitions of reverse value interators
This commit is contained in:
18
src/menu.h
18
src/menu.h
@@ -137,7 +137,7 @@ template <typename T> struct Menu : public Window, public List
|
|||||||
ItemIterator() { }
|
ItemIterator() { }
|
||||||
|
|
||||||
ValueT &operator*() const { return getObject<ValueT, referenceValue>::apply(m_it); }
|
ValueT &operator*() const { return getObject<ValueT, referenceValue>::apply(m_it); }
|
||||||
typename BaseIterator::value_type operator->() { return *m_it; }
|
ValueT *operator->() const { return &getObject<ValueT, referenceValue>::apply(m_it); }
|
||||||
|
|
||||||
ItemIterator &operator++() { ++m_it; return *this; }
|
ItemIterator &operator++() { ++m_it; return *this; }
|
||||||
ItemIterator operator++(int) { return ItemIterator(m_it++); }
|
ItemIterator operator++(int) { return ItemIterator(m_it++); }
|
||||||
@@ -146,7 +146,7 @@ template <typename T> struct Menu : public Window, public List
|
|||||||
ItemIterator operator--(int) { return ItemIterator(m_it--); }
|
ItemIterator operator--(int) { return ItemIterator(m_it--); }
|
||||||
|
|
||||||
ValueT &operator[](ptrdiff_t n) const {
|
ValueT &operator[](ptrdiff_t n) const {
|
||||||
return getObject<ValueT, referenceValue>::apply(&m_it[n]);
|
return getObject<ValueT, referenceValue>::apply(m_it + n);
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemIterator &operator+=(ptrdiff_t n) { m_it += n; return *this; }
|
ItemIterator &operator+=(ptrdiff_t n) { m_it += n; return *this; }
|
||||||
@@ -341,10 +341,8 @@ template <typename T> struct Menu : public Window, public List
|
|||||||
///
|
///
|
||||||
virtual void PrevFound(bool wrap);
|
virtual void PrevFound(bool wrap);
|
||||||
|
|
||||||
/// @return const reference to currently used filter
|
/// @return const reference to currently used filter function
|
||||||
///
|
///
|
||||||
//virtual const std::string &GetFilter();
|
|
||||||
|
|
||||||
const FilterFunction &getFilter() { return m_filter; }
|
const FilterFunction &getFilter() { return m_filter; }
|
||||||
|
|
||||||
/// @return true if list is currently filtered, false otherwise
|
/// @return true if list is currently filtered, false otherwise
|
||||||
@@ -385,7 +383,7 @@ template <typename T> struct Menu : public Window, public List
|
|||||||
///
|
///
|
||||||
virtual void Clear();
|
virtual void Clear();
|
||||||
|
|
||||||
/// Sets the highlighted position to 0
|
/// Sets highlighted position to 0
|
||||||
///
|
///
|
||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
@@ -515,10 +513,10 @@ template <typename T> struct Menu : public Window, public List
|
|||||||
ValueIterator EndV() { return ValueIterator(m_options_ptr->end()); }
|
ValueIterator EndV() { return ValueIterator(m_options_ptr->end()); }
|
||||||
ConstValueIterator EndV() const { return ConstValueIterator(m_options_ptr->end()); }
|
ConstValueIterator EndV() const { return ConstValueIterator(m_options_ptr->end()); }
|
||||||
|
|
||||||
ReverseValueIterator RbeginV() { return ReverseValueIterator(End()); }
|
ReverseValueIterator RbeginV() { return ReverseValueIterator(EndV()); }
|
||||||
ConstReverseIterator RbeginV() const { return ConstReverseValueIterator(End()); }
|
ConstReverseIterator RbeginV() const { return ConstReverseValueIterator(EndV()); }
|
||||||
ReverseValueIterator RendV() { return ReverseValueIterator(Begin()); }
|
ReverseValueIterator RendV() { return ReverseValueIterator(BeginV()); }
|
||||||
ConstReverseValueIterator RendV() const { return ConstReverseValueIterator(Begin()); }
|
ConstReverseValueIterator RendV() const { return ConstReverseValueIterator(BeginV()); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// Clears filter, filtered data etc.
|
/// Clears filter, filtered data etc.
|
||||||
|
|||||||
Reference in New Issue
Block a user