diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-05-14 22:54:17 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-05-14 23:08:44 +0100 |
| commit | 86883ceb9298ccd7f082d77e01a39e360ce26953 (patch) | |
| tree | 962d423e7d516bd921c5f3a05fa0cc343ffb8800 | |
| parent | a9ce4f64658979bc15c301b53c76846072fda0ef (diff) | |
Truncate audio mapping view channel group names (part of #1557).
Backported from faa42e385ec2e36e75347ba5da1e4e0f69b6d6f3 in v2.15.x.
| -rw-r--r-- | src/wx/audio_mapping_view.cc | 55 |
1 files changed, 30 insertions, 25 deletions
diff --git a/src/wx/audio_mapping_view.cc b/src/wx/audio_mapping_view.cc index 959975a00..9d776b63d 100644 --- a/src/wx/audio_mapping_view.cc +++ b/src/wx/audio_mapping_view.cc @@ -207,6 +207,30 @@ AudioMappingView::paint_column_lines (wxGraphicsContext* gc) gc->StrokePath (lines); } +static +void clip (wxDC& dc, wxGraphicsContext* gc, int x, int y, int w, int h) +{ + dc.SetClippingRegion (x, y, w, h); + gc->Clip (x, y, w, h); +} + +static +void translate (wxDC& dc, wxGraphicsContext* gc, int x, int y) +{ + gc->PushState (); + gc->Translate (-x, -y); + dc.SetLogicalOrigin (x, y); +} + +static +void restore (wxDC& dc, wxGraphicsContext* gc) +{ + dc.SetLogicalOrigin (0, 0); + gc->PopState (); + dc.DestroyClippingRegion (); + gc->ResetClip (); +} + void AudioMappingView::paint_row_labels (wxDC& dc, wxGraphicsContext* gc) { @@ -234,14 +258,19 @@ AudioMappingView::paint_row_labels (wxDC& dc, wxGraphicsContext* gc) int y = TOP_HEIGHT; BOOST_FOREACH (Group i, _input_groups) { - dc.GetTextExtent (std_to_wx(i.name), &label_width, &label_height); int const height = (i.to - i.from + 1) * GRID_SPACING; + dc.GetTextExtent (std_to_wx(i.name), &label_width, &label_height); + if (label_width > height) { + label_width = height - 8; + } + clip (dc, gc, GRID_SPACING, y + 4, GRID_SPACING, height - 4); dc.DrawRotatedText ( std_to_wx(i.name), GRID_SPACING + (GRID_SPACING - label_height) / 2, y + (height + label_width) / 2, 90 ); + restore (dc, gc); lines.MoveToPoint (GRID_SPACING, y); lines.AddLineToPoint (GRID_SPACING * 2, y); y += height; @@ -303,30 +332,6 @@ AudioMappingView::paint_indicators (wxDC& dc) } } -static -void clip (wxDC& dc, wxGraphicsContext* gc, int x, int y, int w, int h) -{ - dc.SetClippingRegion (x, y, w, h); - gc->Clip (x, y, w, h); -} - -static -void translate (wxDC& dc, wxGraphicsContext* gc, int x, int y) -{ - gc->PushState (); - gc->Translate (-x, -y); - dc.SetLogicalOrigin (x, y); -} - -static -void restore (wxDC& dc, wxGraphicsContext* gc) -{ - dc.SetLogicalOrigin (0, 0); - gc->PopState (); - dc.DestroyClippingRegion (); - gc->ResetClip (); -} - void AudioMappingView::paint () { |
