Added color for extruder

This commit is contained in:
YuSanka 2019-10-01 18:19:28 +02:00
parent c07a193b4e
commit d7ebc4de5b
5 changed files with 208 additions and 126 deletions

View file

@ -209,6 +209,7 @@ class ObjectDataViewModelNode
int m_idx = -1;
bool m_container = false;
wxString m_extruder = "default";
wxBitmap m_extruder_bmp;
wxBitmap m_action_icon;
PrintIndicator m_printable {piUndef};
wxBitmap m_printable_icon;
@ -224,7 +225,7 @@ public:
m_type(itObject),
m_extruder(extruder)
{
set_action_icon();
set_action_and_extruder_icons();
init_container();
}
@ -240,7 +241,7 @@ public:
m_extruder (extruder)
{
m_bmp = bmp;
set_action_icon();
set_action_and_extruder_icons();
init_container();
}
@ -356,7 +357,7 @@ public:
}
// Set action icons for node
void set_action_icon();
void set_action_and_extruder_icons();
// Set printable icon for node
void set_printable_icon(PrintIndicator printable);
@ -438,6 +439,8 @@ public:
wxString GetName(const wxDataViewItem &item) const;
wxBitmap& GetBitmap(const wxDataViewItem &item) const;
wxString GetExtruder(const wxDataViewItem &item) const;
int GetExtruderNumber(const wxDataViewItem &item) const;
// helper methods to change the model
@ -454,6 +457,8 @@ public:
const int item_idx,
unsigned int col);
void SetExtruder(const wxString& extruder, wxDataViewItem item);
// For parent move child from cur_volume_id place to new_volume_id
// Remaining items will moved up/down accordingly
wxDataViewItem ReorganizeChildren( const int cur_volume_id,
@ -504,6 +509,9 @@ public:
void DeleteWarningIcon(const wxDataViewItem& item, const bool unmark_object = false);
t_layer_height_range GetLayerRangeByItem(const wxDataViewItem& item) const;
bool UpdateColumValues(unsigned col);
void UpdateExtruderBitmap(wxDataViewItem item);
private:
wxDataViewItem AddRoot(const wxDataViewItem& parent_item, const ItemType root_type);
wxDataViewItem AddInstanceRoot(const wxDataViewItem& parent_item);
@ -564,36 +572,31 @@ private:
// ----------------------------------------------------------------------------
// BitmapChoiseRenderer
// BitmapChoiceRenderer
// ----------------------------------------------------------------------------
class BitmapChoiseRenderer : public wxDataViewCustomRenderer
class BitmapChoiceRenderer : public wxDataViewCustomRenderer
{
public:
BitmapChoiseRenderer(wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT
, int align = wxDVR_DEFAULT_ALIGNMENT
BitmapChoiceRenderer(wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE,
int align = wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL
) : wxDataViewCustomRenderer(wxT("DataViewBitmapText"), mode, align) {}
bool SetValue(const wxVariant& value);
bool GetValue(wxVariant& value) const;
#if ENABLE_NONCUSTOM_DATA_VIEW_RENDERING && wxUSE_ACCESSIBILITY
virtual wxString GetAccessibleDescription() const override;
#endif // wxUSE_ACCESSIBILITY && ENABLE_NONCUSTOM_DATA_VIEW_RENDERING
virtual bool Render(wxRect cell, wxDC* dc, int state);
virtual wxSize GetSize() const;
bool HasEditorCtrl() const override { return true; }
wxWindow* CreateEditorCtrl(wxWindow* parent,
wxRect labelRect,
const wxVariant& value) override;
bool GetValueFromEditorCtrl(wxWindow* ctrl,
wxVariant& value) override;
wxWindow* CreateEditorCtrl(wxWindow* parent,
wxRect labelRect,
const wxVariant& value) override;
bool GetValueFromEditorCtrl( wxWindow* ctrl,
wxVariant& value) override;
private:
DataViewBitmapText m_value;
wxArrayString m_choices;
};