Horizon
dialogs.hpp
1 #pragma once
2 #include <memory>
3 #include "util/uuid.hpp"
4 #include "common/common.hpp"
5 #include "util/uuid_path.hpp"
6 #include "block/component.hpp"
7 #include "parameter/set.hpp"
8 #include <map>
9 
10 namespace Gtk {
11 class Window;
12 }
13 
14 namespace horizon {
15 class Dialogs {
16 public:
17  Dialogs(){};
18  void set_parent(Gtk::Window *w);
19  void set_interface(class ImpInterface *intf);
20 
21  std::pair<bool, UUID> map_pin(const std::vector<std::pair<const Pin *, bool>> &pins);
22  std::pair<bool, UUIDPath<2>> map_symbol(const std::map<UUIDPath<2>, std::string> &gates);
23  std::pair<bool, UUID> map_package(const std::vector<std::pair<Component *, bool>> &components);
24  std::pair<bool, UUID> select_symbol(class Pool *p, const UUID &unit_uuid);
25  std::pair<bool, UUID> select_part(class Pool *p, const UUID &entity_uuid, const UUID &part_uuid,
26  bool show_none = false);
27  std::pair<bool, UUID> select_entity(class Pool *pool);
28  std::pair<bool, UUID> select_unit(class Pool *pool);
29  std::pair<bool, UUID> select_padstack(class Pool *pool, const UUID &package_uuid);
30  std::pair<bool, UUID> select_hole_padstack(class Pool *pool);
31  std::pair<bool, UUID> select_via_padstack(class ViaPadstackProvider *vpp);
32  std::pair<bool, UUID> select_net(class Block *block, bool power_only, const UUID &net_default = UUID());
33  std::pair<bool, UUID> select_bus(class Block *block);
34  std::pair<bool, UUID> select_bus_member(class Block *block, const UUID &bus_uuid);
35  std::pair<bool, UUID> select_group_tag(const class Block *block, bool tag_mode, const UUID &current);
36  unsigned int ask_net_merge(class Net *net, class Net *into);
37  bool ask_delete_component(Component *comp);
38  bool manage_buses(class Block *b);
39  bool manage_net_classes(class Block *b);
40  bool manage_power_nets(class Block *b);
41  bool manage_via_templates(class Board *b, class ViaPadstackProvider *vpp);
42  bool edit_parameter_program(class ParameterProgram *program);
43  bool edit_parameter_set(ParameterSet *pset);
44  bool edit_pad_parameter_set(std::set<class Pad *> &pads, class Pool *pool, class Package *pkg);
45  bool edit_board_hole(std::set<class BoardHole *> &holes, class Pool *pool, class Block *block);
46  bool annotate(class Schematic *s);
47  bool edit_plane(class Plane *plane, class Board *brd, class Block *block);
48  bool edit_keepout(class Keepout *keepout, class Core *c, bool add_mode);
49  bool edit_stackup(class CoreBoard *brd);
50  bool edit_schematic_properties(class Schematic *s, class Pool *pool);
51  bool edit_frame_properties(class Frame *fr);
52  std::pair<bool, int64_t> ask_datum(const std::string &label, int64_t def = 0);
53  std::pair<bool, Coordi> ask_datum_coord(const std::string &label, Coordi def = Coordi());
54  std::tuple<bool, Coordi, std::pair<bool, bool>> ask_datum_coord2(const std::string &label, Coordi def = Coordi());
55  std::pair<bool, std::string> ask_datum_string_multiline(const std::string &label, const std::string &def);
56  std::pair<bool, std::string> ask_datum_string(const std::string &label, const std::string &def);
57  std::pair<bool, int> ask_datum_angle(const std::string &label, int def = 0);
58  bool edit_shapes(std::set<class Shape *> shapes);
59  bool edit_via(class Via *via, class ViaPadstackProvider &vpp);
60  std::pair<bool, std::string> ask_dxf_filename();
61  std::pair<bool, std::string> ask_kicad_package_filename();
62 
63  class SymbolPinNamesWindow *show_symbol_pin_names_window(class SchematicSymbol *symbol);
64  class RenumberPadsWindow *show_renumber_pads_window(class Package *pkg, const std::set<UUID> &pads);
65  void close_nonmodal();
66 
67 private:
68  Gtk::Window *parent = nullptr;
69  class ImpInterface *interface = nullptr;
70  Gtk::Window *window_nonmodal = nullptr;
71 };
72 } // namespace horizon
horizon::SymbolPinNamesWindow
Definition: symbol_pin_names_window.hpp:10
horizon::Dialogs
Definition: dialogs.hpp:15
horizon::ParameterProgram
Definition: program.hpp:12
horizon::ImpInterface
Definition: imp_interface.hpp:7
horizon::Board
Definition: board.hpp:31
horizon::CoreBoard
Definition: core_board.hpp:11
horizon::ViaPadstackProvider
Definition: via_padstack_provider.hpp:13
horizon::Net
Definition: net.hpp:16
horizon::Keepout
Definition: keepout.hpp:9
horizon::Block
A block is one level of hierarchy in the netlist.
Definition: block.hpp:26
horizon::SchematicSymbol
Definition: schematic_symbol.hpp:19
horizon::Coord< int64_t >
horizon::Component
A Component is an instanced Entity in a Block.
Definition: component.hpp:39
horizon::Schematic
A Schematic is the visual representation of a Block.
Definition: schematic.hpp:27
horizon::UUIDPath< 2 >
horizon::Core
Where Tools and and documents meet.
Definition: core.hpp:240
horizon::Frame
Definition: frame.hpp:21
horizon::Via
Definition: via.hpp:16
horizon::Package
Definition: package.hpp:28
horizon::UUID
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
libzip::int64_t
zip_int64_t int64_t
zip_int64_t typedef.
Definition: zip.hpp:103
horizon::Pool
Stores objects (Unit, Entity, Symbol, Part, etc.) from the pool.
Definition: pool.hpp:21
horizon::RenumberPadsWindow
Definition: renumber_pads_window.hpp:10
horizon::Plane
Definition: plane.hpp:39