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 "parameter/set.hpp"
7 #include <map>
8 #include <set>
9 #include <optional>
10 
11 namespace Gtk {
12 class Window;
13 }
14 
15 namespace horizon {
16 class Dialogs {
17 public:
18  Dialogs(){};
19  void set_parent(Gtk::Window *w);
20  void set_interface(class ImpInterface *intf);
21 
22  std::optional<UUID> map_pin(const std::vector<std::pair<const class Pin *, bool>> &pins);
23  std::optional<UUIDPath<2>> map_symbol(const std::map<UUIDPath<2>, std::string> &gates);
24  std::optional<UUID> map_package(const std::vector<std::pair<class Component *, bool>> &components);
25  std::optional<UUID> select_symbol(class IPool &p, const UUID &unit_uuid);
26  std::optional<UUID> select_part(class IPool &p, const UUID &entity_uuid, const UUID &part_uuid,
27  bool show_none = false);
28  std::optional<UUID> select_entity(class IPool &pool);
29  std::optional<UUID> select_unit(class IPool &pool);
30  std::optional<UUID> select_padstack(class IPool &pool, const UUID &package_uuid);
31  std::optional<UUID> select_hole_padstack(class IPool &pool);
32  std::optional<UUID> select_via_padstack(class ViaPadstackProvider &vpp);
33  std::optional<UUID> select_net(const class Block &block, bool power_only, const UUID &net_default = UUID());
34  std::optional<UUID> select_bus(const class Block &block);
35  std::optional<UUID> select_bus_member(const class Block &block, const UUID &bus_uuid);
36  std::optional<UUID> select_group_tag(const class Block &block, bool tag_mode, const UUID &current);
37  std::optional<UUID> select_included_board(const class Board &brd);
38  std::optional<UUID> select_decal(class IPool &pool);
39 
40  unsigned int ask_net_merge(class Net &net, class Net &into);
41  bool manage_buses(class Block &b);
42  bool manage_net_classes(class Block &b);
43  bool manage_power_nets(class Block &b);
44  bool manage_via_templates(class Board &b, class ViaPadstackProvider &vpp);
45  bool manage_included_boards(class Board &b);
46  bool edit_pad_parameter_set(std::set<class Pad *> &pads, class IPool &pool, class Package &pkg);
47  bool edit_board_hole(std::set<class BoardHole *> &holes, class IPool &pool, class Block &block);
48  bool annotate(class Schematic &s);
49  bool edit_plane(class Plane &plane, class Board &brd);
50  bool edit_keepout(class Keepout &keepout, class IDocument &c, bool add_mode);
51  bool edit_stackup(class IDocumentBoard &brd);
52  bool edit_schematic_properties(class Schematic &s, class IPool &pool);
53  bool edit_frame_properties(class Frame &fr);
54  std::optional<int64_t> ask_datum(const std::string &label, int64_t def = 0);
55  std::optional<Coordi> ask_datum_coord(const std::string &label, Coordi def = Coordi());
56  std::optional<std::pair<Coordi, std::pair<bool, bool>>> ask_datum_coord2(const std::string &label,
57  Coordi def = Coordi());
58  std::optional<std::string> ask_datum_string_multiline(const std::string &label, const std::string &def);
59  std::optional<std::string> ask_datum_string(const std::string &label, const std::string &def);
60  std::optional<int> ask_datum_angle(const std::string &label, int def = 0);
61  bool edit_shapes(std::set<class Shape *> shapes);
62  bool edit_via(std::set<class Via *> &vias, class ViaPadstackProvider &vpp);
63  std::optional<std::string> ask_dxf_filename();
64  std::optional<std::string> ask_kicad_package_filename();
65  std::optional<std::string> ask_picture_filename();
66 
67  class SymbolPinNamesWindow *show_symbol_pin_names_window(class SchematicSymbol &symbol);
68  class RenumberPadsWindow *show_renumber_pads_window(class Package &pkg, const std::set<UUID> &pads);
69  class GenerateSilkscreenWindow *show_generate_silkscreen_window(class ToolSettings &settings);
70  class EnterDatumWindow *show_enter_datum_window(const std::string &label, int64_t def = 0);
71  class RouterSettingsWindow *show_router_settings_window(class ToolSettings &settings);
72 
73  void close_nonmodal();
74  class ToolWindow *get_nonmodal();
75 
76 private:
77  Gtk::Window *parent = nullptr;
78  class ImpInterface *interface = nullptr;
79  class ToolWindow *window_nonmodal = nullptr;
80 };
81 } // namespace horizon
libzip::int64_t
zip_int64_t int64_t
zip_int64_t typedef.
Definition: zip.hpp:103