OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::ObjectLayers Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/GUI_ObjectLayers.hpp>

Inheritance diagram for Slic3r::GUI::ObjectLayers:
Collaboration diagram for Slic3r::GUI::ObjectLayers:

Classes

class  PlusMinusButton

Public Member Functions

 ObjectLayers (wxWindow *parent)
 ~ObjectLayers ()
void select_editor (LayerRangeEditor *editor, const bool is_last_edited_range)
wxSizer * create_layer (const t_layer_height_range &range, PlusMinusButton *delete_button, PlusMinusButton *add_button)
void create_layers_list ()
void update_layers_list ()
void update_scene_from_editor_selection () const
void UpdateAndShow (const bool show) override
void msw_rescale ()
void sys_color_changed ()
void reset_selection ()
void set_selectable_range (const t_layer_height_range &range)
virtual bool IsShown ()
virtual void Show (const bool show)
virtual void Hide ()
virtual wxSizer * get_sizer ()
ConfigOptionsGroup * get_og ()
wxWindow * parent () const

Protected Attributes

std::shared_ptr< ConfigOptionsGroup > m_og
wxWindow * m_parent

Private Attributes

ScalableBitmap m_bmp_delete
ScalableBitmap m_bmp_add
ScalableBitmap m_bmp_layer
ModelObject * m_object {nullptr}
wxFlexGridSizer * m_grid_sizer
t_layer_height_range m_selectable_range
EditorType m_selection_type {etUndef}

Friends

class LayerRangeEditor

Detailed Description

Constructor & Destructor Documentation

◆ ObjectLayers()

Slic3r::GUI::ObjectLayers::ObjectLayers ( wxWindow * parent)
41 :
42 OG_Settings(parent, true)
43{
44 m_grid_sizer = new wxFlexGridSizer(5, parent ? parent->FromDIP(2) : 2, wxGetApp().em_unit()); // Title, Min Z, "to", Max Z, buttons sizer
45 m_grid_sizer->SetFlexibleDirection(wxHORIZONTAL);
46 m_grid_sizer->AddGrowableCol(1);
47 m_grid_sizer->AddGrowableCol(3);
48
49 m_og->activate();
50 m_og->sizer->Clear(true);
51 m_og->sizer->Add(m_grid_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, parent ? parent->FromDIP(2) : 2);
52 if (auto stb = dynamic_cast<LabeledStaticBox*>(m_og->stb))
53 stb->SetCornerRadius(0);
54
55 m_bmp_delete = ScalableBitmap(parent, "delete");
56 m_bmp_add = ScalableBitmap(parent, "add");
57 m_bmp_layer = ScalableBitmap(parent, "height_range_layer");
58}
OG_Settings(wxWindow *parent, const bool staticbox)
Definition GUI_ObjectSettings.cpp:38
wxWindow * parent() const
Definition GUI_ObjectSettings.hpp:37
std::shared_ptr< ConfigOptionsGroup > m_og
Definition GUI_ObjectSettings.hpp:24
wxFlexGridSizer * m_grid_sizer
Definition GUI_ObjectLayers.hpp:75
ScalableBitmap m_bmp_add
Definition GUI_ObjectLayers.hpp:71
ScalableBitmap m_bmp_layer
Definition GUI_ObjectLayers.hpp:72
ScalableBitmap m_bmp_delete
Definition GUI_ObjectLayers.hpp:70
int em_unit(wxWindow *win)
Definition wxExtensions.cpp:424

References Slic3r::GUI::OG_Settings::OG_Settings(), em_unit(), m_bmp_add, m_bmp_delete, m_bmp_layer, m_grid_sizer, Slic3r::GUI::OG_Settings::m_og, and Slic3r::GUI::OG_Settings::parent().

Here is the call graph for this function:

◆ ~ObjectLayers()

Slic3r::GUI::ObjectLayers::~ObjectLayers ( )
inline
81{}

Member Function Documentation

◆ create_layer()

wxSizer * Slic3r::GUI::ObjectLayers::create_layer ( const t_layer_height_range & range,
PlusMinusButton * delete_button,
PlusMinusButton * add_button )
80{
81 const bool is_last_edited_range = range == m_selectable_range;
82
83 auto set_focus_data = [range, this](const EditorType type)
84 {
86 m_selection_type = type;
87 };
88
89 auto update_focus_data = [range, this](const t_layer_height_range& new_range, EditorType type, bool enter_pressed)
90 {
91 // change selectable range for new one, if enter was pressed or if same range was selected
92 if (enter_pressed || m_selectable_range == range)
93 m_selectable_range = new_range;
94 if (enter_pressed)
95 m_selection_type = type;
96 };
97
98 // Add text
99 auto title_sizer = new wxBoxSizer(wxHORIZONTAL);
100 auto head_text = new wxStaticText(m_og->ctrl_parent(), wxID_ANY, _L("Range"));
101 head_text->SetBackgroundStyle(wxBG_STYLE_PAINT);
102 head_text->SetFont(wxGetApp().normal_font());
103 auto icon = new wxStaticBitmap(m_og->ctrl_parent(), wxID_ANY, m_bmp_layer.bmp());
104 title_sizer->Add(icon, 0, wxALIGN_CENTER_VERTICAL);
105 title_sizer->Add(head_text, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, m_og->ctrl_parent()->FromDIP(5));
106 m_grid_sizer->Add(title_sizer, 0, wxALIGN_CENTER_VERTICAL);
107
108 // Add control for the "Min Z"
109
110 auto editor = new LayerRangeEditor(this, double_to_string(range.first), etMinZ, set_focus_data,
111 [range, update_focus_data, this, delete_button, add_button](coordf_t min_z, bool enter_pressed, bool dont_update_ui)
112 {
113 if (fabs(min_z - range.first) < EPSILON) {
114 m_selection_type = etUndef;
115 return false;
116 }
117
118 // data for next focusing
119 coordf_t max_z = min_z < range.second ? range.second : min_z + 0.5;
120 const t_layer_height_range new_range = { min_z, max_z };
121 if (delete_button)
122 delete_button->range = new_range;
123 if (add_button)
124 add_button->range = new_range;
125 update_focus_data(new_range, etMinZ, enter_pressed);
126
127 return wxGetApp().obj_list()->edit_layer_range(range, new_range, dont_update_ui);
128 });
129
130 select_editor(editor, is_last_edited_range);
131
132 m_grid_sizer->Add(editor, 1, wxEXPAND);
133
134 auto middle_text = new wxStaticText(m_og->ctrl_parent(), wxID_ANY, "-");
135 middle_text->SetBackgroundStyle(wxBG_STYLE_PAINT);
136 middle_text->SetFont(wxGetApp().normal_font());
137 m_grid_sizer->Add(middle_text, 0, wxALIGN_CENTER_VERTICAL);
138
139 // Add control for the "Max Z"
140
141 editor = new LayerRangeEditor(this, double_to_string(range.second), etMaxZ, set_focus_data,
142 [range, update_focus_data, this, delete_button, add_button](coordf_t max_z, bool enter_pressed, bool dont_update_ui)
143 {
144 if (fabs(max_z - range.second) < EPSILON || range.first > max_z) {
145 m_selection_type = etUndef;
146 return false; // LayersList would not be updated/recreated
147 }
148
149 // data for next focusing
150 const t_layer_height_range& new_range = { range.first, max_z };
151 if (delete_button)
152 delete_button->range = new_range;
153 if (add_button)
154 add_button->range = new_range;
155 update_focus_data(new_range, etMaxZ, enter_pressed);
156
157 return wxGetApp().obj_list()->edit_layer_range(range, new_range, dont_update_ui);
158 });
159
160 //select_editor(editor, is_last_edited_range);
161 m_grid_sizer->Add(editor, 1, wxEXPAND);
162
163 auto sizer2 = new wxBoxSizer(wxHORIZONTAL);
164 m_grid_sizer->Add(sizer2, 0, wxALIGN_CENTER_VERTICAL);
165
166 // BBS
167 // Add control for the "Layer height"
168
169 //editor = new LayerRangeEditor(this, double_to_string(m_object->layer_config_ranges[range].option("layer_height")->getFloat()), etLayerHeight, set_focus_data,
170 // [range](coordf_t layer_height, bool, bool)
171 //{
172 // return wxGetApp().obj_list()->edit_layer_range(range, layer_height);
173 //});
174
175 //select_editor(editor, is_last_edited_range);
176
177 //auto sizer = new wxBoxSizer(wxHORIZONTAL);
178 //sizer->Add(editor);
179
180 //auto temp = new wxStaticText(m_parent, wxID_ANY, _L("mm"));
181 //temp->SetBackgroundStyle(wxBG_STYLE_PAINT);
182 //temp->SetFont(wxGetApp().normal_font());
183 //sizer->Add(temp, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, wxGetApp().em_unit());
184
185 //m_grid_sizer->Add(sizer);
186
187 return sizer2;
188}
#define _L(s)
Definition OBJ.cpp:34
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
t_layer_height_range m_selectable_range
Definition GUI_ObjectLayers.hpp:76
EditorType m_selection_type
Definition GUI_ObjectLayers.hpp:77
void select_editor(LayerRangeEditor *editor, const bool is_last_edited_range)
Definition GUI_ObjectLayers.cpp:60
friend class LayerRangeEditor
Definition GUI_ObjectLayers.hpp:111
wxString double_to_string(double const value, const int max_precision)
Definition Field.cpp:99
EditorType
Definition GUI_ObjectLayers.hpp:32
@ etMaxZ
Definition GUI_ObjectLayers.hpp:35
@ etMinZ
Definition GUI_ObjectLayers.hpp:34
double coordf_t
Definition GUI_ObjectLayers.hpp:26
std::pair< coordf_t, coordf_t > t_layer_height_range
Definition GUI_ObjectLayers.hpp:27
auto range(Cont &&cont)
Definition libslic3r.h:405

References _L, Slic3r::GUI::double_to_string(), Slic3r::GUI::etMinZ, LayerRangeEditor, m_bmp_layer, m_grid_sizer, Slic3r::GUI::OG_Settings::m_og, m_selectable_range, m_selection_type, Slic3r::GUI::ObjectLayers::PlusMinusButton::range, Slic3r::range(), and wxStaticText.

Referenced by create_layers_list(), and update_layers_list().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_layers_list()

void Slic3r::GUI::ObjectLayers::create_layers_list ( )
191{
192 for (const auto &layer : m_object->layer_config_ranges) {
193 const t_layer_height_range& range = layer.first;
194 auto del_btn = new PlusMinusButton(m_og->ctrl_parent(), m_bmp_delete, range);
195 del_btn->DisableFocusFromKeyboard();
196 del_btn->SetBackgroundColour(m_parent->GetBackgroundColour());
197 del_btn->SetToolTip(_L("Remove height range"));
198
199 auto add_btn = new PlusMinusButton(m_og->ctrl_parent(), m_bmp_add, range);
200 add_btn->DisableFocusFromKeyboard();
201 add_btn->SetBackgroundColour(m_parent->GetBackgroundColour());
202 wxString tooltip = wxGetApp().obj_list()->can_add_new_range_after_current(range);
203 add_btn->SetToolTip(tooltip.IsEmpty() ? _L("Add height range") : tooltip);
204 add_btn->Enable(tooltip.IsEmpty());
205
206 auto sizer = create_layer(range, del_btn, add_btn);
207 auto b_sizer = new wxBoxSizer(wxHORIZONTAL);
208 b_sizer->Add(del_btn, 0, wxLEFT, m_og->ctrl_parent()->FromDIP(5));
209 b_sizer->AddSpacer(m_og->ctrl_parent()->FromDIP(15));
210 b_sizer->Add(add_btn, 0, wxRIGHT, m_og->ctrl_parent()->FromDIP(5));
211 sizer->Add(b_sizer, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, m_parent->FromDIP(1)); // aligns +/- buttons vertically since we got 1px gap on bottom of icons
212
213 del_btn->Bind(wxEVT_BUTTON, [del_btn](wxEvent &) {
214 wxGetApp().obj_list()->del_layer_range(del_btn->range);
215 });
216
217 add_btn->Bind(wxEVT_BUTTON, [add_btn](wxEvent &) {
218 wxGetApp().obj_list()->add_layer_range_after_current(add_btn->range);
219 });
220 }
221}
wxWindow * m_parent
Definition GUI_ObjectSettings.hpp:25
Definition GUI_ObjectLayers.hpp:88
wxSizer * create_layer(const t_layer_height_range &range, PlusMinusButton *delete_button, PlusMinusButton *add_button)
Definition GUI_ObjectLayers.cpp:79
ModelObject * m_object
Definition GUI_ObjectLayers.hpp:73

References _L, create_layer(), create_layers_list(), m_bmp_add, m_bmp_delete, m_object, Slic3r::GUI::OG_Settings::m_og, Slic3r::GUI::OG_Settings::m_parent, and Slic3r::range().

Referenced by create_layers_list(), and update_layers_list().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_og()

ConfigOptionsGroup * Slic3r::GUI::OG_Settings::get_og ( )
inlineinherited
36{ return m_og.get(); }

References m_og.

◆ get_sizer()

wxSizer * Slic3r::GUI::OG_Settings::get_sizer ( )
virtualinherited
69{
70 return m_og->sizer;
71}

References m_og.

◆ Hide()

void Slic3r::GUI::OG_Settings::Hide ( )
virtualinherited
58{
59 Show(false);
60}
virtual void Show(const bool show)
Definition GUI_ObjectSettings.cpp:52

References Show().

Here is the call graph for this function:

◆ IsShown()

bool Slic3r::GUI::OG_Settings::IsShown ( )
virtualinherited
48{
49 return m_og->sizer->IsEmpty() ? false : m_og->sizer->IsShown(size_t(0));
50}

References m_og.

◆ msw_rescale()

void Slic3r::GUI::ObjectLayers::msw_rescale ( )
278{
279 m_bmp_delete.msw_rescale();
280 m_bmp_add.msw_rescale();
281 m_bmp_layer.msw_rescale();
282
283 m_grid_sizer->SetHGap(wxGetApp().em_unit());
284
285 // rescale edit-boxes
286 const int cells_cnt = m_grid_sizer->GetCols() * m_grid_sizer->GetEffectiveRowsCount();
287 for (int i = 0; i < cells_cnt; ++i) {
288 const wxSizerItem* item = m_grid_sizer->GetItem(i);
289 if (item->IsWindow()) {
290 LayerRangeEditor* editor = dynamic_cast<LayerRangeEditor*>(item->GetWindow());
291 if (editor != nullptr)
292 editor->msw_rescale();
293 }
294 else if (item->IsSizer()) // case when we have editor with buttons
295 {
296 wxSizerItem* e_item = item->GetSizer()->GetItem(size_t(0)); // editor
297 if (e_item->IsWindow()) {
298 LayerRangeEditor* editor = dynamic_cast<LayerRangeEditor*>(e_item->GetWindow());
299 if (editor != nullptr)
300 editor->msw_rescale();
301 }
302
303 if (item->GetSizer()->GetItemCount() > 2) // if there are Add/Del buttons
304 for (size_t btn : {2, 3}) { // del_btn, add_btn
305 wxSizerItem* b_item = item->GetSizer()->GetItem(btn);
306 if (b_item->IsWindow()) {
307 auto button = dynamic_cast<PlusMinusButton*>(b_item->GetWindow());
308 if (button != nullptr)
310 }
311 }
312 }
313 }
314 m_grid_sizer->Layout();
315}
void msw_rescale()
Definition wxExtensions.cpp:1114
bool button(const IconManager::Icon &activ, const IconManager::Icon &hover, const IconManager::Icon &disable, bool disabled)
Use icon as button with 3 states activ hover and disabled.
Definition IconManager.cpp:418

References Slic3r::GUI::button(), em_unit(), LayerRangeEditor, m_bmp_add, m_bmp_delete, m_bmp_layer, m_grid_sizer, Slic3r::GUI::LayerRangeEditor::msw_rescale(), and msw_rescale().

Referenced by msw_rescale().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parent()

wxWindow * Slic3r::GUI::OG_Settings::parent ( ) const
inlineinherited
37{return m_parent; }

References m_parent.

Referenced by Slic3r::GUI::ObjectLayers::ObjectLayers(), Slic3r::GUI::ObjectSettings::ObjectSettings(), OG_Settings(), Slic3r::GUI::ObjectLayers::PlusMinusButton::PlusMinusButton(), and Slic3r::GUI::ObjectSettings::update_settings_list().

Here is the caller graph for this function:

◆ reset_selection()

void Slic3r::GUI::ObjectLayers::reset_selection ( )
358{
359 m_selectable_range = { 0.0, 0.0 };
361}
@ etLayerHeight
Definition GUI_ObjectLayers.hpp:36

References Slic3r::GUI::etLayerHeight, m_selectable_range, m_selection_type, and reset_selection().

Referenced by reset_selection().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ select_editor()

void Slic3r::GUI::ObjectLayers::select_editor ( LayerRangeEditor * editor,
const bool is_last_edited_range )
61{
62 //if (is_last_edited_range && m_selection_type == editor->type()) {
63 /* Workaround! Under OSX we should use CallAfter() for SetFocus() after LayerEditors "reorganizations",
64 * because of selected control's strange behavior:
65 * cursor is set to the control, but blue border - doesn't.
66 * And as a result we couldn't edit this control.
67 * */
68#ifdef __WXOSX__
69 wxTheApp->CallAfter([]() {
70#endif
71 //editor->SetFocus();
72 //editor->SelectAll();
73#ifdef __WXOSX__
74 });
75#endif
76 //}
77}

References LayerRangeEditor.

Here is the call graph for this function:

◆ set_selectable_range()

void Slic3r::GUI::ObjectLayers::set_selectable_range ( const t_layer_height_range & range)
inline

References m_selectable_range, and Slic3r::range().

Here is the call graph for this function:

◆ Show()

void Slic3r::GUI::OG_Settings::Show ( const bool show)
virtualinherited
53{
54 m_og->Show(show);
55}

References m_og.

Referenced by Hide(), and UpdateAndShow().

Here is the caller graph for this function:

◆ sys_color_changed()

void Slic3r::GUI::ObjectLayers::sys_color_changed ( )
318{
319 m_bmp_delete.msw_rescale();
320 m_bmp_add.msw_rescale();
321
322 // rescale edit-boxes
323 const int cells_cnt = m_grid_sizer->GetCols() * m_grid_sizer->GetEffectiveRowsCount();
324 for (int i = 0; i < cells_cnt; ++i) {
325 const wxSizerItem* item = m_grid_sizer->GetItem(i);
326 if (item->IsSizer()) {// case when we have editor with buttons
327 for (size_t btn : {2, 3}) { // del_btn, add_btn
328 wxSizerItem* b_item = item->GetSizer()->GetItem(btn);
329 if (b_item && b_item->IsWindow()) {
330 auto button = dynamic_cast<PlusMinusButton*>(b_item->GetWindow());
331 if (button != nullptr)
333 }
334 }
335 }
336 }
337
338#ifdef _WIN32
339 m_og->sys_color_changed();
340 for (int i = 0; i < cells_cnt; ++i) {
341 const wxSizerItem* item = m_grid_sizer->GetItem(i);
342 if (item->IsWindow()) {
343 if (LayerRangeEditor* editor = dynamic_cast<LayerRangeEditor*>(item->GetWindow()))
344 wxGetApp().UpdateDarkUI(editor);
345 }
346 else if (item->IsSizer()) {// case when we have editor with buttons
347 if (wxSizerItem* e_item = item->GetSizer()->GetItem(size_t(0)); e_item->IsWindow()) {
348 if (LayerRangeEditor* editor = dynamic_cast<LayerRangeEditor*>(e_item->GetWindow()))
349 wxGetApp().UpdateDarkUI(editor);
350 }
351 }
352 }
353#endif
354
355}

References Slic3r::GUI::button(), LayerRangeEditor, m_bmp_add, m_bmp_delete, m_grid_sizer, Slic3r::GUI::OG_Settings::m_og, and sys_color_changed().

Referenced by sys_color_changed(), and Slic3r::GUI::Sidebar::sys_color_changed().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_layers_list()

void Slic3r::GUI::ObjectLayers::update_layers_list ( )
224{
225 ObjectList* objects_ctrl = wxGetApp().obj_list();
226 if (objects_ctrl->multiple_selection()) return;
227
228 const auto item = objects_ctrl->GetSelection();
229 if (!item) return;
230
231 const int obj_idx = objects_ctrl->get_selected_obj_idx();
232 if (obj_idx < 0) return;
233
234 const ItemType type = objects_ctrl->GetModel()->GetItemType(item);
235 if (!(type & (itLayerRoot | itLayer))) return;
236
237 m_object = objects_ctrl->object(obj_idx);
238 if (!m_object || m_object->layer_config_ranges.empty()) return;
239
240 auto range = objects_ctrl->GetModel()->GetLayerRangeByItem(item);
241
242 // only call sizer->Clear(true) via CallAfter, otherwise crash happens in Linux when press enter in Height Range
243 // because an element cannot be destroyed while there are pending events for this element.(https://github.com/wxWidgets/Phoenix/issues/1854)
244 wxGetApp().CallAfter([this, type, range]() {
245 m_og->ctrl_parent()->Freeze();
246
247 // Delete all controls from options group
248 m_grid_sizer->Clear(true);
249
250 // Add new control according to the selected item
251
252 if (type & itLayerRoot)
254 else
255 create_layer(range, nullptr, nullptr);
256
257 m_og->ctrl_parent()->Thaw();
258
259 m_parent->Layout();
260 });
261}
void create_layers_list()
Definition GUI_ObjectLayers.cpp:190
ItemType
Definition ObjectDataViewModel.hpp:34
@ itLayer
Definition ObjectDataViewModel.hpp:43
@ itLayerRoot
Definition ObjectDataViewModel.hpp:42
@ ObjectList
Definition Shortcuts.hpp:21

References create_layer(), create_layers_list(), Slic3r::GUI::ObjectList::get_selected_obj_idx(), Slic3r::GUI::ObjectDataViewModel::GetItemType(), Slic3r::GUI::ObjectDataViewModel::GetLayerRangeByItem(), Slic3r::GUI::ObjectList::GetModel(), Slic3r::GUI::itLayer, Slic3r::GUI::itLayerRoot, m_grid_sizer, m_object, Slic3r::GUI::OG_Settings::m_og, Slic3r::GUI::OG_Settings::m_parent, Slic3r::GUI::ObjectList::multiple_selection(), Slic3r::GUI::ObjectList::object(), Slic3r::range(), and update_layers_list().

Referenced by update_layers_list(), and UpdateAndShow().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_scene_from_editor_selection()

void Slic3r::GUI::ObjectLayers::update_scene_from_editor_selection ( ) const
264{
265 // needed to show the visual hints in 3D scene
266 wxGetApp().plater()->canvas3D()->handle_layers_data_focus_event(m_selectable_range, m_selection_type);
267}

References m_selectable_range, m_selection_type, and update_scene_from_editor_selection().

Referenced by Slic3r::GUI::LayerRangeEditor::LayerRangeEditor(), and update_scene_from_editor_selection().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdateAndShow()

void Slic3r::GUI::ObjectLayers::UpdateAndShow ( const bool show)
overridevirtual

Reimplemented from Slic3r::GUI::OG_Settings.

270{
271 if (show)
273
275}
virtual void UpdateAndShow(const bool show)
Definition GUI_ObjectSettings.cpp:62
void update_layers_list()
Definition GUI_ObjectLayers.cpp:223

References update_layers_list(), UpdateAndShow(), and Slic3r::GUI::OG_Settings::UpdateAndShow().

Referenced by UpdateAndShow().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LayerRangeEditor

friend class LayerRangeEditor
friend

Member Data Documentation

◆ m_bmp_add

ScalableBitmap Slic3r::GUI::ObjectLayers::m_bmp_add
private

◆ m_bmp_delete

ScalableBitmap Slic3r::GUI::ObjectLayers::m_bmp_delete
private

◆ m_bmp_layer

ScalableBitmap Slic3r::GUI::ObjectLayers::m_bmp_layer
private

◆ m_grid_sizer

wxFlexGridSizer* Slic3r::GUI::ObjectLayers::m_grid_sizer
private

◆ m_object

ModelObject* Slic3r::GUI::ObjectLayers::m_object {nullptr}
private
73{nullptr};

Referenced by create_layers_list(), and update_layers_list().

◆ m_og

◆ m_parent

◆ m_selectable_range

t_layer_height_range Slic3r::GUI::ObjectLayers::m_selectable_range
private

◆ m_selection_type

EditorType Slic3r::GUI::ObjectLayers::m_selection_type {etUndef}
private
77{etUndef};
@ etUndef
Definition GUI_ObjectLayers.hpp:33

Referenced by create_layer(), reset_selection(), and update_scene_from_editor_selection().


The documentation for this class was generated from the following files: