Horizon
pool_browser_padstack.hpp
1 #pragma once
2 #include "pool_browser.hpp"
3 #include "pool/padstack.hpp"
4 
5 namespace horizon {
7 public:
8  PoolBrowserPadstack(class Pool *p);
9  void search() override;
10  void set_package_uuid(const UUID &uu);
11  void set_include_padstack_type(Padstack::Type ty, bool v);
12  ObjectType get_type() const override
13  {
14  return ObjectType::PADSTACK;
15  }
16 
17 protected:
18  Glib::RefPtr<Gtk::ListStore> create_list_store() override;
19  void create_columns() override;
20  void add_sort_controller_columns() override;
21  UUID uuid_from_row(const Gtk::TreeModel::Row &row) override;
22  PoolItemSource pool_item_source_from_row(const Gtk::TreeModel::Row &row) override;
23 
24 private:
25  class ListColumns : public Gtk::TreeModelColumnRecord {
26  public:
27  ListColumns()
28  {
29  Gtk::TreeModelColumnRecord::add(padstack_name);
30  Gtk::TreeModelColumnRecord::add(padstack_type);
31  Gtk::TreeModelColumnRecord::add(package_name);
32  Gtk::TreeModelColumnRecord::add(path);
33  Gtk::TreeModelColumnRecord::add(uuid);
34  Gtk::TreeModelColumnRecord::add(source);
35  }
36  Gtk::TreeModelColumn<Glib::ustring> padstack_name;
37  Gtk::TreeModelColumn<Glib::ustring> padstack_type;
38  Gtk::TreeModelColumn<Glib::ustring> package_name;
39  Gtk::TreeModelColumn<Glib::ustring> path;
40  Gtk::TreeModelColumn<UUID> uuid;
41  Gtk::TreeModelColumn<PoolItemSource> source;
42  };
43  ListColumns list_columns;
44 
45  Gtk::Entry *name_entry = nullptr;
46  UUID package_uuid;
47  std::set<Padstack::Type> padstacks_included = {Padstack::Type::TOP, Padstack::Type::BOTTOM,
48  Padstack::Type::THROUGH};
49 };
50 } // namespace horizon
horizon::PoolBrowser
Definition: pool_browser.hpp:11
libzip::source
std::function< struct zip_source *(struct zip *)> source
Source creation for adding files.
Definition: zip.hpp:122
horizon::PoolBrowserPadstack
Definition: pool_browser_padstack.hpp:6
horizon::UUID
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
horizon::Pool
Stores objects (Unit, Entity, Symbol, Part, etc.) from the pool.
Definition: pool.hpp:21