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

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

Inheritance diagram for Slic3r::GUI::DevExtruderImage:
Collaboration diagram for Slic3r::GUI::DevExtruderImage:

Public Member Functions

 DevExtruderImage (wxWindow *parent, wxWindowID id, int extruder_num, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize)
 ~DevExtruderImage ()
void update (DevExtruderState single_state)
void update (DevExtruderState left_state, DevExtruderState right_state)
void msw_rescale ()
void setExtruderCount (int extruder_num)
void setExtruderUsed (const std::string &loc)

Private Member Functions

void paintEvent (wxPaintEvent &evt)
void render (wxDC &dc)
void doRender (wxDC &dc)

Private Attributes

ScalableBitmap * m_left_extruder_active_filled
ScalableBitmap * m_left_extruder_active_empty
ScalableBitmap * m_left_extruder_unactive_filled
ScalableBitmap * m_left_extruder_unactive_empty
ScalableBitmap * m_right_extruder_active_filled
ScalableBitmap * m_right_extruder_active_empty
ScalableBitmap * m_right_extruder_unactive_filled
ScalableBitmap * m_right_extruder_unactive_empty
ScalableBitmap * m_extruder_single_nozzle_empty_load
ScalableBitmap * m_extruder_single_nozzle_empty_unload
ScalableBitmap * m_extruder_single_nozzle_filled_load
ScalableBitmap * m_extruder_single_nozzle_filled_unload
DevExtruderState m_left_ext_state = {DevExtruderState::EMPTY_LOAD}
DevExtruderState m_right_ext_state = {DevExtruderState::EMPTY_LOAD}
DevExtruderState m_single_ext_state = {DevExtruderState::EMPTY_LOAD}
int m_extruder_num = 1
std::string current_extruder_loc = ""

Detailed Description

Constructor & Destructor Documentation

◆ DevExtruderImage()

Slic3r::GUI::DevExtruderImage::DevExtruderImage ( wxWindow * parent,
wxWindowID id,
int extruder_num,
const wxPoint & pos = wxDefaultPosition,
const wxSize & size = wxDefaultSize )
3847 : wxWindow(parent, id, pos, wxDefaultSize), m_extruder_num(extruder_num)
3848{
3849 // wxWindow::Create(parent, id, pos, wxSize(FromDIP(45), FromDIP(112)));
3850 SetBackgroundColour(*wxWHITE);
3851 SetSize(wxSize(FromDIP(48), FromDIP(112)));
3852 SetMinSize(wxSize(FromDIP(48), FromDIP(112)));
3853 SetMaxSize(wxSize(FromDIP(48), FromDIP(112)));
3854
3855
3856 m_left_extruder_active_filled = new ScalableBitmap(this, "left_extruder_active_filled", 62);
3857 m_left_extruder_active_empty = new ScalableBitmap(this, "left_extruder_active_empty", 62);
3858 m_left_extruder_unactive_filled = new ScalableBitmap(this, "left_extruder_unactive_filled", 62);
3859 m_left_extruder_unactive_empty = new ScalableBitmap(this, "left_extruder_unactive_empty", 62);
3860 m_right_extruder_active_filled = new ScalableBitmap(this, "right_extruder_active_filled", 62);
3861 m_right_extruder_active_empty = new ScalableBitmap(this, "right_extruder_active_empty", 62);
3862 m_right_extruder_unactive_filled = new ScalableBitmap(this, "right_extruder_unactive_filled", 62);
3863 m_right_extruder_unactive_empty = new ScalableBitmap(this, "right_extruder_unactive_empty", 62);
3864
3865 m_extruder_single_nozzle_empty_load = new ScalableBitmap(this, "monitor_extruder_empty_load", 106);
3866 m_extruder_single_nozzle_empty_unload = new ScalableBitmap(this, "monitor_extruder_empty_unload", 106);
3867 m_extruder_single_nozzle_filled_load = new ScalableBitmap(this, "monitor_extruder_filled_load", 106);
3868 m_extruder_single_nozzle_filled_unload = new ScalableBitmap(this, "monitor_extruder_filled_unload", 106);
3869
3870 Bind(wxEVT_PAINT, &DevExtruderImage::paintEvent, this);
3871}
ScalableBitmap * m_left_extruder_active_empty
Definition AMSItem.hpp:907
ScalableBitmap * m_right_extruder_unactive_filled
Definition AMSItem.hpp:912
ScalableBitmap * m_extruder_single_nozzle_empty_unload
Definition AMSItem.hpp:916
ScalableBitmap * m_left_extruder_active_filled
Definition AMSItem.hpp:906
ScalableBitmap * m_left_extruder_unactive_filled
Definition AMSItem.hpp:908
ScalableBitmap * m_extruder_single_nozzle_filled_load
Definition AMSItem.hpp:917
void paintEvent(wxPaintEvent &evt)
Definition AMSItem.hpp:955
ScalableBitmap * m_left_extruder_unactive_empty
Definition AMSItem.hpp:909
ScalableBitmap * m_right_extruder_active_filled
Definition AMSItem.hpp:910
ScalableBitmap * m_extruder_single_nozzle_filled_unload
Definition AMSItem.hpp:918
ScalableBitmap * m_right_extruder_active_empty
Definition AMSItem.hpp:911
ScalableBitmap * m_extruder_single_nozzle_empty_load
Definition AMSItem.hpp:915
ScalableBitmap * m_right_extruder_unactive_empty
Definition AMSItem.hpp:913
int m_extruder_num
Definition AMSItem.hpp:962

References m_extruder_num, m_extruder_single_nozzle_empty_load, m_extruder_single_nozzle_empty_unload, m_extruder_single_nozzle_filled_load, m_extruder_single_nozzle_filled_unload, m_left_extruder_active_empty, m_left_extruder_active_filled, m_left_extruder_unactive_empty, m_left_extruder_unactive_filled, m_right_extruder_active_empty, m_right_extruder_active_filled, m_right_extruder_unactive_empty, m_right_extruder_unactive_filled, and paintEvent().

Here is the call graph for this function:

◆ ~DevExtruderImage()

Slic3r::GUI::DevExtruderImage::~DevExtruderImage ( )
inline
930 {
931
932 }

Member Function Documentation

◆ doRender()

void Slic3r::GUI::DevExtruderImage::doRender ( wxDC & dc)
private
3914{
3915 auto size = GetSize();
3916 auto pot = wxPoint(size.x / 2, (size.y - m_left_extruder_active_filled->GetBmpSize().y) / 2);
3917
3918 if (m_extruder_num >= 2)
3919 {
3920 ScalableBitmap *left_extruder_bmp{nullptr};
3921 ScalableBitmap *right_extruder_bmp{nullptr};
3922
3923 switch (m_right_ext_state)
3924 {
3927 break;
3930 break;
3932 if (current_extruder_loc.empty())
3933 {
3934 right_extruder_bmp = m_right_extruder_active_empty;
3935 }
3936 else
3937 {
3939 }
3940 break;
3943 break;
3944 default: break;
3945 }
3946
3947 switch (m_left_ext_state)
3948 {
3951 break;
3954 break;
3956 if (current_extruder_loc.empty())
3957 {
3958 left_extruder_bmp = m_left_extruder_active_empty;
3959 }
3960 else
3961 {
3963 }
3964 break;
3967 break;
3968 default: break;
3969 }
3970
3971 if (left_extruder_bmp) { dc.DrawBitmap(left_extruder_bmp->bmp(), pot.x - left_extruder_bmp->GetBmpWidth(), pot.y); }
3972 if (right_extruder_bmp) { dc.DrawBitmap(right_extruder_bmp->bmp(), pot.x, pot.y); }
3973 }
3974 else
3975 {
3976 ScalableBitmap *extruder_bmp = nullptr;
3977 switch (m_single_ext_state)
3978 {
3981 break;
3984 break;
3987 break;
3990 break;
3991 default: break;
3992 }
3993
3994 if (extruder_bmp) { dc.DrawBitmap(extruder_bmp->bmp(), pot.x - extruder_bmp->GetBmpWidth() / 2, (size.y - extruder_bmp->GetBmpHeight()) / 2); }
3995 }
3996}
int GetBmpWidth() const
Definition wxExtensions.cpp:977
const wxBitmap & bmp() const
Definition wxExtensions.hpp:189
int GetBmpHeight() const
Definition wxExtensions.cpp:988
std::string current_extruder_loc
Definition AMSItem.hpp:963
DevExtruderState m_left_ext_state
Definition AMSItem.hpp:920
DevExtruderState m_right_ext_state
Definition AMSItem.hpp:921
DevExtruderState m_single_ext_state
Definition AMSItem.hpp:922
@ FILLED_LOAD
Definition AMSItem.hpp:898
@ EMPTY_UNLOAD
Definition AMSItem.hpp:901
@ FILLED_UNLOAD
Definition AMSItem.hpp:899
@ EMPTY_LOAD
Definition AMSItem.hpp:900

References ScalableBitmap::bmp(), current_extruder_loc, Slic3r::GUI::EMPTY_LOAD, Slic3r::GUI::EMPTY_UNLOAD, Slic3r::GUI::FILLED_LOAD, Slic3r::GUI::FILLED_UNLOAD, ScalableBitmap::GetBmpHeight(), ScalableBitmap::GetBmpWidth(), m_extruder_num, m_extruder_single_nozzle_empty_load, m_extruder_single_nozzle_empty_unload, m_extruder_single_nozzle_filled_load, m_extruder_single_nozzle_filled_unload, m_left_ext_state, m_left_extruder_active_empty, m_left_extruder_active_filled, m_left_extruder_unactive_empty, m_left_extruder_unactive_filled, m_right_ext_state, m_right_extruder_active_empty, m_right_extruder_active_filled, m_right_extruder_unactive_empty, m_right_extruder_unactive_filled, and m_single_ext_state.

Referenced by render().

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

◆ msw_rescale()

◆ paintEvent()

void Slic3r::GUI::DevExtruderImage::paintEvent ( wxPaintEvent & evt)
inlineprivate
956 {
957 wxPaintDC dc(this);
958 render(dc);
959 }
void render(wxDC &dc)
Definition AMSItem.cpp:3892

References render().

Referenced by DevExtruderImage().

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

◆ render()

void Slic3r::GUI::DevExtruderImage::render ( wxDC & dc)
private
3893{
3894#ifdef __WXMSW__
3895 wxSize size = GetSize();
3896 wxMemoryDC memdc;
3897 wxBitmap bmp(size.x, size.y);
3898 memdc.SelectObject(bmp);
3899 memdc.Blit({0, 0}, size, &dc, {0, 0});
3900
3901 {
3902 wxGCDC dc2(memdc);
3903 doRender(dc2);
3904 }
3905
3906 memdc.SelectObject(wxNullBitmap);
3907 dc.DrawBitmap(bmp, 0, 0);
3908#else
3909 doRender(dc);
3910#endif
3911}
void doRender(wxDC &dc)
Definition AMSItem.cpp:3913

References doRender().

Referenced by paintEvent().

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

◆ setExtruderCount()

void Slic3r::GUI::DevExtruderImage::setExtruderCount ( int extruder_num)
inline
945 {
946 m_extruder_num = extruder_num;
947 }

References m_extruder_num.

◆ setExtruderUsed()

void Slic3r::GUI::DevExtruderImage::setExtruderUsed ( const std::string & loc)
inline
949 {
950 if (current_extruder_loc == loc) { return; }
952 Refresh();
953 }

References current_extruder_loc.

◆ update() [1/2]

void Slic3r::GUI::DevExtruderImage::update ( DevExtruderState left_state,
DevExtruderState right_state )
inline
938 {
939 m_left_ext_state = left_state;
940 m_right_ext_state = right_state;
941 }

References m_left_ext_state, and m_right_ext_state.

◆ update() [2/2]

void Slic3r::GUI::DevExtruderImage::update ( DevExtruderState single_state)
inline
934 {
935 m_single_ext_state = single_state;
936 }

References m_single_ext_state.

Member Data Documentation

◆ current_extruder_loc

std::string Slic3r::GUI::DevExtruderImage::current_extruder_loc = ""
private

Referenced by doRender(), and setExtruderUsed().

◆ m_extruder_num

int Slic3r::GUI::DevExtruderImage::m_extruder_num = 1
private

◆ m_extruder_single_nozzle_empty_load

ScalableBitmap* Slic3r::GUI::DevExtruderImage::m_extruder_single_nozzle_empty_load
private

◆ m_extruder_single_nozzle_empty_unload

ScalableBitmap* Slic3r::GUI::DevExtruderImage::m_extruder_single_nozzle_empty_unload
private

◆ m_extruder_single_nozzle_filled_load

ScalableBitmap* Slic3r::GUI::DevExtruderImage::m_extruder_single_nozzle_filled_load
private

◆ m_extruder_single_nozzle_filled_unload

ScalableBitmap* Slic3r::GUI::DevExtruderImage::m_extruder_single_nozzle_filled_unload
private

◆ m_left_ext_state

DevExtruderState Slic3r::GUI::DevExtruderImage::m_left_ext_state = {DevExtruderState::EMPTY_LOAD}
private

◆ m_left_extruder_active_empty

ScalableBitmap* Slic3r::GUI::DevExtruderImage::m_left_extruder_active_empty
private

◆ m_left_extruder_active_filled

ScalableBitmap* Slic3r::GUI::DevExtruderImage::m_left_extruder_active_filled
private

◆ m_left_extruder_unactive_empty

ScalableBitmap* Slic3r::GUI::DevExtruderImage::m_left_extruder_unactive_empty
private

◆ m_left_extruder_unactive_filled

ScalableBitmap* Slic3r::GUI::DevExtruderImage::m_left_extruder_unactive_filled
private

◆ m_right_ext_state

DevExtruderState Slic3r::GUI::DevExtruderImage::m_right_ext_state = {DevExtruderState::EMPTY_LOAD}
private

◆ m_right_extruder_active_empty

ScalableBitmap* Slic3r::GUI::DevExtruderImage::m_right_extruder_active_empty
private

◆ m_right_extruder_active_filled

ScalableBitmap* Slic3r::GUI::DevExtruderImage::m_right_extruder_active_filled
private

◆ m_right_extruder_unactive_empty

ScalableBitmap* Slic3r::GUI::DevExtruderImage::m_right_extruder_unactive_empty
private

◆ m_right_extruder_unactive_filled

ScalableBitmap* Slic3r::GUI::DevExtruderImage::m_right_extruder_unactive_filled
private

◆ m_single_ext_state

DevExtruderState Slic3r::GUI::DevExtruderImage::m_single_ext_state = {DevExtruderState::EMPTY_LOAD}
private

The documentation for this class was generated from the following files:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/Widgets/AMSItem.hpp
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/Widgets/AMSItem.cpp