Audacity 3.2.0
Public Types | Static Public Member Functions | Static Public Attributes | Static Private Attributes | List of all members
AColor Class Reference

AColor Manages color brushes and pens. More...

#include <AColor.h>

Public Types

enum  ColorGradientChoice {
  ColorGradientUnselected = 0 , ColorGradientTimeSelected , ColorGradientTimeAndFrequencySelected , ColorGradientEdge ,
  ColorGradientTotal
}
 

Static Public Member Functions

static void Init ()
 
static void ReInit ()
 
static void Arrow (wxDC &dc, wxCoord x, wxCoord y, int width, bool down=true)
 
static void Line (wxDC &dc, wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
 
static void Lines (wxDC &dc, size_t nPoints, const wxPoint points[])
 
static void DrawFocus (wxDC &dc, wxRect &r)
 
static void Bevel (wxDC &dc, bool up, const wxRect &r)
 
static void Bevel2 (wxDC &dc, bool up, const wxRect &r, bool bSel=false, bool bHighlight=false)
 
static void DrawHStretch (wxDC &dc, const wxRect &rect, wxBitmap &bitmap)
 
static void DrawFrame (wxDC &dc, const wxRect &r, wxBitmap &bitmap)
 
static void ButtonStretch (wxDC &dc, bool up, const wxRect &r, bool selected=false, bool highlight=false)
 Draw a button that fills a given rect. More...
 
static void BevelTrackInfo (wxDC &dc, bool up, const wxRect &r, bool highlight=false)
 
static wxColour Blend (const wxColour &c1, const wxColour &c2)
 
static void UseThemeColour (wxDC *dc, int iBrush, int iPen=-1, int alpha=255)
 
static void UseThemeColour (wxGraphicsContext *gc, int iBrush, int iPen=-1, int alpha=255)
 
static void TrackPanelBackground (wxDC *dc, bool selected)
 
static void Light (wxDC *dc, bool selected, bool highlight=false)
 
static void Medium (wxDC *dc, bool selected)
 
static void MediumTrackInfo (wxDC *dc, bool selected)
 
static void Dark (wxDC *dc, bool selected, bool highlight=false)
 
static void CursorColor (wxDC *dc)
 
static void IndicatorColor (wxDC *dc, bool bIsNotRecording)
 
static void Mute (wxDC *dc, bool on, bool selected, bool soloing)
 
static void Solo (wxDC *dc, bool on, bool selected)
 
static void MIDIChannel (wxDC *dc, int channel)
 
static void LightMIDIChannel (wxDC *dc, int channel)
 
static void DarkMIDIChannel (wxDC *dc, int channel)
 
static void TrackFocusPen (wxDC *dc, int level)
 
static void SnapGuidePen (wxDC *dc)
 
static void PreComputeGradient ()
 
static void ApplyUpdatedImages ()
 

Static Public Attributes

static wxBrush lightBrush [2]
 
static wxBrush mediumBrush [2]
 
static wxBrush darkBrush [2]
 
static wxPen lightPen [2]
 
static wxPen mediumPen [2]
 
static wxPen darkPen [2]
 
static wxPen cursorPen
 
static wxPen indicatorPen [2]
 
static wxBrush indicatorBrush [2]
 
static wxBrush playRegionBrush [1]
 
static wxBrush muteBrush [2]
 
static wxBrush soloBrush
 
static wxPen clippingPen
 
static wxPen envelopePen
 
static wxPen WideEnvelopePen
 
static wxBrush envelopeBrush
 
static wxBrush labelTextNormalBrush
 
static wxBrush labelTextEditBrush
 
static wxBrush labelUnselectedBrush
 
static wxBrush labelSelectedBrush
 
static wxBrush labelSyncLockSelBrush
 
static wxPen labelUnselectedPen
 
static wxPen labelSelectedPen
 
static wxPen labelSyncLockSelPen
 
static wxPen labelSurroundPen
 
static wxPen trackFocusPens [3]
 
static wxPen snapGuidePen
 
static wxPen tooltipPen
 
static wxBrush tooltipBrush
 
static bool gradient_inited = 0
 
static const int colorSchemes = 4
 
static const int gradientSteps = 256
 
static unsigned char gradient_pre [ColorGradientTotal][colorSchemes][gradientSteps][3]
 
static wxPen uglyPen
 
static wxBrush uglyBrush
 

Static Private Attributes

static wxPen sparePen
 
static wxBrush spareBrush
 
static bool inited = false
 

Detailed Description

AColor Manages color brushes and pens.

It is also a place to document colour usage policy in Audacity

Definition at line 25 of file AColor.h.

Member Enumeration Documentation

◆ ColorGradientChoice

Enumerator
ColorGradientUnselected 
ColorGradientTimeSelected 
ColorGradientTimeAndFrequencySelected 
ColorGradientEdge 
ColorGradientTotal 

Definition at line 28 of file AColor.h.

28 {
33
34 ColorGradientTotal // keep me last
35 };
@ ColorGradientTotal
Definition: AColor.h:34
@ ColorGradientUnselected
Definition: AColor.h:29
@ ColorGradientTimeAndFrequencySelected
Definition: AColor.h:31
@ ColorGradientEdge
Definition: AColor.h:32
@ ColorGradientTimeSelected
Definition: AColor.h:30

Member Function Documentation

◆ ApplyUpdatedImages()

void AColor::ApplyUpdatedImages ( )
static

Definition at line 872 of file AColor.cpp.

873{
874 ReInit();
875 theTheme.Publish({});
876}
THEME_API Theme theTheme
Definition: Theme.cpp:82
static void ReInit()
Definition: AColor.cpp:527
CallbackReturn Publish(const Message &message)
Send a message to connected callbacks.
Definition: Observer.h:207

References Observer::Publisher< Message, NotifyAll >::Publish(), ReInit(), and theTheme.

Referenced by ThemePrefs::Cancel(), GUIPrefs::Commit(), ThemePrefs::Commit(), ThemePrefs::OnLoadThemeCache(), ThemePrefs::OnLoadThemeComponents(), and ThemePrefs::OnReadThemeInternal().

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

◆ Arrow()

void AColor::Arrow ( wxDC &  dc,
wxCoord  x,
wxCoord  y,
int  width,
bool  down = true 
)
static

Definition at line 160 of file AColor.cpp.

161{
162 if (width & 0x01) {
163 width--;
164 }
165
166 wxPoint pt[3];
167 int half = width / 2;
168
169 if (down) {
170 pt[0].x = 0; pt[0].y = 0;
171 pt[1].x = width; pt[1].y = 0;
172 pt[2].x = half; pt[2].y = half;
173 }
174 else {
175 pt[0].x = 0; pt[0].y = half;
176 pt[1].x = half; pt[1].y = 0;
177 pt[2].x = width; pt[2].y = half;
178 }
179
180 dc.DrawPolygon(3, pt, x, y);
181}

Referenced by TrackInfo::CloseTitleDrawFunction(), NumericTextCtrl::Layout(), and TrackInfo::MinimizeSyncLockDrawFunction().

Here is the caller graph for this function:

◆ Bevel()

void AColor::Bevel ( wxDC &  dc,
bool  up,
const wxRect &  r 
)
static

Definition at line 266 of file AColor.cpp.

267{
268 if (up)
269 AColor::Light(&dc, false);
270 else
271 AColor::Dark(&dc, false);
272
273 AColor::Line(dc, r.x, r.y, r.x + r.width, r.y);
274 AColor::Line(dc, r.x, r.y, r.x, r.y + r.height);
275
276 if (!up)
277 AColor::Light(&dc, false);
278 else
279 AColor::Dark(&dc, false);
280
281 AColor::Line(dc, r.x + r.width, r.y, r.x + r.width, r.y + r.height);
282 AColor::Line(dc, r.x, r.y + r.height, r.x + r.width, r.y + r.height);
283}
static void Line(wxDC &dc, wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
Definition: AColor.cpp:187
static void Light(wxDC *dc, bool selected, bool highlight=false)
Definition: AColor.cpp:413
static void Dark(wxDC *dc, bool selected, bool highlight=false)
Definition: AColor.cpp:443

References Dark(), Light(), and Line().

Referenced by BevelTrackInfo(), Grabber::DrawGrabber(), NumericTextCtrl::Layout(), MixerBoard::LoadMusicalInstruments(), MixerTrackCluster::OnPaint(), MeterPanel::OnPaint(), cloud::ShareAudioToolbar::Repaint(), AudioSetupToolBar::Repaint(), and ControlToolBar::Repaint().

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

◆ Bevel2()

void AColor::Bevel2 ( wxDC &  dc,
bool  up,
const wxRect &  r,
bool  bSel = false,
bool  bHighlight = false 
)
static

Definition at line 294 of file AColor.cpp.

295{
296 auto& Bmp = theTheme.Bitmap( GetButtonImageIndex(up, bSel, bHighlight) );
297 wxMemoryDC memDC;
298 memDC.SelectObject(Bmp);
299
300 int h = std::min(r.height, Bmp.GetHeight());
301
302 dc.Blit( r.x,r.y,r.width/2, h, &memDC, 0, 0, wxCOPY, true );
303 int r2 = r.width - r.width/2;
304 dc.Blit( r.x+r.width/2,r.y,r2, h, &memDC,
305 Bmp.GetWidth() - r2, 0, wxCOPY, true );
306}
int min(int a, int b)
wxBitmap & Bitmap(int iIndex)
int GetButtonImageIndex(bool up, bool selected, bool highlight)
Definition: AColor.cpp:138

References ThemeBase::Bitmap(), anonymous_namespace{AColor.cpp}::GetButtonImageIndex(), min(), and theTheme.

Referenced by TrackInfo::CloseTitleDrawFunction(), TrackInfo::DrawCloseButton(), MixerBoard::MakeButtonBitmap(), TrackInfo::MinimizeSyncLockDrawFunction(), and anonymous_namespace{PlayableTrackControls.cpp}::MuteOrSoloDrawFunction().

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

◆ BevelTrackInfo()

void AColor::BevelTrackInfo ( wxDC &  dc,
bool  up,
const wxRect &  r,
bool  highlight = false 
)
static

Definition at line 340 of file AColor.cpp.

341{
342#ifndef EXPERIMENTAL_THEMING
343 Bevel( dc, up, r );
344#else
345 // Note that the actually drawn rectangle extends one pixel right of and
346 // below the given
347
348 wxColour col;
349 col = Blend( theTheme.Colour( clrTrackInfo ), up ? wxColour( 255,255,255):wxColour(0,0,0));
350
351 wxPen pen( highlight ? uglyPen : col );
352 dc.SetPen( pen );
353
354 dc.DrawLine(r.x, r.y, r.x + r.width, r.y);
355 dc.DrawLine(r.x, r.y, r.x, r.y + r.height);
356
357 col = Blend( theTheme.Colour( clrTrackInfo ), up ? wxColour(0,0,0): wxColour(255,255,255));
358
359 pen.SetColour( col );
360 dc.SetPen( highlight ? uglyPen : pen );
361
362 dc.DrawLine(r.x + r.width, r.y, r.x + r.width, r.y + r.height);
363 dc.DrawLine(r.x, r.y + r.height, r.x + r.width, r.y + r.height);
364#endif
365}
static wxColour Blend(const wxColour &c1, const wxColour &c2)
Definition: AColor.cpp:331
static void Bevel(wxDC &dc, bool up, const wxRect &r)
Definition: AColor.cpp:266
static wxPen uglyPen
Definition: AColor.h:141
wxColour & Colour(int iIndex)

References Bevel(), Blend(), ThemeBase::Colour(), theTheme, and uglyPen.

Referenced by WaveTrackVRulerControls::DoDraw(), AdornedRulerPanel::DoDrawEdge(), anonymous_namespace{TrackPanel.cpp}::EmptyPanelRect::Draw(), LabelTrackVRulerControls::Draw(), TimeTrackVRulerControls::Draw(), and CommonTrackControls::Draw().

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

◆ Blend()

wxColour AColor::Blend ( const wxColour &  c1,
const wxColour &  c2 
)
static

Definition at line 331 of file AColor.cpp.

332{
333 wxColour c3(
334 (c1.Red() + c2.Red())/2,
335 (c1.Green() + c2.Green())/2,
336 (c1.Blue() + c2.Blue())/2);
337 return c3;
338}

Referenced by BevelTrackInfo().

Here is the caller graph for this function:

◆ ButtonStretch()

void AColor::ButtonStretch ( wxDC &  dc,
bool  up,
const wxRect &  r,
bool  selected = false,
bool  highlight = false 
)
static

Draw a button that fills a given rect.

Definition at line 285 of file AColor.cpp.

286{
288 dc,
289 theTheme.Bitmap(GetButtonImageIndex(up, selected, highlight)),
290 r
291 );
292}
void DrawNinePatch(wxDC &dc, wxBitmap &bitmap, const wxRect &r)
Definition: AColor.cpp:84

References ThemeBase::Bitmap(), anonymous_namespace{AColor.cpp}::DrawNinePatch(), anonymous_namespace{AColor.cpp}::GetButtonImageIndex(), and theTheme.

Referenced by anonymous_namespace{PlayableTrackControls.cpp}::EffectsDrawFunction().

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

◆ CursorColor()

void AColor::CursorColor ( wxDC *  dc)
static

Definition at line 463 of file AColor.cpp.

464{
465 if (!inited)
466 Init();
467
468 dc->SetLogicalFunction(wxCOPY);
469 dc->SetPen(cursorPen);
470}
static bool inited
Definition: AColor.h:147
static wxPen cursorPen
Definition: AColor.h:104
static void Init()
Definition: AColor.cpp:557

References cursorPen, Init(), and inited.

Referenced by anonymous_namespace{TrackPanel.cpp}::VRulersAndChannels::Draw(), and TrackArt::DrawCursor().

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

◆ Dark()

void AColor::Dark ( wxDC *  dc,
bool  selected,
bool  highlight = false 
)
static

Definition at line 443 of file AColor.cpp.

444{
445 if (!inited)
446 Init();
447 int index = (int) selected;
448 auto &brush = highlight ? AColor::uglyBrush : darkBrush[index];
449 dc->SetBrush( brush );
450 auto &pen = highlight ? AColor::uglyPen : darkPen[index];
451 dc->SetPen( pen );
452}
static wxBrush darkBrush[2]
Definition: AColor.h:99
static wxBrush uglyBrush
Definition: AColor.h:142
static wxPen darkPen[2]
Definition: AColor.h:102

References darkBrush, darkPen, Init(), inited, uglyBrush, and uglyPen.

Referenced by Bevel(), Grabber::DrawGrabber(), anonymous_namespace{WaveformView.cpp}::DrawTimeSlider(), TrackInfo::MinimizeSyncLockDrawFunction(), ToolBarResizer::OnPaint(), ToolDock::OnPaint(), and TrackPanelBackground().

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

◆ DarkMIDIChannel()

void AColor::DarkMIDIChannel ( wxDC *  dc,
int  channel 
)
static

Definition at line 699 of file AColor.cpp.

700{
701 if (channel >= 1 && channel <= 16) {
702 const int *colors = AColor_midicolors[channel - 1];
703
704 dc->SetPen(wxPen(wxColour(colors[0] / 2,
705 colors[1] / 2,
706 colors[2] / 2), 1, wxPENSTYLE_SOLID));
707 dc->SetBrush(wxBrush(wxColour(colors[0] / 2,
708 colors[1] / 2,
709 colors[2] / 2), wxBRUSHSTYLE_SOLID));
710 } else {
711 dc->SetPen(wxPen(wxColour(102, 102, 102), 1, wxPENSTYLE_SOLID));
712 dc->SetBrush(wxBrush(wxColour(102, 102, 102), wxBRUSHSTYLE_SOLID));
713 }
714
715}
const int AColor_midicolors[16][3]
Definition: AColor.cpp:645

References AColor_midicolors.

Referenced by NoteTrack::DrawLabelControls(), and anonymous_namespace{NoteTrackView.cpp}::DrawNoteTrack().

Here is the caller graph for this function:

◆ DrawFocus()

void AColor::DrawFocus ( wxDC &  dc,
wxRect &  r 
)
static

Definition at line 235 of file AColor.cpp.

236{
237 // draw the pixels manually: note that to behave in the same manner as
238 // DrawRect(), we must exclude the bottom and right borders from the
239 // rectangle
240 wxCoord x1 = rect.GetLeft(),
241 y1 = rect.GetTop(),
242 x2 = rect.GetRight(),
243 y2 = rect.GetBottom();
244
245 // -1 for brush, so it just sets the pen colour, and does not change the brush.
246 UseThemeColour( &dc, -1, clrTrackPanelText );
247
248 wxCoord z;
249 for ( z = x1 + 1; z < x2; z += 2 )
250 dc.DrawPoint(z, y1);
251
252 wxCoord shift = z == x2 ? 0 : 1;
253 for ( z = y1 + shift; z < y2; z += 2 )
254 dc.DrawPoint(x2, z);
255
256 shift = z == y2 ? 0 : 1;
257 for ( z = x2 - shift; z > x1; z -= 2 )
258 dc.DrawPoint(z, y2);
259
260 shift = z == x1 ? 0 : 1;
261 for ( z = y2 - shift; z > y1; z -= 2 )
262 dc.DrawPoint(x1, z);
263
264}
static void UseThemeColour(wxDC *dc, int iBrush, int iPen=-1, int alpha=255)
Definition: AColor.cpp:372

References UseThemeColour().

Referenced by KeyView::OnDrawBackground(), anonymous_namespace{RealtimeEffectPanel.cpp}::RealtimeEffectControl::OnPaint(), AButton::OnPaint(), ASlider::OnPaint(), ListNavigationPanel::OnPaint(), anonymous_namespace{RealtimeEffectPanel.cpp}::HyperLinkCtrlWrapper::OnPaint(), auStaticText::OnPaint(), and MeterPanel::OnPaint().

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

◆ DrawFrame()

void AColor::DrawFrame ( wxDC &  dc,
const wxRect &  r,
wxBitmap &  bitmap 
)
static

Definition at line 325 of file AColor.cpp.

326{
327 DrawNinePatch(dc, bitmap, r);
328}

References anonymous_namespace{AColor.cpp}::DrawNinePatch().

Referenced by AButton::OnPaint().

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

◆ DrawHStretch()

void AColor::DrawHStretch ( wxDC &  dc,
const wxRect &  rect,
wxBitmap &  bitmap 
)
static

Definition at line 308 of file AColor.cpp.

309{
310 wxMemoryDC srcDC;
311 srcDC.SelectObject(bitmap);
312
313 const auto sh = bitmap.GetHeight();
314 const auto dh = rect.height;
315 const auto w0 = std::min((bitmap.GetWidth() - 1) / 2, rect.width / 2);
316 const auto dx0 = rect.x;
317 const auto dx1 = rect.x + w0;
318 const auto dx2 = rect.x + rect.width - w0;
319
320 dc.StretchBlit(dx0, rect.y, w0, dh, &srcDC, 0, 0, w0, sh);
321 dc.StretchBlit(dx1, rect.y, rect.width - w0 * 2, dh, &srcDC, w0, 0, 1, sh);
322 dc.StretchBlit(dx2, rect.y, w0, dh, &srcDC, bitmap.GetWidth() - w0, 0, w0, sh);
323}

References min().

Referenced by AButton::OnPaint().

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

◆ IndicatorColor()

void AColor::IndicatorColor ( wxDC *  dc,
bool  bIsNotRecording 
)
static

Definition at line 472 of file AColor.cpp.

473{
474 if (!inited)
475 Init();
476 int index = (int) bIsNotRecording;
477 dc->SetPen(indicatorPen[index]);
478 dc->SetBrush(indicatorBrush[index]);
479}
static wxBrush indicatorBrush[2]
Definition: AColor.h:106
static wxPen indicatorPen[2]
Definition: AColor.h:105

References indicatorBrush, indicatorPen, Init(), and inited.

Referenced by AdornedRulerPanel::TrackPanelGuidelineOverlay::Draw(), and PlayIndicatorOverlayBase::Draw().

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

◆ Init()

void AColor::Init ( )
static

Definition at line 557 of file AColor.cpp.

558{
559 if (inited)
560 return;
561
562 wxColour light = theTheme.Colour( clrLight );
563 // wxSystemSettings::GetColour(wxSYS_COLOUR_3DHIGHLIGHT);
564 wxColour med = theTheme.Colour( clrMedium );
565 // wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE);
566 wxColour dark = theTheme.Colour( clrDark );
567 // wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW);
568
569 wxColour lightSelected = theTheme.Colour( clrLightSelected );
570 wxColour medSelected = theTheme.Colour( clrMediumSelected );
571 wxColour darkSelected = theTheme.Colour( clrDarkSelected );
572
573
574 clippingPen.SetColour(0xCC, 0x11, 0x00);
575
576 theTheme.SetPenColour( envelopePen, clrEnvelope );
577 theTheme.SetPenColour( WideEnvelopePen, clrEnvelope );
578 theTheme.SetBrushColour( envelopeBrush, clrEnvelope );
579
580 WideEnvelopePen.SetWidth( 3 );
581
582 theTheme.SetBrushColour( labelTextNormalBrush, clrLabelTextNormalBrush );
583 theTheme.SetBrushColour( labelTextEditBrush, clrLabelTextEditBrush );
584 theTheme.SetBrushColour( labelUnselectedBrush, clrLabelUnselectedBrush );
585 theTheme.SetBrushColour( labelSelectedBrush, clrLabelSelectedBrush );
587 theTheme.SetPenColour( labelUnselectedPen, clrLabelUnselectedPen );
588 theTheme.SetPenColour( labelSelectedPen, clrLabelSelectedPen );
589 theTheme.SetPenColour( labelSyncLockSelPen, clrSyncLockSel );
590 theTheme.SetPenColour( labelSurroundPen, clrLabelSurroundPen );
591
592 // These colors were modified to avoid using reserved colors red and green
593 // for the buttons.
594 theTheme.SetBrushColour( muteBrush[0], clrMuteButtonActive);
595 theTheme.SetBrushColour( muteBrush[1], clrMuteButtonVetoed);
596 theTheme.SetBrushColour( soloBrush, clrMuteButtonActive);
597
598 cursorPen.SetColour( CursorColour() );
599 theTheme.SetPenColour( indicatorPen[0], clrRecordingPen);
600 theTheme.SetPenColour( indicatorPen[1], clrPlaybackPen);
601 theTheme.SetBrushColour( indicatorBrush[0], clrRecordingBrush);
602 theTheme.SetBrushColour( indicatorBrush[1], clrPlaybackBrush);
603
604 theTheme.SetBrushColour( playRegionBrush[0],clrRulerRecordingBrush);
605 // theTheme.SetPenColour( playRegionPen[0], clrRulerRecordingPen);
606 // theTheme.SetBrushColour( playRegionBrush[1],clrRulerPlaybackBrush);
607 // theTheme.SetPenColour( playRegionPen[1], clrRulerPlaybackPen);
608
609 //Determine tooltip color
610 tooltipPen.SetColour( wxSystemSettingsNative::GetColour(wxSYS_COLOUR_INFOTEXT) );
611 tooltipBrush.SetColour( wxSystemSettingsNative::GetColour(wxSYS_COLOUR_INFOBK) );
612
613 uglyPen.SetColour( wxColour{ 0, 255, 0 } ); // saturated green
614 uglyBrush.SetColour( wxColour{ 255, 0, 255 } ); // saturated magenta
615
616 // A tiny gradient of yellow surrounding the current focused track
617 theTheme.SetPenColour( trackFocusPens[0], clrTrackFocus0);
618 theTheme.SetPenColour( trackFocusPens[1], clrTrackFocus1);
619 theTheme.SetPenColour( trackFocusPens[2], clrTrackFocus2);
620
621 // A vertical line indicating that the selection or sliding has
622 // been snapped to the nearest boundary.
623 theTheme.SetPenColour( snapGuidePen, clrSnapGuide);
624
625 // unselected
626 lightBrush[0].SetColour(light);
627 mediumBrush[0].SetColour(med);
628 darkBrush[0].SetColour(dark);
629 lightPen[0].SetColour(light);
630 mediumPen[0].SetColour(med);
631 darkPen[0].SetColour(dark);
632
633 // selected
634 lightBrush[1].SetColour(lightSelected);
635 mediumBrush[1].SetColour(medSelected);
636 darkBrush[1].SetColour(darkSelected);
637 lightPen[1].SetColour(lightSelected);
638 mediumPen[1].SetColour(medSelected);
639 darkPen[1].SetColour(darkSelected);
640
641 inited = true;
642}
wxColour CursorColour()
Definition: AColor.cpp:542
static wxBrush mediumBrush[2]
Definition: AColor.h:98
static wxBrush labelSelectedBrush
Definition: AColor.h:122
static wxPen trackFocusPens[3]
Definition: AColor.h:129
static wxPen clippingPen
Definition: AColor.h:113
static wxPen WideEnvelopePen
Definition: AColor.h:116
static wxBrush lightBrush[2]
Definition: AColor.h:97
static wxBrush playRegionBrush[1]
Definition: AColor.h:108
static wxPen labelSurroundPen
Definition: AColor.h:127
static wxBrush muteBrush[2]
Definition: AColor.h:110
static wxPen tooltipPen
Definition: AColor.h:132
static wxPen lightPen[2]
Definition: AColor.h:100
static wxPen mediumPen[2]
Definition: AColor.h:101
static wxBrush envelopeBrush
Definition: AColor.h:117
static wxBrush labelTextNormalBrush
Definition: AColor.h:119
static wxBrush labelTextEditBrush
Definition: AColor.h:120
static wxBrush labelSyncLockSelBrush
Definition: AColor.h:123
static wxPen envelopePen
Definition: AColor.h:115
static wxPen labelSelectedPen
Definition: AColor.h:125
static wxBrush tooltipBrush
Definition: AColor.h:133
static wxBrush soloBrush
Definition: AColor.h:111
static wxBrush labelUnselectedBrush
Definition: AColor.h:121
static wxPen snapGuidePen
Definition: AColor.h:130
static wxPen labelUnselectedPen
Definition: AColor.h:124
static wxPen labelSyncLockSelPen
Definition: AColor.h:126
void SetBrushColour(wxBrush &Brush, int iIndex)
void SetPenColour(wxPen &Pen, int iIndex)

References clippingPen, ThemeBase::Colour(), CursorColour(), cursorPen, darkBrush, darkPen, envelopeBrush, envelopePen, indicatorBrush, indicatorPen, inited, labelSelectedBrush, labelSelectedPen, labelSurroundPen, labelSyncLockSelBrush, labelSyncLockSelPen, labelTextEditBrush, labelTextNormalBrush, labelUnselectedBrush, labelUnselectedPen, lightBrush, lightPen, mediumBrush, mediumPen, muteBrush, playRegionBrush, ThemeBase::SetBrushColour(), ThemeBase::SetPenColour(), snapGuidePen, soloBrush, theTheme, tooltipBrush, tooltipPen, trackFocusPens, uglyBrush, uglyPen, and WideEnvelopePen.

Referenced by CursorColor(), Dark(), IndicatorColor(), Light(), Medium(), Mute(), AudacityApp::OnInit(), ReInit(), SnapGuidePen(), Solo(), TrackFocusPen(), and UseThemeColour().

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

◆ Light()

void AColor::Light ( wxDC *  dc,
bool  selected,
bool  highlight = false 
)
static

Definition at line 413 of file AColor.cpp.

414{
415 if (!inited)
416 Init();
417 int index = (int) selected;
418 auto &brush = highlight ? AColor::uglyBrush : lightBrush[index];
419 dc->SetBrush( brush );
420 auto &pen = highlight ? AColor::uglyPen : lightPen[index];
421 dc->SetPen( pen );
422}

References Init(), inited, lightBrush, lightPen, uglyBrush, and uglyPen.

Referenced by Bevel(), AdornedRulerPanel::TrackPanelGuidelineOverlay::Draw(), Grabber::DrawGrabber(), and anonymous_namespace{WaveformView.cpp}::DrawTimeSlider().

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

◆ LightMIDIChannel()

void AColor::LightMIDIChannel ( wxDC *  dc,
int  channel 
)
static

Definition at line 681 of file AColor.cpp.

682{
683 if (channel >= 1 && channel <= 16) {
684 const int *colors = AColor_midicolors[channel - 1];
685
686 dc->SetPen(wxPen(wxColour(127 + colors[0] / 2,
687 127 + colors[1] / 2,
688 127 + colors[2] / 2), 1, wxPENSTYLE_SOLID));
689 dc->SetBrush(wxBrush(wxColour(127 + colors[0] / 2,
690 127 + colors[1] / 2,
691 127 + colors[2] / 2), wxBRUSHSTYLE_SOLID));
692 } else {
693 dc->SetPen(wxPen(wxColour(204, 204, 204), 1, wxPENSTYLE_SOLID));
694 dc->SetBrush(wxBrush(wxColour(204, 204, 204), wxBRUSHSTYLE_SOLID));
695 }
696
697}

References AColor_midicolors.

Referenced by NoteTrack::DrawLabelControls(), and anonymous_namespace{NoteTrackView.cpp}::DrawNoteTrack().

Here is the caller graph for this function:

◆ Line()

void AColor::Line ( wxDC &  dc,
wxCoord  x1,
wxCoord  y1,
wxCoord  x2,
wxCoord  y2 
)
static

Definition at line 187 of file AColor.cpp.

188{
189 const wxPoint points[] { { x1, y1 }, { x2, y2 } };
190 Lines( dc, 2, points );
191}
static void Lines(wxDC &dc, size_t nPoints, const wxPoint points[])
Definition: AColor.cpp:194

References Lines().

Referenced by Bevel(), AdornedRulerPanel::DoDrawEdge(), AdornedRulerPanel::TrackPanelGuidelineOverlay::Draw(), EditCursorOverlay::Draw(), PlayIndicatorOverlayBase::Draw(), LabelTrackView::Draw(), anonymous_namespace{TrackPanel.cpp}::VRulersAndChannels::Draw(), anonymous_namespace{TrackPanel.cpp}::LabeledChannelGroup::Draw(), TrackPanelResizerCell::Draw(), NoteTrackVRulerControls::Draw(), TrackVRulerControls::Draw(), Ruler::Draw(), SnapManager::Draw(), WaveTrackSubView::DrawBoldBoundaries(), TrackArt::DrawClipEdges(), TrackInfo::DrawCloseButton(), TrackArt::DrawCursor(), anonymous_namespace{WaveformView.cpp}::DrawEnvLine(), Grabber::DrawGrabber(), Ruler::DrawGrid(), anonymous_namespace{TimeTrackView.cpp}::DrawHorzRulerAndCurve(), anonymous_namespace{WaveformView.cpp}::DrawIndividualSamples(), NoteTrack::DrawLabelControls(), LabelTrackView::DrawLines(), MeterPanel::DrawMeterBar(), anonymous_namespace{WaveformView.cpp}::DrawMinMaxRMS(), TrackArt::DrawNegativeOffsetTrackArrows(), anonymous_namespace{NoteTrackView.cpp}::DrawNoteBackground(), anonymous_namespace{NoteTrackView.cpp}::DrawNoteTrack(), FrequencyPlotDialog::DrawPlot(), anonymous_namespace{WaveformView.cpp}::DrawTimeSlider(), LWSlider::DrawToBitmap(), anonymous_namespace{WaveformView.cpp}::DrawWaveformBackground(), KeyView::OnDrawBackground(), KeyView::OnDrawItem(), EqualizationPanel::OnPaint(), ExportMixerPanel::OnPaint(), ToolBarResizer::OnPaint(), ToolDock::OnPaint(), EffectAutoDuck::Panel::OnPaint(), EffectCompressorPanel::OnPaint(), EffectScienFilterPanel::OnPaint(), MeterPanel::OnPaint(), ToolFrame::OnPaint(), anonymous_namespace{Printing.cpp}::AudacityPrintout::OnPrintPage(), and FrequencyPlotDialog::PlotPaint().

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

◆ Lines()

void AColor::Lines ( wxDC &  dc,
size_t  nPoints,
const wxPoint  points[] 
)
static

Definition at line 194 of file AColor.cpp.

195{
196 if ( nPoints <= 1 ) {
197 if (nPoints == 1)
198 dc.DrawPoint( points[0] );
199 return;
200 }
201
202 for (size_t ii = 0; ii < nPoints - 1; ++ii) {
203 const auto &p1 = points[ii];
204 const auto &p2 = points[ii + 1];
205
206 // As of 2.8.9 (possibly earlier), wxDC::DrawLine() on the Mac draws the
207 // last point since it is now based on the NEW wxGraphicsContext system.
208 // Make the other platforms do the same thing since the other platforms
209 // "may" follow they get wxGraphicsContext going.
210
211 // PRL: as of 3.1.1, I still observe that on Mac, the last point is
212 // included, contrary to what documentation says. Also that on Windows,
213 // sometimes it is the first point that is excluded.
214
215#if defined(__WXMAC__) || defined(__WXGTK3__)
216 dc.DrawLine(p1, p2);
217#else
218 dc.DrawPoint(p1);
219 if ( p1 != p2 ) {
220 dc.DrawLine(p1, p2);
221 }
222#endif
223 }
224
225#if defined(__WXMAC__) || defined(__WXGTK3__)
226 ;
227#else
228 dc.DrawPoint( points[ nPoints - 1 ] );
229#endif
230}

Referenced by Line(), and EffectAutoDuck::Panel::OnPaint().

Here is the caller graph for this function:

◆ Medium()

void AColor::Medium ( wxDC *  dc,
bool  selected 
)
static

Definition at line 424 of file AColor.cpp.

425{
426 if (!inited)
427 Init();
428 int index = (int) selected;
429 dc->SetBrush(mediumBrush[index]);
430 dc->SetPen(mediumPen[index]);
431}

References Init(), inited, mediumBrush, and mediumPen.

Referenced by Grabber::DrawGrabber(), and MediumTrackInfo().

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

◆ MediumTrackInfo()

void AColor::MediumTrackInfo ( wxDC *  dc,
bool  selected 
)
static

Definition at line 433 of file AColor.cpp.

434{
435#ifdef EXPERIMENTAL_THEMING
436 UseThemeColour( dc, selected ? clrTrackInfoSelected : clrTrackInfo );
437#else
438 Medium( dc, selected );
439#endif
440}
static void Medium(wxDC *dc, bool selected)
Definition: AColor.cpp:424

References Medium(), and UseThemeColour().

Referenced by TrackPanelResizerCell::Draw(), CommonTrackControls::Draw(), TrackVRulerControls::Draw(), anonymous_namespace{PlayableTrackControls.cpp}::MuteOrSoloDrawFunction(), and MixerTrackCluster::OnPaint().

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

◆ MIDIChannel()

void AColor::MIDIChannel ( wxDC *  dc,
int  channel 
)
static

Definition at line 665 of file AColor.cpp.

666{
667 if (channel >= 1 && channel <= 16) {
668 const int *colors = AColor_midicolors[channel - 1];
669
670 dc->SetPen(wxPen(wxColour(colors[0],
671 colors[1], colors[2]), 1, wxPENSTYLE_SOLID));
672 dc->SetBrush(wxBrush(wxColour(colors[0],
673 colors[1], colors[2]), wxBRUSHSTYLE_SOLID));
674 } else {
675 dc->SetPen(wxPen(wxColour(153, 153, 153), 1, wxPENSTYLE_SOLID));
676 dc->SetBrush(wxBrush(wxColour(153, 153, 153), wxBRUSHSTYLE_SOLID));
677 }
678
679}

References AColor_midicolors.

Referenced by NoteTrack::DrawLabelControls(), and anonymous_namespace{NoteTrackView.cpp}::DrawNoteTrack().

Here is the caller graph for this function:

◆ Mute()

void AColor::Mute ( wxDC *  dc,
bool  on,
bool  selected,
bool  soloing 
)
static

Definition at line 495 of file AColor.cpp.

496{
497 if (!inited)
498 Init();
499 int index = (int) selected;
500 if (on) {
501 dc->SetPen(*wxBLACK_PEN);
502 dc->SetBrush(muteBrush[(int) soloing]);
503 }
504 else {
505 dc->SetPen(*wxTRANSPARENT_PEN);
506 dc->SetBrush(mediumBrush[index]);
507 }
508}

References Init(), inited, mediumBrush, and muteBrush.

Referenced by anonymous_namespace{PlayableTrackControls.cpp}::MuteOrSoloDrawFunction().

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

◆ PreComputeGradient()

void AColor::PreComputeGradient ( )
static

Definition at line 721 of file AColor.cpp.

721 {
722 if (gradient_inited) return;
723 gradient_inited = 1;
724
725 // Keep in correspondence with enum SpectrogramSettings::ColorScheme
726
727 // colorScheme 0: Color (New)
728 std::copy_n(&specColormap[0][0], gradientSteps * 3, &gradient_pre[ColorGradientUnselected][0][0][0]);
729 std::copy_n(&selColormap[0][0], gradientSteps * 3, &gradient_pre[ColorGradientTimeSelected][0][0][0]);
731 std::fill_n(&gradient_pre[ColorGradientEdge][0][0][0], gradientSteps * 3, 0);
732
733
734 for (int selected = 0; selected < ColorGradientTotal; selected++) {
735 // Get color scheme from Theme
736 const int gsteps = 4;
737 float gradient[gsteps + 1][3];
738 theTheme.Colour( clrSpectro1 ) = theTheme.Colour( clrUnselected );
739 theTheme.Colour( clrSpectro1Sel ) = theTheme.Colour( clrSelected );
740 int clrFirst = (selected == ColorGradientUnselected ) ? clrSpectro1 : clrSpectro1Sel;
741 for(int j=0;j<(gsteps+1);j++){
742 wxColour c = theTheme.Colour( clrFirst+j );
743 gradient[ j] [0] = c.Red()/255.0;
744 gradient[ j] [1] = c.Green()/255.0;
745 gradient[ j] [2] = c.Blue()/255.0;
746 }
747
748 // colorScheme 1: Color (from theme)
749 for (int i = 0; i<gradientSteps; i++) {
750 float r, g, b;
751 float value = float(i)/gradientSteps;
752
753 int left = (int)(value * gsteps);
754 int right = (left == gsteps ? gsteps : left + 1);
755
756 float rweight = (value * gsteps) - left;
757 float lweight = 1.0 - rweight;
758
759 r = (gradient[left][0] * lweight) + (gradient[right][0] * rweight);
760 g = (gradient[left][1] * lweight) + (gradient[right][1] * rweight);
761 b = (gradient[left][2] * lweight) + (gradient[right][2] * rweight);
762
763 switch (selected) {
765 // not dimmed
766 break;
767
769 float temp;
770 temp = r;
771 r = g;
772 g = b;
773 b = temp;
774 break;
775
777 // partly dimmed
778 r *= 0.75f;
779 g *= 0.75f;
780 b *= 0.75f;
781 break;
782
783
784 // For now edge colour is just black (or white if grey-scale)
785 // Later we might invert or something else funky.
787 // fully dimmed
788 r = 0;
789 g = 0;
790 b = 0;
791 break;
792 }
793 gradient_pre[selected][1][i][0] = (unsigned char) (255 * r);
794 gradient_pre[selected][1][i][1] = (unsigned char) (255 * g);
795 gradient_pre[selected][1][i][2] = (unsigned char) (255 * b);
796 }
797
798 // colorScheme 3: Inverse Grayscale
799 for (int i = 0; i < gradientSteps; i++) {
800 float r, g, b;
801 float value = float(i) / gradientSteps;
802
803 r = g = b = value;
804
805 switch (selected) {
807 // not dimmed
808 break;
809
811 // else fall through to SAME grayscale colour as normal selection.
812 // The white lines show it up clearly enough.
813
815 // partly dimmed
816 r = r * 0.75f + 0.25f;
817 g = g * 0.75f + 0.25f;
818 b = b * 0.75f + 0.25f;
819 break;
820
822 r = 1.0f;
823 g = 1.0f;
824 b = 1.0f;
825 break;
826 }
827 gradient_pre[selected][3][i][0] = (unsigned char)(255 * r);
828 gradient_pre[selected][3][i][1] = (unsigned char)(255 * g);
829 gradient_pre[selected][3][i][2] = (unsigned char)(255 * b);
830 }
831
832 // colorScheme 2: Grayscale (=Old grayscale)
833 for (int i = 0; i<gradientSteps; i++) {
834 float r, g, b;
835 float value = float(i)/gradientSteps;
836
837 r = g = b = 0.84 - 0.84 * value;
838
839 switch (selected) {
841 // not dimmed
842 break;
843
845 // else fall through to SAME grayscale colour as normal selection.
846 // The white lines show it up clearly enough.
847
849 // partly dimmed
850 r *= 0.75f;
851 g *= 0.75f;
852 b *= 0.75f;
853 break;
854
855
856 // For now edge colour is just black (or white if grey-scale)
857 // Later we might invert or something else funky.
859 // fully dimmed
860 r = 1.0f;
861 g = 1.0f;
862 b = 1.0f;
863 break;
864 }
865 gradient_pre[selected][2][i][0] = (unsigned char) (255 * r);
866 gradient_pre[selected][2][i][1] = (unsigned char) (255 * g);
867 gradient_pre[selected][2][i][2] = (unsigned char) (255 * b);
868 }
869 }
870}
const unsigned char specColormap[256][3]
const unsigned char freqSelColormap[256][3]
const unsigned char selColormap[256][3]
static const int gradientSteps
Definition: AColor.h:137
static unsigned char gradient_pre[ColorGradientTotal][colorSchemes][gradientSteps][3]
Definition: AColor.h:138
static bool gradient_inited
Definition: AColor.h:135

References ColorGradientEdge, ColorGradientTimeAndFrequencySelected, ColorGradientTimeSelected, ColorGradientTotal, ColorGradientUnselected, ThemeBase::Colour(), freqSelColormap, gradient_inited, gradient_pre, gradientSteps, selColormap, specColormap, and theTheme.

Referenced by anonymous_namespace{SpectrumView.cpp}::DrawClipSpectrum(), and ReInit().

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

◆ ReInit()

void AColor::ReInit ( )
static

Definition at line 527 of file AColor.cpp.

528{
529 inited=false;
530 Init();
533}
static void PreComputeGradient()
Definition: AColor.cpp:721

References gradient_inited, Init(), inited, and PreComputeGradient().

Referenced by ApplyUpdatedImages().

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

◆ SnapGuidePen()

void AColor::SnapGuidePen ( wxDC *  dc)
static

Definition at line 488 of file AColor.cpp.

489{
490 if (!inited)
491 Init();
492 dc->SetPen(snapGuidePen);
493}

References Init(), inited, and snapGuidePen.

Referenced by AdornedRulerPanel::TrackPanelGuidelineOverlay::Draw(), and SnapManager::Draw().

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

◆ Solo()

void AColor::Solo ( wxDC *  dc,
bool  on,
bool  selected 
)
static

Definition at line 510 of file AColor.cpp.

511{
512 if (!inited)
513 Init();
514 int index = (int) selected;
515 if (on) {
516 dc->SetPen(*wxBLACK_PEN);
517 dc->SetBrush(soloBrush);
518 }
519 else {
520 dc->SetPen(*wxTRANSPARENT_PEN);
521 dc->SetBrush(mediumBrush[index]);
522 }
523}

References Init(), inited, mediumBrush, and soloBrush.

Referenced by anonymous_namespace{PlayableTrackControls.cpp}::MuteOrSoloDrawFunction().

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

◆ TrackFocusPen()

void AColor::TrackFocusPen ( wxDC *  dc,
int  level 
)
static

Definition at line 481 of file AColor.cpp.

482{
483 if (!inited)
484 Init();
485 dc->SetPen(trackFocusPens[level]);
486}

References Init(), inited, and trackFocusPens.

Referenced by anonymous_namespace{TrackPanel.cpp}::LabeledChannelGroup::Draw().

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

◆ TrackPanelBackground()

void AColor::TrackPanelBackground ( wxDC *  dc,
bool  selected 
)
static

Definition at line 454 of file AColor.cpp.

455{
456#ifdef EXPERIMENTAL_THEMING
457 UseThemeColour( dc, selected ? clrMediumSelected : clrTrackBackground );
458#else
459 Dark( dc, selected );
460#endif
461}

References Dark(), and UseThemeColour().

Referenced by anonymous_namespace{TrackPanel.cpp}::EmptyCell::Draw(), TrackPanelResizerCell::Draw(), and BackgroundCell::Draw().

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

◆ UseThemeColour() [1/2]

void AColor::UseThemeColour ( wxDC *  dc,
int  iBrush,
int  iPen = -1,
int  alpha = 255 
)
static

Definition at line 372 of file AColor.cpp.

373{
374 if (!inited)
375 Init();
376 // do nothing if no colours set.
377 if( (iBrush == -1) && ( iPen ==-1))
378 return;
379 wxColour col = wxColour(0,0,0);
380 if( iBrush !=-1 ){
381 col = theTheme.Colour( iBrush );
382 col.Set( col.Red(), col.Green(), col.Blue(), alpha);
383 spareBrush.SetColour( col );
384 dc->SetBrush( spareBrush );
385 }
386 if( iPen != -1)
387 col = theTheme.Colour( iPen );
388 sparePen.SetColour( col );
389 dc->SetPen( sparePen );
390}
static wxPen sparePen
Definition: AColor.h:145
static wxBrush spareBrush
Definition: AColor.h:146

References ThemeBase::Colour(), Init(), inited, spareBrush, sparePen, and theTheme.

Referenced by AdornedRulerPanel::DoDrawBackground(), anonymous_namespace{TrackPanel.cpp}::EmptyPanelRect::Draw(), TrackArt::DrawClipAffordance(), TrackArt::DrawClipEdges(), TrackArt::DrawClipFolded(), DrawFocus(), anonymous_namespace{TimeTrackView.cpp}::DrawHorzRulerAndCurve(), LWSlider::DrawToBitmap(), anonymous_namespace{TrackPanel.cpp}::DrawTrackName(), MixerBoard::MakeButtonBitmap(), MediumTrackInfo(), and TrackPanelBackground().

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

◆ UseThemeColour() [2/2]

void AColor::UseThemeColour ( wxGraphicsContext *  gc,
int  iBrush,
int  iPen = -1,
int  alpha = 255 
)
static

Definition at line 392 of file AColor.cpp.

393{
394 if (!inited)
395 Init();
396 // do nothing if no colours set.
397 if( (iBrush == -1) && ( iPen ==-1))
398 return;
399 wxColour col = wxColour(0,0,0);
400 if( iBrush !=-1 ){
401 col = theTheme.Colour( iBrush );
402 col.Set( col.Red(), col.Green(), col.Blue(), alpha);
403 spareBrush.SetColour( col );
404 gc->SetBrush( spareBrush );
405 }
406 if( iPen != -1)
407 col = theTheme.Colour( iPen );
408 sparePen.SetColour( col );
409 gc->SetPen( sparePen );
410}

References ThemeBase::Colour(), Init(), inited, spareBrush, sparePen, and theTheme.

Here is the call graph for this function:

Member Data Documentation

◆ clippingPen

wxPen AColor::clippingPen
static

Definition at line 113 of file AColor.h.

Referenced by Init().

◆ colorSchemes

const int AColor::colorSchemes = 4
static

Definition at line 136 of file AColor.h.

Referenced by SpectrogramSettings::GetColorSchemeNames().

◆ cursorPen

wxPen AColor::cursorPen
static

Definition at line 104 of file AColor.h.

Referenced by CursorColor(), and Init().

◆ darkBrush

wxBrush AColor::darkBrush
static

Definition at line 99 of file AColor.h.

Referenced by Dark(), and Init().

◆ darkPen

wxPen AColor::darkPen
static

Definition at line 102 of file AColor.h.

Referenced by Dark(), and Init().

◆ envelopeBrush

wxBrush AColor::envelopeBrush
static

Definition at line 117 of file AColor.h.

Referenced by EnvelopeEditor::DrawPoints(), Init(), and ExportMixerPanel::OnPaint().

◆ envelopePen

wxPen AColor::envelopePen
static

◆ gradient_inited

bool AColor::gradient_inited = 0
static

◆ gradient_pre

unsigned char AColor::gradient_pre
static

Definition at line 138 of file AColor.h.

Referenced by GetColorGradient(), and PreComputeGradient().

◆ gradientSteps

const int AColor::gradientSteps = 256
static

Definition at line 137 of file AColor.h.

Referenced by GetColorGradient(), and PreComputeGradient().

◆ indicatorBrush

wxBrush AColor::indicatorBrush
static

Definition at line 106 of file AColor.h.

Referenced by IndicatorColor(), and Init().

◆ indicatorPen

wxPen AColor::indicatorPen
static

Definition at line 105 of file AColor.h.

Referenced by IndicatorColor(), and Init().

◆ inited

bool AColor::inited = false
staticprivate

◆ labelSelectedBrush

wxBrush AColor::labelSelectedBrush
static

◆ labelSelectedPen

wxPen AColor::labelSelectedPen
static

Definition at line 125 of file AColor.h.

Referenced by Init().

◆ labelSurroundPen

wxPen AColor::labelSurroundPen
static

Definition at line 127 of file AColor.h.

Referenced by LabelTrackView::Draw(), and Init().

◆ labelSyncLockSelBrush

wxBrush AColor::labelSyncLockSelBrush
static

Definition at line 123 of file AColor.h.

Referenced by Init().

◆ labelSyncLockSelPen

wxPen AColor::labelSyncLockSelPen
static

Definition at line 126 of file AColor.h.

Referenced by Init().

◆ labelTextEditBrush

wxBrush AColor::labelTextEditBrush
static

Definition at line 120 of file AColor.h.

Referenced by LabelTrackView::Draw(), and Init().

◆ labelTextNormalBrush

wxBrush AColor::labelTextNormalBrush
static

Definition at line 119 of file AColor.h.

Referenced by LabelTrackView::Draw(), and Init().

◆ labelUnselectedBrush

wxBrush AColor::labelUnselectedBrush
static

◆ labelUnselectedPen

wxPen AColor::labelUnselectedPen
static

Definition at line 124 of file AColor.h.

Referenced by Init().

◆ lightBrush

wxBrush AColor::lightBrush
static

Definition at line 97 of file AColor.h.

Referenced by Init(), and Light().

◆ lightPen

wxPen AColor::lightPen
static

Definition at line 100 of file AColor.h.

Referenced by Init(), and Light().

◆ mediumBrush

wxBrush AColor::mediumBrush
static

Definition at line 98 of file AColor.h.

Referenced by Init(), Medium(), Mute(), and Solo().

◆ mediumPen

wxPen AColor::mediumPen
static

Definition at line 101 of file AColor.h.

Referenced by Init(), and Medium().

◆ muteBrush

wxBrush AColor::muteBrush
static

Definition at line 110 of file AColor.h.

Referenced by Init(), and Mute().

◆ playRegionBrush

wxBrush AColor::playRegionBrush
static

Definition at line 108 of file AColor.h.

Referenced by Init(), and ExportMixerPanel::OnPaint().

◆ snapGuidePen

wxPen AColor::snapGuidePen
static

Definition at line 130 of file AColor.h.

Referenced by Init(), and SnapGuidePen().

◆ soloBrush

wxBrush AColor::soloBrush
static

Definition at line 111 of file AColor.h.

Referenced by Init(), and Solo().

◆ spareBrush

wxBrush AColor::spareBrush
staticprivate

Definition at line 146 of file AColor.h.

Referenced by UseThemeColour().

◆ sparePen

wxPen AColor::sparePen
staticprivate

Definition at line 145 of file AColor.h.

Referenced by UseThemeColour().

◆ tooltipBrush

wxBrush AColor::tooltipBrush
static

Definition at line 133 of file AColor.h.

Referenced by Init(), and TipWindow::OnPaint().

◆ tooltipPen

wxPen AColor::tooltipPen
static

Definition at line 132 of file AColor.h.

Referenced by Init(), and TipWindow::OnPaint().

◆ trackFocusPens

wxPen AColor::trackFocusPens
static

Definition at line 129 of file AColor.h.

Referenced by Init(), and TrackFocusPen().

◆ uglyBrush

wxBrush AColor::uglyBrush
static

◆ uglyPen

wxPen AColor::uglyPen
static

◆ WideEnvelopePen

wxPen AColor::WideEnvelopePen
static

Definition at line 116 of file AColor.h.

Referenced by Init(), and EffectCompressorPanel::OnPaint().


The documentation for this class was generated from the following files: