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));
|
return wxCoord(SLIDER_MARGIN + int(val*step + 0.5));
|
||||||
}
|
}
|
||||||
|
|
||||||
wxSize Control::get_size()
|
wxSize Control::get_size() const
|
||||||
{
|
{
|
||||||
int w, h;
|
int w, h;
|
||||||
get_size(&w, &h);
|
get_size(&w, &h);
|
||||||
return wxSize(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);
|
GetSize(w, h);
|
||||||
is_horizontal() ? *w -= m_lock_icon_dim : *h -= m_lock_icon_dim;
|
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);
|
dc.GetMultiLineTextExtent(label, &text_width, &text_height);
|
||||||
wxPoint text_pos;
|
wxPoint text_pos;
|
||||||
if (right_side)
|
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
|
else
|
||||||
text_pos = is_horizontal() ? wxPoint(pos.x - text_width - 1, pos.y - m_thumb_size.x / 2 - text_height - 1) :
|
text_pos = wxPoint(pos.x + m_thumb_size.x + 1, pos.y - 0.5 * text_height - 1);
|
||||||
wxPoint(pos.x - text_width - 1 - m_thumb_size.x, 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);
|
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 wxCoord x, const wxCoord y);
|
||||||
int get_value_from_position(const wxPoint pos) { return get_value_from_position(pos.x, pos.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);
|
wxCoord get_position_from_value(const int value);
|
||||||
wxSize get_size();
|
wxSize get_size() const;
|
||||||
void get_size(int *w, int *h);
|
void get_size(int* w, int* h) const;
|
||||||
double get_double_value(const SelectedSlider& selection);
|
double get_double_value(const SelectedSlider& selection);
|
||||||
wxString get_tooltip(int tick = -1);
|
wxString get_tooltip(int tick = -1);
|
||||||
int get_edited_tick_for_position(wxPoint pos, const std::string& gcode = ColorChangeCode);
|
int get_edited_tick_for_position(wxPoint pos, const std::string& gcode = ColorChangeCode);
|
||||||
|
Loading…
Reference in New Issue
Block a user