Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
ModeSizer Class Reference

#include <src/slic3r/GUI/wxExtensions.hpp>

+ Inheritance diagram for ModeSizer:
+ Collaboration diagram for ModeSizer:

Public Member Functions

 ModeSizer (wxWindow *parent, int hgap=0)
 
 ~ModeSizer ()
 
void SetMode (const int mode)
 
void set_items_flag (int flag)
 
void set_items_border (int border)
 
void sys_color_changed ()
 
void update_mode_markers ()
 
const std::vector< ModeButton * > & get_btns ()
 

Private Attributes

std::vector< ModeButton * > m_mode_btns
 
double m_hgap_unscaled
 

Detailed Description

Constructor & Destructor Documentation

◆ ModeSizer()

ModeSizer::ModeSizer ( wxWindow *  parent,
int  hgap = 0 
)
699 :
700 wxFlexGridSizer(3, 0, hgap),
701 m_hgap_unscaled((double)(hgap)/em_unit(parent))
702{
703 SetFlexibleDirection(wxHORIZONTAL);
704
705 auto modebtnfn = [this](wxCommandEvent &event, int mode_id) {
706 if (Slic3r::GUI::wxGetApp().save_mode(mode_id))
707 event.Skip();
708 else
709 SetMode(Slic3r::GUI::wxGetApp().get_mode());
710 };
711
712 m_mode_btns.reserve(3);
713 int mode_id = 0;
714 for (const wxString& label : {_L("Simple"), _CTX(L_CONTEXT("Advanced", "Mode"), "Mode"),_L("Expert")}) {
715 m_mode_btns.push_back(new ModeButton(parent, mode_id++, label, mode_icon_px_size()));
716
717 m_mode_btns.back()->Bind(wxEVT_BUTTON, std::bind(modebtnfn, std::placeholders::_1, int(m_mode_btns.size() - 1)));
718 Add(m_mode_btns.back());
719 }
720}
Definition wxExtensions.hpp:265
std::vector< ModeButton * > m_mode_btns
Definition wxExtensions.hpp:334
void SetMode(const int mode)
Definition wxExtensions.cpp:722
double m_hgap_unscaled
Definition wxExtensions.hpp:335
#define L_CONTEXT(s, context)
Definition I18N.hpp:22
#define _CTX(s, ctx)
Definition I18N.hpp:8
#define _L(s)
Definition I18N.hpp:3
int em_unit(wxWindow *win)
Definition wxExtensions.cpp:388
int mode_icon_px_size()
Definition wxExtensions.cpp:404
#define wxEVT_BUTTON
Definition wxinit.h:18

References _CTX, _L, L_CONTEXT, m_mode_btns, mode_icon_px_size(), SetMode(), and wxEVT_BUTTON.

+ Here is the call graph for this function:

◆ ~ModeSizer()

ModeSizer::~ModeSizer ( )
inline
322{}

Member Function Documentation

◆ get_btns()

const std::vector< ModeButton * > & ModeSizer::get_btns ( )
inline
331{ return m_mode_btns; }

References m_mode_btns.

◆ set_items_border()

void ModeSizer::set_items_border ( int  border)
735{
736 for (wxSizerItem* item : this->GetChildren())
737 item->SetBorder(border);
738}

◆ set_items_flag()

void ModeSizer::set_items_flag ( int  flag)
729{
730 for (wxSizerItem* item : this->GetChildren())
731 item->SetFlag(flag);
732}

◆ SetMode()

void ModeSizer::SetMode ( const int  mode)
723{
724 for (size_t m = 0; m < m_mode_btns.size(); m++)
725 m_mode_btns[m]->SetState(int(m) == mode);
726}

References m_mode_btns.

Referenced by ModeSizer().

+ Here is the caller graph for this function:

◆ sys_color_changed()

void ModeSizer::sys_color_changed ( )
741{
742 for (ModeButton* btn : m_mode_btns)
743 btn->sys_color_changed();
744}
void sys_color_changed()
Definition wxExtensions.cpp:740

References m_mode_btns.

◆ update_mode_markers()

void ModeSizer::update_mode_markers ( )
747{
748 for (ModeButton* btn : m_mode_btns)
749 btn->update_bitmap();
750}

References m_mode_btns.

Member Data Documentation

◆ m_hgap_unscaled

double ModeSizer::m_hgap_unscaled
private

◆ m_mode_btns

std::vector<ModeButton*> ModeSizer::m_mode_btns
private

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