Horizon
airwire_filter_window.hpp
1 #pragma once
2 #include <gtkmm.h>
3 #include "util/uuid.hpp"
4 
5 namespace horizon {
6 
7 class AirwireFilterWindow : public Gtk::Window {
8 public:
9  static AirwireFilterWindow *create(Gtk::Window *p, const class Block &b, class AirwireFilter &filter);
10  AirwireFilterWindow(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &x, const class Block &b,
11  class AirwireFilter &filter);
12 
13  void update_from_filter();
14 
15 private:
16  const class Block &block;
17  class AirwireFilter &filter;
18 
19  class ListColumns : public Gtk::TreeModelColumnRecord {
20  public:
21  ListColumns()
22  {
23  Gtk::TreeModelColumnRecord::add(net);
24  Gtk::TreeModelColumnRecord::add(net_name);
25  Gtk::TreeModelColumnRecord::add(visible);
26  Gtk::TreeModelColumnRecord::add(n_airwires);
27  }
28  Gtk::TreeModelColumn<UUID> net;
29  Gtk::TreeModelColumn<Glib::ustring> net_name;
30  Gtk::TreeModelColumn<bool> visible;
31  Gtk::TreeModelColumn<unsigned int> n_airwires;
32  };
33  ListColumns list_columns;
34 
35  Glib::RefPtr<Gtk::ListStore> store;
36  Gtk::TreeView *treeview = nullptr;
37  Gtk::Button *all_on_button = nullptr;
38  Gtk::Button *all_off_button = nullptr;
39  Gtk::Box *placeholder_box = nullptr;
40 };
41 
42 } // namespace horizon
horizon::AirwireFilter
Definition: airwire_filter.hpp:9
horizon::AirwireFilterWindow
Definition: airwire_filter_window.hpp:7
horizon::Block
A block is one level of hierarchy in the netlist.
Definition: block.hpp:26