Audacity 3.2.0
Functions
WaveChannelVRulerControls Namespace Reference

Functions

AUDACITY_DLL_API RulerScratchRuler ()
 
AUDACITY_DLL_API void DoDraw (ChannelVRulerControls &controls, TrackPanelDrawingContext &context, const wxRect &rect, unsigned iPass)
 

Function Documentation

◆ DoDraw()

void WaveChannelVRulerControls::DoDraw ( ChannelVRulerControls controls,
TrackPanelDrawingContext context,
const wxRect &  rect,
unsigned  iPass 
)

Definition at line 35 of file WaveChannelVRulerControls.cpp.

38{
39 Ruler &vruler = ScratchRuler();
40
41 // Draw on a later pass because the bevel overpaints one pixel
42 // out of bounds on the bottom
43
44 if ( iPass == TrackArtist::PassControls ) {
45 auto rect = rect_;
46 --rect.width;
47 --rect.height;
48
49 auto dc = &context.dc;
50
51 // Right align the ruler
52 wxRect rr = rect;
53 rr.width--;
54
55// Next code tests for a VRuler that is narrower than the rectangle
56// we are drawing into. If so, it 'right aligns' the ruler into the
57// rectangle.
58// However, it seems this occurs only because vrulerSize is not up to
59// date. That in turn caused Bug 2248, which was the labels being
60// drawn further right than they should be (in MultiView mode).
61// #ifdeffing out this code fixes bug 2248
62#if 0
63 if ( t->vrulerSize.GetWidth() < rect.GetWidth()) {
64 int adj = rr.GetWidth() - t->vrulerSize.GetWidth();
65 rr.x += adj;
66 rr.width -= adj;
67 }
68#endif
69
70 controls.UpdateRuler(rr);
71
72 vruler.SetTickColour( theTheme.Colour( clrTrackPanelText ));
73 vruler.Draw(*dc);
74 }
75}
THEME_API Theme theTheme
Definition: Theme.cpp:82
virtual void UpdateRuler(const wxRect &rect)=0
Used to display a Ruler.
Definition: Ruler.h:34
void SetTickColour(const wxColour &colour)
Definition: Ruler.h:135
void Draw(wxDC &dc) const
Definition: Ruler.cpp:441
wxColour & Colour(int iIndex)
AUDACITY_DLL_API Ruler & ScratchRuler()

References ThemeBase::Colour(), TrackPanelDrawingContext::dc, Ruler::Draw(), TrackArtist::PassControls, ScratchRuler(), Ruler::SetTickColour(), theTheme, and ChannelVRulerControls::UpdateRuler().

Referenced by SpectrumVRulerControls::Draw(), and WaveformVRulerControls::Draw().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ScratchRuler()

Ruler & WaveChannelVRulerControls::ScratchRuler ( )

Definition at line 28 of file WaveChannelVRulerControls.cpp.

29{
30 static Ruler theRuler{
32 return theRuler;
33}
static const LinearUpdater & Instance()
static const RealFormat & LinearInstance()
Definition: RealFormat.cpp:14

References LinearUpdater::Instance(), and RealFormat::LinearInstance().

Referenced by DoDraw(), SpectrumVRulerControls::DoUpdateVRuler(), and WaveformVRulerControls::DoUpdateVRuler().

Here is the call graph for this function:
Here is the caller graph for this function: