Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/slic3r/GUI/ObjectDataViewModel.hpp')
-rw-r--r--src/slic3r/GUI/ObjectDataViewModel.hpp171
1 files changed, 18 insertions, 153 deletions
diff --git a/src/slic3r/GUI/ObjectDataViewModel.hpp b/src/slic3r/GUI/ObjectDataViewModel.hpp
index c18484266..17ad2047f 100644
--- a/src/slic3r/GUI/ObjectDataViewModel.hpp
+++ b/src/slic3r/GUI/ObjectDataViewModel.hpp
@@ -2,9 +2,10 @@
#define slic3r_GUI_ObjectDataViewModel_hpp_
#include <wx/dataview.h>
-
#include <vector>
+#include "ExtraRenderers.hpp"
+
namespace Slic3r {
enum class ModelVolumeType : int;
@@ -15,143 +16,6 @@ typedef double coordf_t;
typedef std::pair<coordf_t, coordf_t> t_layer_height_range;
// ----------------------------------------------------------------------------
-// DataViewBitmapText: helper class used by BitmapTextRenderer
-// ----------------------------------------------------------------------------
-
-class DataViewBitmapText : public wxObject
-{
-public:
- DataViewBitmapText( const wxString &text = wxEmptyString,
- const wxBitmap& bmp = wxNullBitmap) :
- m_text(text),
- m_bmp(bmp)
- { }
-
- DataViewBitmapText(const DataViewBitmapText &other)
- : wxObject(),
- m_text(other.m_text),
- m_bmp(other.m_bmp)
- { }
-
- void SetText(const wxString &text) { m_text = text; }
- wxString GetText() const { return m_text; }
- void SetBitmap(const wxBitmap &bmp) { m_bmp = bmp; }
- const wxBitmap &GetBitmap() const { return m_bmp; }
-
- bool IsSameAs(const DataViewBitmapText& other) const {
- return m_text == other.m_text && m_bmp.IsSameAs(other.m_bmp);
- }
-
- bool operator==(const DataViewBitmapText& other) const {
- return IsSameAs(other);
- }
-
- bool operator!=(const DataViewBitmapText& other) const {
- return !IsSameAs(other);
- }
-
-private:
- wxString m_text;
- wxBitmap m_bmp;
-
- wxDECLARE_DYNAMIC_CLASS(DataViewBitmapText);
-};
-DECLARE_VARIANT_OBJECT(DataViewBitmapText)
-
-// ----------------------------------------------------------------------------
-// BitmapTextRenderer
-// ----------------------------------------------------------------------------
-#if ENABLE_NONCUSTOM_DATA_VIEW_RENDERING
-class BitmapTextRenderer : public wxDataViewRenderer
-#else
-class BitmapTextRenderer : public wxDataViewCustomRenderer
-#endif //ENABLE_NONCUSTOM_DATA_VIEW_RENDERING
-{
-public:
- BitmapTextRenderer(wxWindow* parent,
- wxDataViewCellMode mode =
-#ifdef __WXOSX__
- wxDATAVIEW_CELL_INERT
-#else
- wxDATAVIEW_CELL_EDITABLE
-#endif
-
- , int align = wxDVR_DEFAULT_ALIGNMENT
-#if ENABLE_NONCUSTOM_DATA_VIEW_RENDERING
- );
-#else
- ) :
- wxDataViewCustomRenderer(wxT("DataViewBitmapText"), mode, align),
- m_parent(parent)
- {}
-#endif //ENABLE_NONCUSTOM_DATA_VIEW_RENDERING
-
- 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) override;
- virtual wxSize GetSize() const override;
-
- bool HasEditorCtrl() const override
- {
-#ifdef __WXOSX__
- return false;
-#else
- return true;
-#endif
- }
- wxWindow* CreateEditorCtrl(wxWindow* parent,
- wxRect labelRect,
- const wxVariant& value) override;
- bool GetValueFromEditorCtrl(wxWindow* ctrl,
- wxVariant& value) override;
- bool WasCanceled() const { return m_was_unusable_symbol; }
-
-private:
- DataViewBitmapText m_value;
- bool m_was_unusable_symbol{ false };
- wxWindow* m_parent{ nullptr };
-};
-
-
-// ----------------------------------------------------------------------------
-// BitmapChoiceRenderer
-// ----------------------------------------------------------------------------
-
-class BitmapChoiceRenderer : public wxDataViewCustomRenderer
-{
-public:
- BitmapChoiceRenderer(wxDataViewCellMode mode =
-#ifdef __WXOSX__
- wxDATAVIEW_CELL_INERT
-#else
- wxDATAVIEW_CELL_EDITABLE
-#endif
- , int align = wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL
- ) : wxDataViewCustomRenderer(wxT("DataViewBitmapText"), mode, align) {}
-
- bool SetValue(const wxVariant& value);
- bool GetValue(wxVariant& value) const;
-
- virtual bool Render(wxRect cell, wxDC* dc, int state) override;
- virtual wxSize GetSize() const override;
-
- bool HasEditorCtrl() const override { return true; }
- wxWindow* CreateEditorCtrl(wxWindow* parent,
- wxRect labelRect,
- const wxVariant& value) override;
- bool GetValueFromEditorCtrl(wxWindow* ctrl,
- wxVariant& value) override;
-
-private:
- DataViewBitmapText m_value;
-};
-
-
-// ----------------------------------------------------------------------------
// ObjectDataViewModelNode: a node inside ObjectDataViewModel
// ----------------------------------------------------------------------------
enum ItemType {
@@ -345,8 +209,10 @@ public:
return true;
}
- // Set action icons for node
+ // Set action and extruder(if any exist) icons for node
void set_action_and_extruder_icons();
+ // set extruder icon for node
+ void set_extruder_icon();
// Set printable icon for node
void set_printable_icon(PrintIndicator printable);
@@ -434,15 +300,15 @@ public:
// helper methods to change the model
- virtual unsigned int GetColumnCount() const override { return 3;}
- virtual wxString GetColumnType(unsigned int col) const override{ return wxT("string"); }
+ unsigned int GetColumnCount() const override { return 3;}
+ wxString GetColumnType(unsigned int col) const override{ return wxT("string"); }
- virtual void GetValue( wxVariant &variant,
- const wxDataViewItem &item,
- unsigned int col) const override;
- virtual bool SetValue( const wxVariant &variant,
- const wxDataViewItem &item,
- unsigned int col) override;
+ void GetValue( wxVariant &variant,
+ const wxDataViewItem &item,
+ unsigned int col) const override;
+ bool SetValue( const wxVariant &variant,
+ const wxDataViewItem &item,
+ unsigned int col) override;
bool SetValue( const wxVariant &variant,
const int item_idx,
unsigned int col);
@@ -456,18 +322,17 @@ public:
const wxDataViewItem &parent);
wxDataViewItem ReorganizeObjects( int current_id, int new_id);
- virtual bool IsEnabled(const wxDataViewItem &item, unsigned int col) const override;
+ bool IsEnabled(const wxDataViewItem &item, unsigned int col) const override;
- virtual wxDataViewItem GetParent(const wxDataViewItem &item) const override;
+ wxDataViewItem GetParent(const wxDataViewItem &item) const override;
// get object item
wxDataViewItem GetTopParent(const wxDataViewItem &item) const;
- virtual bool IsContainer(const wxDataViewItem &item) const override;
- virtual unsigned int GetChildren(const wxDataViewItem &parent,
- wxDataViewItemArray &array) const override;
+ bool IsContainer(const wxDataViewItem &item) const override;
+ unsigned int GetChildren(const wxDataViewItem &parent, wxDataViewItemArray &array) const override;
void GetAllChildren(const wxDataViewItem &parent,wxDataViewItemArray &array) const;
// Is the container just a header or an item with all columns
// In our case it is an item with all columns
- virtual bool HasContainerColumns(const wxDataViewItem& WXUNUSED(item)) const override { return true; }
+ bool HasContainerColumns(const wxDataViewItem& WXUNUSED(item)) const override { return true; }
ItemType GetItemType(const wxDataViewItem &item) const ;
wxDataViewItem GetItemByType( const wxDataViewItem &parent_item,