13 enum class Mode { BOARD, PACKAGE };
14 View3DWindow(BaseObjectType *cobject,
const Glib::RefPtr<Gtk::Builder> &x,
const class Board &b,
class IPool &p,
15 Mode mode,
class Canvas3D *ca_custom);
17 void update(
bool clear =
false);
18 void set_needs_update();
19 void set_highlights(
const std::set<UUID> &pkgs);
20 void add_widget(Gtk::Widget *w);
22 void set_solder_mask_color(
const Gdk::RGBA &c);
23 Gdk::RGBA get_solder_mask_color();
25 void set_silkscreen_color(
const Gdk::RGBA &c);
26 Gdk::RGBA get_silkscreen_color();
28 void set_substrate_color(
const Gdk::RGBA &c);
29 Gdk::RGBA get_substrate_color();
36 void apply_preferences(
const class Preferences &prefs);
38 typedef sigc::signal<void> type_signal_request_update;
39 type_signal_request_update signal_request_update()
41 return s_signal_request_update;
43 type_signal_request_update signal_present_imp()
45 return s_signal_present_imp;
48 typedef sigc::signal<void, UUID> type_signal_package_select;
49 type_signal_package_select signal_package_select();
51 void set_3d_title(
const std::string &s);
55 const class Board &board;
57 bool needs_update =
true;
59 Gtk::Box *main_box =
nullptr;
61 Gtk::Button *update_button =
nullptr;
63 Gtk::Revealer *loading_revealer =
nullptr;
64 Gtk::Spinner *loading_spinner =
nullptr;
66 Gtk::ProgressBar *model_loading_progress =
nullptr;
67 Gtk::Box *model_loading_box =
nullptr;
68 Gtk::ProgressBar *layer_loading_progress =
nullptr;
69 Gtk::Box *layer_loading_box =
nullptr;
71 size_t model_loading_i = 0;
72 size_t model_loading_n = 0;
73 size_t layer_loading_i = 0;
74 size_t layer_loading_n = 0;
76 void update_loading();
78 Gtk::ColorButton *background_top_color_button =
nullptr;
79 Gtk::ColorButton *background_bottom_color_button =
nullptr;
80 Gtk::ColorButton *solder_mask_color_button =
nullptr;
81 Gtk::ColorButton *silkscreen_color_button =
nullptr;
82 Gtk::ColorButton *substrate_color_button =
nullptr;
83 Gtk::ComboBoxText *background_color_preset_combo =
nullptr;
84 bool setting_background_color_from_preset =
false;
86 Gtk::RadioButton *proj_persp_rb =
nullptr;
87 Gtk::RadioButton *proj_ortho_rb =
nullptr;
89 Gtk::Revealer *hud_revealer =
nullptr;
90 Gtk::Label *hud_label =
nullptr;
91 void hud_set_package(
const UUID &uu);
94 void bind_color_button(Gtk::ColorButton *color_button, FnSetColor fn_set, std::function<
void(
void)> extra_fn);
98 std::map<ActionID, ActionConnection> action_connections;
100 bool handle_action_key(
const GdkEventKey *ev);
101 KeySequence keys_current;
102 void trigger_action(ActionID action);
110 type_signal_request_update s_signal_request_update;
111 type_signal_request_update s_signal_present_imp;
115 std::vector<ActionID> spnav_buttons;