Vultraz

Untitled

Feb 24th, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. #ifndef GUI_WIDGETS_GROUP_HPP_INCLUDED
  2. #define GUI_WIDGETS_GROUP_HPP_INCLUDED
  3.  
  4. #include <vector>
  5.  
  6. namespace gui2
  7. {
  8.  
  9. class tselectable_;
  10.  
  11. template <class T>
  12. class tgroup
  13. {
  14. public:
  15.     typedef typename std::vector<std::pair<tselectable_*, T> > group_list;
  16.     typedef typename group_list::iterator                      group_iterator;
  17.     typedef typename group_list::const_iterator                group_iterator_const;
  18.  
  19.     void add_member(tselectable_* widget, const T& value);
  20.     {
  21.         members_.push_back(std::make_pair(widget, value);
  22.     }
  23.  
  24.     void tgroup::remove_member(tselectable_* widget)
  25.     {
  26.         members_.erase(std::find(members_.begin(), members_.end(), widget));
  27.     }
  28.  
  29.     // Getters for the member vector
  30.     group_list get_widgets() { return members_; }
  31.  
  32.     std::pair<group_iterator, group_iterator> widgets()
  33.     {
  34.         return std::make_pair(members_.begin(), members_.end());
  35.     }
  36.  
  37.     std::pair<group_iterator_const, group_iterator_const> widgets() const
  38.     {
  39.         return std::make_pair(members_.begin(), members_.end());
  40.     }
  41.  
  42. private:
  43.     group_list members_;
  44. };
  45.  
  46. } // namespace gui2
  47.  
  48. #endif
Advertisement
Add Comment
Please, Sign In to add comment