Horizon
sort_controller.hpp
1 #pragma once
2 #include <gtkmm.h>
3 
4 namespace horizon {
5 class SortController : public sigc::trackable {
6 public:
7  enum class Sort { ASC, DESC, NONE };
8 
9  SortController(Gtk::TreeView *tv);
10  void add_column(unsigned int index, const std::string &name);
11  void set_simple(bool s);
12  std::string get_order_by() const;
13  void set_sort(unsigned int index, Sort s);
14 
15  typedef sigc::signal<void> type_signal_changed;
16  type_signal_changed signal_changed()
17  {
18  return s_signal_changed;
19  }
20 
21 private:
22  Gtk::TreeView *treeview;
23  std::map<unsigned int, std::pair<std::string, Sort>> columns;
24  void update_treeview();
25  void handle_click(unsigned int index);
26  bool is_simple;
27 
28  type_signal_changed s_signal_changed;
29 };
30 } // namespace horizon
Definition: block.cpp:7
Definition: sort_controller.hpp:5