Horizon
step_export_window.hpp
1 #pragma once
2 #include <gtkmm.h>
3 #include <array>
4 #include <set>
5 namespace horizon {
6 
7 class StepExportWindow : public Gtk::Window {
8  friend class GerberLayerEditor;
9 
10 public:
11  StepExportWindow(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &x, const class Board *b, class Pool *p);
12  static StepExportWindow *create(Gtk::Window *p, const class Board *b, class Pool *po);
13 
14  void set_can_export(bool v);
15 
16 private:
17  const class Board *brd;
18  class Pool *pool;
19  Gtk::HeaderBar *header = nullptr;
20  Gtk::Entry *filename_entry = nullptr;
21  Gtk::Button *filename_button = nullptr;
22  Gtk::Button *export_button = nullptr;
23  Gtk::Switch *include_3d_models_switch = nullptr;
24 
25  Gtk::TextView *log_textview = nullptr;
26  Gtk::Spinner *spinner = nullptr;
27 
28  Glib::Dispatcher export_dispatcher;
29  std::mutex msg_queue_mutex;
30  std::deque<std::string> msg_queue;
31  bool export_running = false;
32 
33 
34  void handle_export();
35  void set_is_busy(bool v);
36 
37  void export_thread(std::string filename, bool include_models);
38 };
39 } // namespace horizon
Definition: board.hpp:29
Definition: fab_output_window.cpp:9
Definition: step_export_window.hpp:7
Stores objects (Unit, Entity, Symbol, Part, etc.) from the pool.
Definition: pool.hpp:19
Definition: block.cpp:9