Added SetSliderValues and GetActiveValue functions
This commit is contained in:
parent
2a7059edb3
commit
2ec045a0fb
@ -1674,6 +1674,7 @@ sub print_info_box_show {
|
|||||||
$sizer->Show(1, $show);
|
$sizer->Show(1, $show);
|
||||||
|
|
||||||
$self->Layout;
|
$self->Layout;
|
||||||
|
Wx::GetTopLevelParent($self)->Refresh; # temporary workaround for DoubleSlider on right panel
|
||||||
$panel->Refresh;
|
$panel->Refresh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -811,6 +811,13 @@ PrusaDoubleSlider::PrusaDoubleSlider( wxWindow *parent,
|
|||||||
segm_pens = { &DARK_ORANGE_PEN, &ORANGE_PEN, &LIGHT_ORANGE_PEN };
|
segm_pens = { &DARK_ORANGE_PEN, &ORANGE_PEN, &LIGHT_ORANGE_PEN };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int PrusaDoubleSlider::GetActiveValue() const
|
||||||
|
{
|
||||||
|
return m_selection == ssLower ?
|
||||||
|
m_lower_value : m_selection == ssHigher ?
|
||||||
|
m_higher_value : -1;
|
||||||
|
}
|
||||||
|
|
||||||
wxSize PrusaDoubleSlider::DoGetBestSize() const
|
wxSize PrusaDoubleSlider::DoGetBestSize() const
|
||||||
{
|
{
|
||||||
const wxSize size = wxControl::DoGetBestSize();
|
const wxSize size = wxControl::DoGetBestSize();
|
||||||
@ -834,6 +841,13 @@ void PrusaDoubleSlider::SetHigherValue(const int higher_val)
|
|||||||
Update();
|
Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PrusaDoubleSlider::SetMaxValue(int max_value)
|
||||||
|
{
|
||||||
|
m_max_value = max_value;
|
||||||
|
Refresh();
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
void PrusaDoubleSlider::draw_scroll_line(wxDC& dc, const int lower_pos, const int higher_pos)
|
void PrusaDoubleSlider::draw_scroll_line(wxDC& dc, const int lower_pos, const int higher_pos)
|
||||||
{
|
{
|
||||||
int width;
|
int width;
|
||||||
@ -967,10 +981,12 @@ wxString PrusaDoubleSlider::get_label(const SelectedSlider& selection) const
|
|||||||
{
|
{
|
||||||
const int value = selection == ssLower ? m_lower_value : m_higher_value;
|
const int value = selection == ssLower ? m_lower_value : m_higher_value;
|
||||||
|
|
||||||
if (m_label_koef == 1.0)
|
if (m_label_koef == 1.0 && m_values.empty())
|
||||||
return wxString::Format("%d", value);
|
return wxString::Format("%d", value);
|
||||||
|
|
||||||
const wxString str = wxNumberFormatter::ToString(m_label_koef*value, 2, wxNumberFormatter::Style_None);
|
const wxString str = m_values.empty() ?
|
||||||
|
wxNumberFormatter::ToString(m_label_koef*value, 2, wxNumberFormatter::Style_None) :
|
||||||
|
wxNumberFormatter::ToString(m_values[value], 2, wxNumberFormatter::Style_None);
|
||||||
return wxString::Format("%s\n(%d)", str, value);
|
return wxString::Format("%s\n(%d)", str, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -521,16 +521,23 @@ public:
|
|||||||
const wxValidator& val = wxDefaultValidator,
|
const wxValidator& val = wxDefaultValidator,
|
||||||
const wxString& name = wxEmptyString);
|
const wxString& name = wxEmptyString);
|
||||||
|
|
||||||
int GetLowerValue() {
|
int GetLowerValue() const {
|
||||||
return m_lower_value;
|
return m_lower_value;
|
||||||
}
|
}
|
||||||
int GetHigherValue() {
|
int GetHigherValue() const {
|
||||||
return m_higher_value;
|
return m_higher_value;
|
||||||
}
|
}
|
||||||
|
int GetActiveValue() const;
|
||||||
wxSize DoGetBestSize() const override;
|
wxSize DoGetBestSize() const override;
|
||||||
void SetLowerValue(int lower_val);
|
void SetLowerValue(int lower_val);
|
||||||
void SetHigherValue(int higher_val);
|
void SetHigherValue(int higher_val);
|
||||||
void SetKoefForLabels(const double koef){ m_label_koef = koef;}
|
void SetMaxValue(int max_value);
|
||||||
|
void SetKoefForLabels(const double koef) {
|
||||||
|
m_label_koef = koef;
|
||||||
|
}
|
||||||
|
void SetSliderValues(const std::vector<double>& values) {
|
||||||
|
m_values = values;
|
||||||
|
}
|
||||||
|
|
||||||
void OnPaint(wxPaintEvent& ){ render();}
|
void OnPaint(wxPaintEvent& ){ render();}
|
||||||
void OnLeftDown(wxMouseEvent& event);
|
void OnLeftDown(wxMouseEvent& event);
|
||||||
@ -545,8 +552,8 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
|
|
||||||
void render();
|
void render();
|
||||||
void draw_action_icon(wxDC& dc, const wxPoint pt_beg, const wxPoint pt_end);
|
|
||||||
void draw_focus_rect();
|
void draw_focus_rect();
|
||||||
|
void draw_action_icon(wxDC& dc, const wxPoint pt_beg, const wxPoint pt_end);
|
||||||
void draw_scroll_line(wxDC& dc, const int lower_pos, const int higher_pos);
|
void draw_scroll_line(wxDC& dc, const int lower_pos, const int higher_pos);
|
||||||
void draw_thumb(wxDC& dc, const wxCoord& pos_coord, const SelectedSlider& selection);
|
void draw_thumb(wxDC& dc, const wxCoord& pos_coord, const SelectedSlider& selection);
|
||||||
void draw_ticks(wxDC& dc);
|
void draw_ticks(wxDC& dc);
|
||||||
@ -608,6 +615,7 @@ private:
|
|||||||
std::vector<wxPen*> line_pens;
|
std::vector<wxPen*> line_pens;
|
||||||
std::vector<wxPen*> segm_pens;
|
std::vector<wxPen*> segm_pens;
|
||||||
std::set<int> m_ticks;
|
std::set<int> m_ticks;
|
||||||
|
std::vector<double> m_values;
|
||||||
};
|
};
|
||||||
// ******************************************************************************************
|
// ******************************************************************************************
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user