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 IPool &p);
9  void search() override;
10  void set_package_uuid(const UUID &uu);
11  const std::set<Padstack::Type> &get_padstacks_included() const;
12  void set_padstacks_included(const std::set<Padstack::Type> &types);
13  ObjectType get_type() const override
14  {
15  return ObjectType::PADSTACK;
16  }
17 
18 protected:
19  Glib::RefPtr<Gtk::ListStore> create_list_store() override;
20  void create_columns() override;
21  void add_sort_controller_columns() override;
22  UUID uuid_from_row(const Gtk::TreeModel::Row &row) override;
23  PoolItemSource pool_item_source_from_row(const Gtk::TreeModel::Row &row) override;
24 
25 private:
26  class ListColumns : public Gtk::TreeModelColumnRecord {
27  public:
28  ListColumns()
29  {
30  Gtk::TreeModelColumnRecord::add(padstack_name);
31  Gtk::TreeModelColumnRecord::add(padstack_type);
32  Gtk::TreeModelColumnRecord::add(package_name);
33  Gtk::TreeModelColumnRecord::add(path);
34  Gtk::TreeModelColumnRecord::add(uuid);
35  Gtk::TreeModelColumnRecord::add(source);
36  }
37  Gtk::TreeModelColumn<Glib::ustring> padstack_name;
38  Gtk::TreeModelColumn<Glib::ustring> padstack_type;
39  Gtk::TreeModelColumn<Glib::ustring> package_name;
40  Gtk::TreeModelColumn<Glib::ustring> path;
41  Gtk::TreeModelColumn<UUID> uuid;
42  Gtk::TreeModelColumn<PoolItemSource> source;
43  };
44  ListColumns list_columns;
45 
46  Gtk::Entry *name_entry = nullptr;
47  UUID package_uuid;
48  std::set<Padstack::Type> padstacks_included = {Padstack::Type::TOP, Padstack::Type::BOTTOM,
49  Padstack::Type::THROUGH};
50 };
51 } // namespace horizon
Definition: ipool.hpp:14
Definition: pool_browser_padstack.hpp:6
Definition: pool_browser.hpp:15
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
std::function< struct zip_source *(struct zip *)> source
Source creation for adding files.
Definition: zip.hpp:122