OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
AnimaIcon Class Reference

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

Inheritance diagram for AnimaIcon:
Collaboration diagram for AnimaIcon:

Public Member Functions

 AnimaIcon (wxWindow *parent, wxWindowID id, std::vector< std::string > img_list, std::string img_enable, int ivt=1000)
 ~AnimaIcon ()
void Play ()
void Stop ()
void ShowEnabledIcon ()
bool IsPlaying () const
bool IsRunning () const

Private Attributes

wxBitmap m_image_enable
wxStaticBitmap * m_bitmap {nullptr}
std::vector< wxBitmap > m_images
wxTimer * m_timer
int m_current_frame = 0
int m_ivt
int m_size

Detailed Description

Constructor & Destructor Documentation

◆ AnimaIcon()

AnimaIcon::AnimaIcon ( wxWindow * parent,
wxWindowID id,
std::vector< std::string > img_list,
std::string img_enable,
int ivt = 1000 )
20 : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize), m_ivt(ivt)
21{
22 auto sizer = new wxBoxSizer(wxHORIZONTAL);
23 SetBackgroundColour((wxColour(255, 255, 255)));
24 m_size = 25;
25
26 //add ScalableBitmap
27 for (const auto &filename : img_list) m_images.emplace_back(create_scaled_bitmap(filename, this, m_size));
28 m_image_enable = create_scaled_bitmap(img_enable, this, m_size-8);
29
30 // show first wxStaticBitmap
31 if (!m_images.empty()) m_bitmap = new wxStaticBitmap(this, wxID_ANY, m_images[0], wxDefaultPosition, wxSize(FromDIP(m_size), FromDIP(m_size)));
32
33
34 m_timer = new wxTimer();
35 m_timer->SetOwner(this);
36
37 Bind(wxEVT_TIMER, [this](wxTimerEvent &) {
38 if (m_timer->IsRunning() && !m_images.empty()) {
41 }
42 });
43
44 m_bitmap->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) {
45 wxMouseEvent evt(wxEVT_LEFT_DOWN);
46 evt.SetEventObject(this);
47 wxPostEvent(this, evt);
48 });
49
50 m_bitmap->Bind(wxEVT_ENTER_WINDOW, [this](auto &e) {
51 if (!m_timer->IsRunning())
52 SetCursor(wxCursor(wxCURSOR_HAND));
53 else
54 SetCursor(wxCursor(wxCURSOR_ARROW));
55 e.Skip();
56 });
57 m_bitmap->Bind(wxEVT_LEAVE_WINDOW, [this](auto &e) {
58 SetCursor(wxCursor(wxCURSOR_ARROW));
59 e.Skip();
60 });
61 sizer->Add(m_bitmap, 0, wxALIGN_CENTER, 0);
62 SetSizer(sizer);
63 SetSize(wxSize(FromDIP(m_size), FromDIP(m_size)));
64 SetMaxSize(wxSize(FromDIP(m_size), FromDIP(m_size)));
65 SetMinSize(wxSize(FromDIP(m_size), FromDIP(m_size)));
66 Layout();
67 Fit();
68}
int m_current_frame
Definition AnimaController.hpp:31
int m_size
Definition AnimaController.hpp:33
int m_ivt
Definition AnimaController.hpp:32
wxBitmap m_image_enable
Definition AnimaController.hpp:27
std::vector< wxBitmap > m_images
Definition AnimaController.hpp:29
wxTimer * m_timer
Definition AnimaController.hpp:30
wxStaticBitmap * m_bitmap
Definition AnimaController.hpp:28
wxMouseEvent
Definition CameraPopup.cpp:47
wxBitmap create_scaled_bitmap(const std::string &bmp_name_in, wxWindow *win, const int px_cnt, const bool grayscale, const std::string &new_color, const bool menu_bitmap, const bool resize, const bool bitmap2, const std::vector< std::string > &array_new_color)
Definition wxExtensions.cpp:448

References create_scaled_bitmap(), m_bitmap, m_current_frame, m_image_enable, m_images, m_ivt, m_size, and m_timer.

Here is the call graph for this function:

◆ ~AnimaIcon()

AnimaIcon::~AnimaIcon ( )
71{
72 if (m_timer) {
73 m_timer->Stop();
74 delete m_timer;
75 m_timer = nullptr;
76 }
77}

References m_timer.

Member Function Documentation

◆ IsPlaying()

bool AnimaIcon::IsPlaying ( ) const
inline
23{ return IsRunning(); };
bool IsRunning() const
Definition AnimaController.cpp:96

References IsRunning().

Here is the call graph for this function:

◆ IsRunning()

bool AnimaIcon::IsRunning ( ) const
97{
98 return m_timer ? m_timer->IsRunning() : false;
99}

References m_timer.

Referenced by IsPlaying().

Here is the caller graph for this function:

◆ Play()

void AnimaIcon::Play ( )
80{
81 if (true)
82 m_timer->Start(m_ivt);
83
84}

References m_ivt, and m_timer.

◆ ShowEnabledIcon()

void AnimaIcon::ShowEnabledIcon ( )
92{
93 if (m_bitmap) { m_bitmap->SetBitmap(m_image_enable); }
94}

References m_bitmap, and m_image_enable.

◆ Stop()

void AnimaIcon::Stop ( )
87{
88 m_timer->Stop();
89}

References m_timer.

Member Data Documentation

◆ m_bitmap

wxStaticBitmap* AnimaIcon::m_bitmap {nullptr}
private
28{nullptr};

Referenced by AnimaIcon(), and ShowEnabledIcon().

◆ m_current_frame

int AnimaIcon::m_current_frame = 0
private

Referenced by AnimaIcon().

◆ m_image_enable

wxBitmap AnimaIcon::m_image_enable
private

Referenced by AnimaIcon(), and ShowEnabledIcon().

◆ m_images

std::vector<wxBitmap> AnimaIcon::m_images
private

Referenced by AnimaIcon().

◆ m_ivt

int AnimaIcon::m_ivt
private

Referenced by AnimaIcon(), and Play().

◆ m_size

int AnimaIcon::m_size
private

Referenced by AnimaIcon().

◆ m_timer

wxTimer* AnimaIcon::m_timer
private

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