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 public:
9  StepExportWindow(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &x, class CoreBoard *c);
10  static StepExportWindow *create(Gtk::Window *p, class CoreBoard *c);
11 
12  void set_can_export(bool v);
13 
14 private:
15  class CoreBoard *core;
16  Gtk::HeaderBar *header = nullptr;
17  Gtk::Entry *filename_entry = nullptr;
18  Gtk::Button *filename_button = nullptr;
19  Gtk::Button *export_button = nullptr;
20  Gtk::Switch *include_3d_models_switch = nullptr;
21 
22  Gtk::TextView *log_textview = nullptr;
23  Gtk::Spinner *spinner = nullptr;
24 
25  Glib::Dispatcher export_dispatcher;
26  std::mutex msg_queue_mutex;
27  std::deque<std::string> msg_queue;
28  bool export_running = false;
29 
30 
31  void handle_export();
32  void set_is_busy(bool v);
33 
34  void export_thread(std::string filename, bool include_models);
35 };
36 } // namespace horizon
horizon::CoreBoard
Definition: core_board.hpp:11
horizon::StepExportWindow
Definition: step_export_window.hpp:7