DoubleSlider::Control -> Change text position at the edges of horizontal slider
This commit is contained in:
parent
908650630b
commit
94a4689b00
@ -272,14 +272,14 @@ wxCoord Control::get_position_from_value(const int value)
|
||||
return wxCoord(SLIDER_MARGIN + int(val*step + 0.5));
|
||||
}
|
||||
|
||||
wxSize Control::get_size()
|
||||
wxSize Control::get_size() const
|
||||
{
|
||||
int w, h;
|
||||
get_size(&w, &h);
|
||||
return wxSize(w, h);
|
||||
}
|
||||
|
||||
void Control::get_size(int *w, int *h)
|
||||
void Control::get_size(int* w, int* h) const
|
||||
{
|
||||
GetSize(w, h);
|
||||
is_horizontal() ? *w -= m_lock_icon_dim : *h -= m_lock_icon_dim;
|
||||
@ -574,11 +574,32 @@ void Control::draw_tick_text(wxDC& dc, const wxPoint& pos, int tick, bool right_
|
||||
dc.GetMultiLineTextExtent(label, &text_width, &text_height);
|
||||
wxPoint text_pos;
|
||||
if (right_side)
|
||||
text_pos = is_horizontal() ? wxPoint(pos.x + 1, pos.y + m_thumb_size.x / 2 + 1) :
|
||||
wxPoint(pos.x + m_thumb_size.x + 1, pos.y - 0.5 * text_height - 1);
|
||||
{
|
||||
if (is_horizontal())
|
||||
{
|
||||
int width;
|
||||
int height;
|
||||
get_size(&width, &height);
|
||||
|
||||
int x_right = pos.x + 1 + text_width;
|
||||
int xx = (x_right < width) ? pos.x + 1 : pos.x - text_width - 1;
|
||||
text_pos = wxPoint(xx, pos.y + m_thumb_size.x / 2 + 1);
|
||||
}
|
||||
else
|
||||
text_pos = is_horizontal() ? wxPoint(pos.x - text_width - 1, pos.y - m_thumb_size.x / 2 - text_height - 1) :
|
||||
wxPoint(pos.x - text_width - 1 - m_thumb_size.x, pos.y - 0.5 * text_height + 1);
|
||||
text_pos = wxPoint(pos.x + m_thumb_size.x + 1, pos.y - 0.5 * text_height - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (is_horizontal())
|
||||
{
|
||||
int x = pos.x - text_width - 1;
|
||||
int xx = (x > 0) ? x : pos.x + 1;
|
||||
text_pos = wxPoint(xx, pos.y - m_thumb_size.x / 2 - text_height - 1);
|
||||
}
|
||||
else
|
||||
text_pos = wxPoint(pos.x - text_width - 1 - m_thumb_size.x, pos.y - 0.5 * text_height + 1);
|
||||
}
|
||||
|
||||
dc.DrawText(label, text_pos);
|
||||
}
|
||||
|
||||
|
@ -301,8 +301,8 @@ private:
|
||||
int get_value_from_position(const wxCoord x, const wxCoord y);
|
||||
int get_value_from_position(const wxPoint pos) { return get_value_from_position(pos.x, pos.y); }
|
||||
wxCoord get_position_from_value(const int value);
|
||||
wxSize get_size();
|
||||
void get_size(int *w, int *h);
|
||||
wxSize get_size() const;
|
||||
void get_size(int* w, int* h) const;
|
||||
double get_double_value(const SelectedSlider& selection);
|
||||
wxString get_tooltip(int tick = -1);
|
||||
int get_edited_tick_for_position(wxPoint pos, const std::string& gcode = ColorChangeCode);
|
||||
|
Loading…
Reference in New Issue
Block a user