Update of /cvsroot/audacity/audacity-src/src
In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv29882/src
Modified Files:
AColor.cpp AColor.h AllThemeResources.h AudacityApp.cpp
Experimental.h Project.cpp Theme.cpp ThemeAsCeeCode.h
TrackArtist.cpp TrackPanel.cpp TrackPanel.h
Log Message:
-Theming updates
-TrackLabel becomes TrackInfo
Index: AColor.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/AColor.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- AColor.h 18 Jun 2007 16:10:53 -0000 1.12
+++ AColor.h 5 Jul 2007 11:55:34 -0000 1.13
@@ -27,9 +27,14 @@
static void DrawFocus(wxDC & dc, wxRect & r);
static void Bevel(wxDC & dc, bool up, wxRect & r);
+ static void BevelTrackInfo(wxDC & dc, bool up, wxRect & r);
+
+ static void UseThemeColour( wxDC * dc, int iIndex );
+ static void TrackPanelBackground(wxDC * dc, bool selected);
static void Light(wxDC * dc, bool selected);
static void Medium(wxDC * dc, bool selected);
+ static void MediumTrackInfo(wxDC * dc, bool selected);
static void Dark(wxDC * dc, bool selected);
static void CursorColor(wxDC * dc);
@@ -54,7 +59,7 @@
static wxPen lightPen[2];
static wxPen mediumPen[2];
static wxPen darkPen[2];
-
+
static wxPen cursorPen;
static wxPen indicatorPen[2];
static wxBrush indicatorBrush[2];
@@ -81,8 +86,9 @@
static wxBrush tooltipBrush;
-
private:
+ static wxPen sparePen;
+ static wxBrush spareBrush;
static bool inited;
};
Index: TrackPanel.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/TrackPanel.h,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -d -r1.118 -r1.119
--- TrackPanel.h 18 Jun 2007 16:10:54 -0000 1.118
+++ TrackPanel.h 5 Jul 2007 11:55:37 -0000 1.119
@@ -92,11 +92,11 @@
};
-class TrackLabel
+class TrackInfo
{
public:
- TrackLabel(wxWindow * pParentIn);
- ~TrackLabel();
+ TrackInfo(wxWindow * pParentIn);
+ ~TrackInfo();
int GetTitleWidth() const { return 100; }
private:
@@ -104,6 +104,7 @@
void EnsureSufficientSliders(int index);
void DrawBackground(wxDC * dc, const wxRect r, bool bSelected, const int
labelw);
+ void DrawBordersWithin(wxDC * dc, const wxRect r );
void DrawCloseBox(wxDC * dc, const wxRect r, bool down);
void DrawTitleBar(wxDC * dc, const wxRect r, Track * t, bool down);
void DrawMuteSolo(wxDC * dc, const wxRect r, Track * t, bool down, bool
solo);
@@ -359,8 +360,8 @@
// int GetTitleWidth() const { return 100; }
int GetTitleOffset() const { return 0; }
int GetVRulerWidth() const { return 36;}
- int GetVRulerOffset() const { return GetTitleOffset() +
mTrackLabel.GetTitleWidth();}
- int GetLabelWidth() const { return mTrackLabel.GetTitleWidth() +
GetVRulerWidth();}
+ int GetVRulerOffset() const { return GetTitleOffset() +
mTrackInfo.GetTitleWidth();}
+ int GetLabelWidth() const { return mTrackInfo.GetTitleWidth() +
GetVRulerWidth();}
private:
void DrawTracks(wxDC * dc);
@@ -388,7 +389,7 @@
bool MoveClipToTrack(WaveClip *clip, WaveTrack* src, WaveTrack* dst);
- TrackLabel mTrackLabel;
+ TrackInfo mTrackInfo;
TrackPanelListener *mListener;
@@ -555,7 +556,7 @@
wxMenu *mLabelTrackMenu;
wxMenu *mRateMenu;
wxMenu *mFormatMenu;
- wxMenu *mLabelTrackLabelMenu;
+ wxMenu *mLabelTrackInfoMenu;
Track *mPopupMenuTarget;
Index: AudacityApp.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/AudacityApp.cpp,v
retrieving revision 1.175
retrieving revision 1.176
diff -u -d -r1.175 -r1.176
--- AudacityApp.cpp 18 Jun 2007 16:10:53 -0000 1.175
+++ AudacityApp.cpp 5 Jul 2007 11:55:35 -0000 1.176
@@ -711,6 +711,7 @@
SetExitOnFrameDelete(true);
+
AudacityProject *project = CreateNewAudacityProject(gParentWindow);
#ifdef EXPERIMENTAL_MODULES
Index: TrackArtist.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/TrackArtist.cpp,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -d -r1.96 -r1.97
--- TrackArtist.cpp 9 Jun 2007 08:18:45 -0000 1.96
+++ TrackArtist.cpp 5 Jul 2007 11:55:36 -0000 1.97
@@ -261,12 +261,19 @@
void TrackArtist::DrawVRuler(Track *t, wxDC * dc, wxRect & r)
{
+ // All waves have a ruler in the info panel
+ // The ruler needs a bevelled surround.
+ if (t->GetKind() == Track::Wave )
+ {
+ wxRect bev = r;
+ bev.Inflate(-1, -1);
+ bev.width +=1;
+ AColor::BevelTrackInfo(*dc, true, bev);
+ }
+
if (t->GetKind() == Track::Wave
&& ((WaveTrack *) t)->GetDisplay() == WaveTrack::WaveformDisplay) {
// Waveform
- wxRect bev = r;
- bev.Inflate(-1, -1);
- AColor::Bevel(*dc, true, bev);
float min, max;
((WaveTrack *)t)->GetDisplayBounds(&min, &max);
@@ -282,9 +289,6 @@
if (t->GetKind() == Track::Wave
&& ((WaveTrack *) t)->GetDisplay() == WaveTrack::WaveformDBDisplay) {
// Waveform (db)
- wxRect bev = r;
- bev.Inflate(-1, -1);
- AColor::Bevel(*dc, true, bev);
vruler->SetUnits(wxT(""));
float dBr = gPrefs->Read(wxT("/GUI/EnvdBRange"), ENV_DB_RANGE);
@@ -328,10 +332,6 @@
if (t->GetKind() == Track::Wave
&& ((WaveTrack *) t)->GetDisplay() == WaveTrack::SpectrumDisplay) {
// Spectrum
- wxRect bev = r;
- bev.Inflate(-1, -1);
- AColor::Bevel(*dc, true, bev);
-
if (r.height < 60)
return;
@@ -371,11 +371,9 @@
if (t->GetKind() == Track::Wave
&& ((WaveTrack *) t)->GetDisplay() == WaveTrack::PitchDisplay) {
// Pitch
- wxRect bev = r;
- bev.Inflate(-1, -1);
- AColor::Bevel(*dc, true, bev);
}
+ // The note track isn't drawing a ruler at all!
if (t->GetKind() == Track::Note) {
dc->SetPen(*wxTRANSPARENT_PEN);
Index: ThemeAsCeeCode.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/ThemeAsCeeCode.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- ThemeAsCeeCode.h 11 Jul 2006 08:14:13 -0000 1.4
+++ ThemeAsCeeCode.h 5 Jul 2007 11:55:36 -0000 1.5
@@ -4,6 +4,7 @@
// It is included by Theme.cpp.
// Only check this into CVS if you've read and understood the guidelines!
+#ifndef EXPERIMENTAL_THEMING
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,184,
0,0,3,68,8,6,0,0,0,194,5,58,248,0,0,0,4,115,66,73,
84,8,8,8,8,124,8,100,136,0,0,32,0,73,68,65,84,120,156,236,
@@ -3935,3 +3936,4117 @@
28,0,75,130,3,96,73,112,0,44,9,14,128,37,193,1,176,36,56,0,
150,4,7,192,146,224,0,88,18,28,0,75,1,242,41,238,143,137,121,142,
218,0,0,0,0,73,69,78,68,174,66,96,130,
[...4095 lines suppressed...]
+ 0,128,73,4,14,0,96,18,129,3,0,152,68,224,0,0,38,17,56,0,
+ 128,73,4,14,0,96,18,129,3,0,152,68,224,0,0,38,17,56,0,128,
+ 73,4,14,0,96,18,129,3,0,152,68,224,0,0,38,17,56,0,128,73,
+ 4,14,0,96,18,129,3,0,152,68,224,0,0,38,17,56,0,128,73,4,
+ 14,0,96,18,129,3,0,152,68,224,0,0,38,17,56,0,128,73,4,14,
+ 0,96,18,129,3,0,152,68,224,0,0,38,17,56,0,128,73,4,14,0,
+ 96,18,129,3,0,152,68,224,0,0,38,17,56,0,128,73,4,14,0,96,
+ 18,129,3,0,152,68,224,0,0,38,17,56,0,128,73,4,14,0,96,18,
+ 129,3,0,152,68,224,0,0,38,17,56,0,128,73,4,14,0,96,18,129,
+ 3,0,152,68,224,0,0,38,17,56,0,128,73,4,14,0,96,18,129,3,
+ 0,152,68,224,0,0,38,17,56,0,128,73,4,14,0,96,18,129,3,0,
+ 152,68,224,0,0,38,17,56,0,128,73,4,14,0,96,18,129,3,0,152,
+ 68,224,0,0,38,17,56,0,128,73,4,14,0,96,18,129,3,0,152,68,
+ 224,0,0,38,17,56,0,128,73,4,14,0,96,18,129,3,0,152,68,224,
+ 0,0,38,17,56,0,128,73,4,14,0,96,18,129,3,0,152,68,224,0,
+ 0,38,17,56,0,128,73,4,14,0,96,18,129,3,0,152,68,224,0,0,
+ 38,17,56,0,128,73,4,14,0,96,18,129,3,0,152,244,15,61,199,65,
+ 69,227,185,65,117,0,0,0,0,73,69,78,68,174,66,96,130,
+#endif
\ No newline at end of file
Index: TrackPanel.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/TrackPanel.cpp,v
retrieving revision 1.364
retrieving revision 1.365
diff -u -d -r1.364 -r1.365
--- TrackPanel.cpp 4 Jul 2007 18:29:28 -0000 1.364
+++ TrackPanel.cpp 5 Jul 2007 11:55:37 -0000 1.365
@@ -7,7 +7,7 @@
Dominic Mazzoni
and lots of other contributors
- Implements TrackPanel and TrackLabel.
+ Implements TrackPanel and TrackInfo.
********************************************************************//*!
@@ -19,7 +19,7 @@
\file TrackPanel.cpp
\brief
- Implements TrackPanel and TrackLabel.
+ Implements TrackPanel and TrackInfo.
TrackPanel.cpp is currently some of the worst code in Audacity.
It's not really unreadable, there's just way too much stuff in this
@@ -45,25 +45,25 @@
main part of the screen which contains multiple tracks.
It uses many other classes, but in particular it uses the
- TrackLabel class to draw the label on the left of a track,
+ TrackInfo class to draw the label on the left of a track,
and the TrackArtist class to draw the actual waveforms.
- The TrackPanel manages multiple tracks and their TrackLabels.
+ The TrackPanel manages multiple tracks and their TrackInfos.
- Note that with stereo tracks there will be one TrackLabel
+ Note that with stereo tracks there will be one TrackInfo
being used by two wavetracks.
*//*****************************************************************//**
-\class TrackLabel
+\class TrackInfo
\brief
- The TrackLabel is shown to the side of a track
+ The TrackInfo is shown to the side of a track
It has the menus, pan and gain controls displayed in it.
- TrackPanel and not TrackLabel takes care of the functionality for
+ TrackPanel and not TrackInfo takes care of the functionality for
each of the buttons in that panel.
- In its current implementation TrackLabel is not derived from a
+ In its current implementation TrackInfo is not derived from a
wxWindow. Following the original coding style, it has
been coded as a 'flyweight' class, which is passed
state as needed, except for the array of gains and pans.
@@ -114,8 +114,8 @@
\page TrackPanelRefactor Track Panel Refactor
\brief Planned refactoring of TrackPanel.cpp
- - Move menus from current TrackPanel into TrackLabel.
- - Convert TrackLabel from 'flyweight' to heavyweight.
+ - Move menus from current TrackPanel into TrackInfo.
+ - Convert TrackInfo from 'flyweight' to heavyweight.
- Split GuiStereoTrack and GuiWaveTrack out from TrackPanel.
JKC: Incremental refactoring started April/2003
@@ -130,7 +130,7 @@
+----------------------------------------------------+
|+------------+ +-----------------------------------+|
|| | | (L) GuiWaveTrack ||
- || TrackLabel | +-----------------------------------+|
+ || TrackInfo | +-----------------------------------+|
|| | +-----------------------------------+|
|| | | (R) GuiWaveTrack ||
|+------------+ +-----------------------------------+|
@@ -138,7 +138,7 @@
+----------------------------------------------------+
|+------------+ +-----------------------------------+|
|| | | (L) GuiWaveTrack ||
- || TrackLabel | +-----------------------------------+|
+ || TrackInfo | +-----------------------------------+|
|| | +-----------------------------------+|
|| | | (R) GuiWaveTrack ||
|+------------+ +-----------------------------------+|
@@ -153,7 +153,7 @@
The precise names of the classes are subject to revision.
Have deliberately not created new files for the new classes
- such as AdornedRulerPanel and TrackLabel - yet.
+ such as AdornedRulerPanel and TrackInfo - yet.
*//*****************************************************************/
@@ -264,7 +264,7 @@
}
/// \todo Probably should move to 'Utils.cpp'.
-void SetLabelFont(wxDC * dc)
+void SetTrackInfoFont(wxDC * dc)
{
int fontSize = 10;
#if defined __WXMSW__ || __WXGTK__
@@ -437,7 +437,7 @@
TrackPanelListener * listener,
AdornedRulerPanel * ruler)
: wxPanel(parent, id, pos, size, wxWANTS_CHARS | wxNO_BORDER),
- mTrackLabel(this),
+ mTrackInfo(this),
mListener(listener),
mTracks(tracks),
mViewInfo(viewInfo),
@@ -546,10 +546,10 @@
mTimeTrackMenu->AppendSeparator();
mTimeTrackMenu->Append(OnSetTimeTrackRangeID, _("Set Range..."));
- mLabelTrackLabelMenu = new wxMenu();
- mLabelTrackLabelMenu->Append(OnCutSelectedTextID, _("Cut"));
- mLabelTrackLabelMenu->Append(OnCopySelectedTextID, _("Copy"));
- mLabelTrackLabelMenu->Append(OnPasteSelectedTextID, _("Paste"));
+ mLabelTrackInfoMenu = new wxMenu();
+ mLabelTrackInfoMenu->Append(OnCutSelectedTextID, _("Cut"));
+ mLabelTrackInfoMenu->Append(OnCopySelectedTextID, _("Copy"));
+ mLabelTrackInfoMenu->Append(OnPasteSelectedTextID, _("Paste"));
mTrackArtist = new TrackArtist();
mTrackArtist->SetInset(1, kTopInset + 1, kLeftInset + 2, 2);
@@ -557,6 +557,8 @@
mCapturedTrack = NULL;
mPopupMenuTarget = NULL;
+// SetBackgroundColour( wxColour( 255,255,255 ));
+
mTimeCount = 0;
mTimer.parent = this;
mTimer.Start(50, FALSE);
@@ -625,7 +627,7 @@
delete mWaveTrackMenu;
delete mNoteTrackMenu;
delete mLabelTrackMenu;
- delete mLabelTrackLabelMenu;
+ delete mLabelTrackInfoMenu;
delete mTimeTrackMenu;
}
@@ -3067,14 +3069,14 @@
wxRect r = mCapturedRect;
wxRect closeRect;
- mTrackLabel.GetCloseBoxRect(r, closeRect);
+ mTrackInfo.GetCloseBoxRect(r, closeRect);
wxClientDC dc(this);
if (event.Dragging())
- mTrackLabel.DrawCloseBox(&dc, r, closeRect.Inside(event.m_x, event.m_y));
+ mTrackInfo.DrawCloseBox(&dc, r, closeRect.Inside(event.m_x, event.m_y));
else if (event.LeftUp()) {
- mTrackLabel.DrawCloseBox(&dc, r, false);
+ mTrackInfo.DrawCloseBox(&dc, r, false);
if (closeRect.Inside(event.m_x, event.m_y)) {
if (!gAudioIO->IsStreamActive(p->GetAudioIOToken()))
RemoveTrack(t);
@@ -3148,12 +3150,12 @@
}
wxRect titleRect;
- mTrackLabel.GetTitleBarRect(r, titleRect);
+ mTrackInfo.GetTitleBarRect(r, titleRect);
wxClientDC dc(this);
if (event.Dragging()) {
- mTrackLabel.DrawTitleBar(&dc, r, t, titleRect.Inside(event.m_x,
event.m_y));
+ mTrackInfo.DrawTitleBar(&dc, r, t, titleRect.Inside(event.m_x,
event.m_y));
}
else if (event.LeftUp()) {
if (titleRect.Inside(event.m_x, event.m_y))
@@ -3163,7 +3165,7 @@
SetCapturedTrack( NULL );
- mTrackLabel.DrawTitleBar(&dc, r, t, false);
+ mTrackInfo.DrawTitleBar(&dc, r, t, false);
}
}
@@ -3180,12 +3182,12 @@
}
wxRect buttonRect;
- mTrackLabel.GetMuteSoloRect(r, buttonRect, solo);
+ mTrackInfo.GetMuteSoloRect(r, buttonRect, solo);
wxClientDC dc(this);
if (event.Dragging()){
- mTrackLabel.DrawMuteSolo(&dc, r, t, buttonRect.Inside(event.m_x,
event.m_y),
+ mTrackInfo.DrawMuteSolo(&dc, r, t, buttonRect.Inside(event.m_x,
event.m_y),
solo);
}
else if (event.LeftUp() )
@@ -3200,7 +3202,7 @@
OnTrackMute(event.ShiftDown(),t);
}
SetCapturedTrack( NULL );
- // mTrackLabel.DrawMuteSolo(&dc, r, t, false, solo);
+ // mTrackInfo.DrawMuteSolo(&dc, r, t, false, solo);
Refresh(false);
}
}
@@ -3216,12 +3218,12 @@
}
wxRect buttonRect;
- mTrackLabel.GetMinimizeRect(r, buttonRect, t->GetMinimized());
+ mTrackInfo.GetMinimizeRect(r, buttonRect, t->GetMinimized());
wxClientDC dc(this);
if (event.Dragging()) {
- mTrackLabel.DrawMinimize(&dc, r, t, buttonRect.Inside(event.m_x,
event.m_y), t->GetMinimized());
+ mTrackInfo.DrawMinimize(&dc, r, t, buttonRect.Inside(event.m_x,
event.m_y), t->GetMinimized());
}
else if (event.LeftUp()) {
if (buttonRect.Inside(event.m_x, event.m_y))
@@ -3235,7 +3237,7 @@
SetCapturedTrack( NULL );
- mTrackLabel.DrawMinimize(&dc, r, t, false, t->GetMinimized());
+ mTrackInfo.DrawMinimize(&dc, r, t, false, t->GetMinimized());
Refresh(false);
}
}
@@ -3245,9 +3247,9 @@
LWSlider *slider;
if (pan)
- slider = mTrackLabel.mPans[mCapturedNum];
+ slider = mTrackInfo.mPans[mCapturedNum];
else
- slider = mTrackLabel.mGains[mCapturedNum];
+ slider = mTrackInfo.mGains[mCapturedNum];
slider->OnMouseEvent(event);
@@ -3344,7 +3346,7 @@
else if (t->GetKind() == Track::Note)
{
wxRect midiRect;
- mTrackLabel.GetTrackControlsRect(r, midiRect);
+ mTrackInfo.GetTrackControlsRect(r, midiRect);
if (midiRect.Inside(event.m_x, event.m_y)) {
((NoteTrack *) t)->LabelClick(midiRect, event.m_x, event.m_y,
event.RightDown()
@@ -3443,7 +3445,7 @@
int index, int x, int y)
{
wxRect sliderRect;
- mTrackLabel.GetGainRect(r, sliderRect);
+ mTrackInfo.GetGainRect(r, sliderRect);
if (!sliderRect.Inside(x, y))
return false;
@@ -3459,7 +3461,7 @@
int index, int x, int y)
{
wxRect sliderRect;
- mTrackLabel.GetPanRect(r, sliderRect);
+ mTrackInfo.GetPanRect(r, sliderRect);
if (!sliderRect.Inside(x, y))
return false;
@@ -3478,7 +3480,7 @@
bool solo)
{
wxRect buttonRect;
- mTrackLabel.GetMuteSoloRect(r, buttonRect, solo);
+ mTrackInfo.GetMuteSoloRect(r, buttonRect, solo);
if (!buttonRect.Inside(x, y))
return false;
@@ -3486,14 +3488,14 @@
SetCapturedTrack( t, solo ? IsSoloing : IsMuting);
mCapturedRect = r;
- mTrackLabel.DrawMuteSolo(&dc, r, t, true, solo);
+ mTrackInfo.DrawMuteSolo(&dc, r, t, true, solo);
return true;
}
bool TrackPanel::MinimizeFunc(Track * t, wxRect r, int x, int y)
{
wxRect buttonRect;
- mTrackLabel.GetMinimizeRect(r, buttonRect, t->GetMinimized());
+ mTrackInfo.GetMinimizeRect(r, buttonRect, t->GetMinimized());
if (!buttonRect.Inside(x, y))
return false;
@@ -3501,14 +3503,14 @@
SetCapturedTrack( t, IsMinimizing );
mCapturedRect = r;
- mTrackLabel.DrawMinimize(&dc, r, t, true, t->GetMinimized());
+ mTrackInfo.DrawMinimize(&dc, r, t, true, t->GetMinimized());
return true;
}
bool TrackPanel::CloseFunc(Track * t, wxRect r, int x, int y)
{
wxRect closeRect;
- mTrackLabel.GetCloseBoxRect(r, closeRect);
+ mTrackInfo.GetCloseBoxRect(r, closeRect);
if (!closeRect.Inside(x, y))
return false;
@@ -3517,14 +3519,14 @@
SetCapturedTrack( t, IsClosing );
mCapturedRect = r;
- mTrackLabel.DrawCloseBox(&dc, r, true);
+ mTrackInfo.DrawCloseBox(&dc, r, true);
return true;
}
bool TrackPanel::PopupFunc(Track * t, wxRect r, int x, int y)
{
wxRect titleRect;
- mTrackLabel.GetTitleBarRect(r, titleRect);
+ mTrackInfo.GetTitleBarRect(r, titleRect);
if (!titleRect.Inside(x, y))
return false;
@@ -3532,7 +3534,7 @@
SetCapturedTrack( t, IsPopping );
mCapturedRect = r;
- mTrackLabel.DrawTitleBar(&dc, r, t, true);
+ mTrackInfo.DrawTitleBar(&dc, r, t, true);
return true;
}
@@ -4075,10 +4077,10 @@
if ((lTrack->getSelectedIndex() != -1) &&
lTrack->OverTextBox(lTrack->GetLabel(lTrack->getSelectedIndex()), event.m_x,
event.m_y)) {
mPopupMenuTarget = lTrack;
- mLabelTrackLabelMenu->Enable(OnCutSelectedTextID,
lTrack->IsTextSelected());
- mLabelTrackLabelMenu->Enable(OnCopySelectedTextID,
lTrack->IsTextSelected());
- mLabelTrackLabelMenu->Enable(OnPasteSelectedTextID,
lTrack->IsTextClipSupported());
- PopupMenu(mLabelTrackLabelMenu, event.m_x + 1, event.m_y + 1);
+ mLabelTrackInfoMenu->Enable(OnCutSelectedTextID,
lTrack->IsTextSelected());
+ mLabelTrackInfoMenu->Enable(OnCopySelectedTextID,
lTrack->IsTextSelected());
+ mLabelTrackInfoMenu->Enable(OnPasteSelectedTextID,
lTrack->IsTextClipSupported());
+ PopupMenu(mLabelTrackInfoMenu, event.m_x + 1, event.m_y + 1);
// it's an invalid dragging event
lTrack->SetWrongDragging(true);
}
@@ -4557,7 +4559,7 @@
// Paint over the part below the tracks
GetSize(&trackRect.width, &trackRect.height);
- AColor::Dark(dc, false);
+ AColor::TrackPanelBackground(dc, false);
dc->DrawRectangle(trackRect);
if (GetFocusedTrack() != NULL && wxWindow::FindFocus() == this) {
@@ -4585,7 +4587,7 @@
trackRect.height = t->GetHeight();
// Draw label area
- SetLabelFont(dc);
+ SetTrackInfoFont(dc);
dc->SetTextForeground(theTheme.Colour( clrTrackPanelText ));
int labelw = GetLabelWidth();
@@ -4617,6 +4619,7 @@
wxPrintf(wxT("Update Region: %d %d %d %d\n"),
rbox.x, rbox.y, rbox.width, rbox.height);
#endif
+
wxRegionContain contain = region.Contains(0, 0, GetLeftOffset(), height);
if (contain == wxPartRegion || contain == wxInRegion) {
r = trackRect;
@@ -4679,7 +4682,6 @@
wxRect r = rec;
DrawOutsideOfTrack(t, dc, r);
-
r.x += kLeftInset;
r.y += kTopInset;
r.width -= kLeftInset * 2;
@@ -4687,21 +4689,23 @@
mLastDrawnTrackRect = r;
- mTrackLabel.DrawBackground(dc, r, t->GetSelected(), labelw);
+ dc->SetTextForeground(theTheme.Colour( clrTrackPanelText ));
+ mTrackInfo.DrawBackground(dc, r, t->GetSelected(), labelw);
DrawBordersAroundTrack(t, dc, r, labelw, vrul);
DrawShadow(t, dc, r);
- r.width = mTrackLabel.GetTitleWidth();
- mTrackLabel.DrawCloseBox(dc, r, (mMouseCapture==IsClosing));
- mTrackLabel.DrawTitleBar(dc, r, t, (mMouseCapture==IsPopping));
+ r.width = mTrackInfo.GetTitleWidth();
+ mTrackInfo.DrawCloseBox(dc, r, (mMouseCapture==IsClosing));
+ mTrackInfo.DrawTitleBar(dc, r, t, (mMouseCapture==IsPopping));
- mTrackLabel.DrawMinimize(dc, r, t, (mMouseCapture==IsMinimizing),
t->GetMinimized());
+ mTrackInfo.DrawMinimize(dc, r, t, (mMouseCapture==IsMinimizing),
t->GetMinimized());
+ mTrackInfo.DrawBordersWithin( dc, r );
if (t->GetKind() == Track::Wave) {
- mTrackLabel.DrawMuteSolo(dc, r, t, (mMouseCapture == IsMuting), false);
- mTrackLabel.DrawMuteSolo(dc, r, t, (mMouseCapture == IsSoloing), true);
+ mTrackInfo.DrawMuteSolo(dc, r, t, (mMouseCapture == IsMuting), false);
+ mTrackInfo.DrawMuteSolo(dc, r, t, (mMouseCapture == IsSoloing), true);
- mTrackLabel.DrawSliders(dc, (WaveTrack *)t, r, index);
+ mTrackInfo.DrawSliders(dc, (WaveTrack *)t, r, index);
}
r = trackRect;
@@ -4721,7 +4725,7 @@
} else if (t->GetKind() == Track::Note) {
wxRect midiRect;
- mTrackLabel.GetTrackControlsRect(trackRect, midiRect);
+ mTrackInfo.GetTrackControlsRect(trackRect, midiRect);
((NoteTrack *) t)->DrawLabelControls(*dc, midiRect);
}
@@ -4730,7 +4734,7 @@
void TrackPanel::DrawOutsideOfTrack(Track * t, wxDC * dc, const wxRect r)
{
// Fill in area outside of the track
- AColor::Dark(dc, false);
+ AColor::TrackPanelBackground(dc, false);
wxRect side = r;
side.width = kLeftInset;
dc->DrawRectangle(side);
@@ -5192,7 +5196,7 @@
int tracknum = FindTrackNum(t);
if(tracknum)
{
- LWSlider *slider = mTrackLabel.mPans[tracknum-1];
+ LWSlider *slider = mTrackInfo.mPans[tracknum-1];
if( slider->ShowDialog() )
{
SetTrackPan(t, slider);
@@ -5209,7 +5213,7 @@
int tracknum = FindTrackNum(t);
if(tracknum)
{
- LWSlider *slider = mTrackLabel.mPans[tracknum-1];
+ LWSlider *slider = mTrackInfo.mPans[tracknum-1];
slider->Decrease( 1 );
SetTrackPan(t, slider);
}
@@ -5224,7 +5228,7 @@
int tracknum = FindTrackNum(t);
if(tracknum)
{
- LWSlider *slider = mTrackLabel.mPans[tracknum-1];
+ LWSlider *slider = mTrackInfo.mPans[tracknum-1];
slider->Increase( 1 );
SetTrackPan(t, slider);
}
@@ -5254,7 +5258,7 @@
int tracknum = FindTrackNum(t);
if(tracknum)
{
- LWSlider *slider = mTrackLabel.mGains[tracknum-1];
+ LWSlider *slider = mTrackInfo.mGains[tracknum-1];
if( slider->ShowDialog() )
{
SetTrackGain(t, slider);
@@ -5271,7 +5275,7 @@
int tracknum = FindTrackNum(t);
if(tracknum)
{
- LWSlider *slider = mTrackLabel.mGains[tracknum-1];
+ LWSlider *slider = mTrackInfo.mGains[tracknum-1];
slider->Increase( 1 );
SetTrackGain(t, slider);
}
@@ -5286,7 +5290,7 @@
int tracknum = FindTrackNum(t);
if(tracknum)
{
- LWSlider *slider = mTrackLabel.mGains[tracknum-1];
+ LWSlider *slider = mTrackInfo.mGains[tracknum-1];
slider->Decrease( 1 );
SetTrackGain(t, slider);
}
@@ -5374,7 +5378,7 @@
//We need to find the location of the menu rectangle.
wxRect r = FindTrackRect(t,true);
wxRect titleRect;
- mTrackLabel.GetTitleBarRect(r,titleRect);
+ mTrackInfo.GetTitleBarRect(r,titleRect);
PopupMenu(theMenu, titleRect.x + 1,
titleRect.y + titleRect.height + 1);
@@ -5573,8 +5577,8 @@
dc->DrawLine(r.x, r.y, r.x, r.y + r.height - 1); // left
dc->DrawLine(r.x, r.y + r.height - 2, r.x + r.width - 1, r.y + r.height -
2); // bottom
dc->DrawLine(r.x + r.width - 2, r.y, r.x + r.width - 2, r.y + r.height -
1); // right
- dc->DrawLine(vrul, r.y, vrul, r.y + r.height - 1);
- dc->DrawLine(labelw, r.y, labelw, r.y + r.height - 1); // between
vruler and track
+// dc->DrawLine(vrul, r.y, vrul, r.y + r.height - 1); // between vrulr and
track.
+ dc->DrawLine(labelw, r.y, labelw, r.y + r.height - 1); // between
vruler and TrackInfo
if (t->GetLinked()) {
int h1 = r.y + t->GetHeight() - kTopInset;
@@ -5582,9 +5586,6 @@
dc->DrawLine(vrul, h1 + kTopInset, r.x + r.width - 1,
h1 + kTopInset);
}
-
- dc->DrawLine(r.x, r.y + 16, mTrackLabel.GetTitleWidth(), r.y + 16); //
title bar
- dc->DrawLine(r.x + 16, r.y, r.x + 16, r.y + 16); // close box
}
void TrackPanel::DrawShadow(Track * /* t */ , wxDC * dc, const wxRect r)
@@ -6283,12 +6284,12 @@
/**********************************************************************
- TrackLabel code is destined to move out of this file.
+ TrackInfo code is destined to move out of this file.
Code should become a lot cleaner when we have sizers.
**********************************************************************/
-TrackLabel::TrackLabel(wxWindow * pParentIn)
+TrackInfo::TrackInfo(wxWindow * pParentIn)
{
//To prevent flicker, we create an initial set of 16 sliders
//which won't ever be shown.
@@ -6298,7 +6299,7 @@
MakeMoreSliders();
}
-TrackLabel::~TrackLabel()
+TrackInfo::~TrackInfo()
{
unsigned int i;
for(i=0; i<mGains.Count(); i++)
@@ -6307,7 +6308,7 @@
delete mPans[i];
}
-void TrackLabel::GetCloseBoxRect(const wxRect r, wxRect & dest) const
+void TrackInfo::GetCloseBoxRect(const wxRect r, wxRect & dest) const
{
dest.x = r.x;
dest.y = r.y;
@@ -6315,7 +6316,7 @@
dest.height = 16;
}
-void TrackLabel::GetTitleBarRect(const wxRect r, wxRect & dest) const
+void TrackInfo::GetTitleBarRect(const wxRect r, wxRect & dest) const
{
dest.x = r.x + 16;
dest.y = r.y;
@@ -6323,7 +6324,7 @@
dest.height = 16;
}
-void TrackLabel::GetMuteSoloRect(const wxRect r, wxRect & dest, bool solo)
const
+void TrackInfo::GetMuteSoloRect(const wxRect r, wxRect & dest, bool solo) const
{
dest.x = r.x + 8;
dest.y = r.y + 50;
@@ -6334,7 +6335,7 @@
dest.x += 36 + 8;
}
-void TrackLabel::GetGainRect(const wxRect r, wxRect & dest) const
+void TrackInfo::GetGainRect(const wxRect r, wxRect & dest) const
{
dest.x = r.x + 7;
dest.y = r.y + 70;
@@ -6342,7 +6343,7 @@
dest.height = 25;
}
-void TrackLabel::GetPanRect(const wxRect r, wxRect & dest) const
+void TrackInfo::GetPanRect(const wxRect r, wxRect & dest) const
{
dest.x = r.x + 7;
dest.y = r.y + 100;
@@ -6350,27 +6351,36 @@
dest.height = 25;
}
-void TrackLabel::GetMinimizeRect(const wxRect r, wxRect &dest, bool minimized)
const
+void TrackInfo::GetMinimizeRect(const wxRect r, wxRect &dest, bool minimized)
const
{
- dest.x = r.x + 2;
- dest.width = 92;
+ dest.x = r.x + 1;
+ dest.width = 94;
dest.y = r.y + r.height - 18;
- dest.height = 14;
+ dest.height = 15;
}
-void TrackLabel::DrawBackground(wxDC * dc, const wxRect r, bool bSelected,
+void TrackInfo::DrawBordersWithin(wxDC * dc, const wxRect r )
+{
+ dc->SetPen(*wxBLACK_PEN);
+ // These black lines are actually within TrackInfo...
+ dc->DrawLine(r.x, r.y + 16, GetTitleWidth(), r.y + 16); // title bar
+ dc->DrawLine(r.x + 16, r.y, r.x + 16, r.y + 16); // close box
+ dc->DrawLine(r.x, r.y + r.height - 19, GetTitleWidth(), r.y + r.height -
19); // minimize bar
+}
+
+void TrackInfo::DrawBackground(wxDC * dc, const wxRect r, bool bSelected,
const int labelw)
{
// fill in label
wxRect fill = r;
fill.width = labelw - r.x;
- AColor::Medium(dc, bSelected);
- dc->DrawRectangle(fill);
- fill=wxRect( r.x+1, r.y+17, fill.width - 38, fill.height-20);
- AColor::Bevel( *dc, true, fill );
+ AColor::MediumTrackInfo(dc, bSelected);
+ dc->DrawRectangle(fill);
+ fill=wxRect( r.x+1, r.y+17, fill.width - 38, fill.height-37);
+ AColor::BevelTrackInfo( *dc, true, fill );
}
-void TrackLabel::GetTrackControlsRect(const wxRect r, wxRect & dest) const
+void TrackInfo::GetTrackControlsRect(const wxRect r, wxRect & dest) const
{
wxRect top;
wxRect bot;
@@ -6384,12 +6394,18 @@
dest.height = bot.GetTop() - top.GetBottom() - 2;
}
-void TrackLabel::DrawCloseBox(wxDC * dc, const wxRect r, bool down)
+void TrackInfo::DrawCloseBox(wxDC * dc, const wxRect r, bool down)
{
const int xSize=7;
const int offset=5;
+#ifdef EXPERIMENTAL_THEMING
+ wxPen pen( theTheme.Colour( clrTrackPanelText ));
+ dc->SetPen( pen );
+#else
dc->SetPen(*wxBLACK_PEN);
+#endif
+
// close "x"
dc->DrawLine(r.x + offset , r.y + offset, r.x + offset+xSize ,
r.y + offset+xSize);
dc->DrawLine(r.x + offset+1, r.y + offset, r.x + offset+xSize+1,
r.y + offset+xSize);
@@ -6398,10 +6414,10 @@
wxRect bev;
GetCloseBoxRect(r, bev);
bev.Inflate(-1, -1);
- AColor::Bevel(*dc, !down, bev);
+ AColor::BevelTrackInfo(*dc, !down, bev);
}
-void TrackLabel::DrawTitleBar(wxDC * dc, const wxRect r, Track * t,
+void TrackInfo::DrawTitleBar(wxDC * dc, const wxRect r, Track * t,
bool down)
{
wxRect bev;
@@ -6409,7 +6425,7 @@
bev.Inflate(-1, -1);
// Draw title text
- SetLabelFont(dc);
+ SetTrackInfoFont(dc);
wxString titleStr = t->GetName();
int allowableWidth = GetTitleWidth() - 38 - kLeftInset;
long textWidth, textHeight;
@@ -6422,12 +6438,18 @@
// characters if they are repeatedly drawn. This
// happens when holding down mouse button and moving
// in and out of the title bar. So clear it first.
- AColor::Medium(dc, t->GetSelected());
+ AColor::MediumTrackInfo(dc, t->GetSelected());
dc->DrawRectangle(bev);
dc->DrawText(titleStr, r.x + 19, r.y + 2);
// Pop-up triangle
+#ifdef EXPERIMENTAL_THEMING
+ wxPen pen( theTheme.Colour( clrTrackPanelText ));
+ dc->SetPen( pen );
+#else
dc->SetPen(*wxBLACK_PEN);
+#endif
+
int xx = r.x + GetTitleWidth() - 16 - kLeftInset;
int yy = r.y + 5;
int triWid = 11;
@@ -6438,11 +6460,11 @@
triWid -= 2;
}
- AColor::Bevel(*dc, !down, bev);
+ AColor::BevelTrackInfo(*dc, !down, bev);
}
/// Draw the Mute or the Solo button, depending on the value of solo.
-void TrackLabel::DrawMuteSolo(wxDC * dc, const wxRect r, Track * t,
+void TrackInfo::DrawMuteSolo(wxDC * dc, const wxRect r, Track * t,
bool down, bool solo)
{
wxRect bev;
@@ -6452,18 +6474,34 @@
if (bev.y + bev.height >= r.y + r.height - 19)
return; // don't draw mute and solo buttons, because they don't fit into
track label
- (solo) ? AColor::Solo(dc, t->GetSolo(), t->GetSelected()) :
- AColor::Mute(dc, t->GetMute(), t->GetSelected(), t->GetSolo());
+ AColor::MediumTrackInfo( dc, t->GetSelected() );
+ if( solo )
+ {
+ if( t->GetSolo() )
+ {
+ AColor::Solo(dc, t->GetSolo(), t->GetSelected());
+ }
+ }
+ else
+ {
+ if( t->GetMute() )
+ {
+ AColor::Mute(dc, t->GetMute(), t->GetSelected(), t->GetSolo());
+ }
+ }
+ //(solo) ? AColor::Solo(dc, t->GetSolo(), t->GetSelected()) :
+ // AColor::Mute(dc, t->GetMute(), t->GetSelected(), t->GetSolo());
+ dc->SetPen( *wxTRANSPARENT_PEN );//No border!
dc->DrawRectangle(bev);
long textWidth, textHeight;
wxString str = (solo) ? _("Solo") : _("Mute");
- SetLabelFont(dc);
+ SetTrackInfoFont(dc);
dc->GetTextExtent(str, &textWidth, &textHeight);
dc->DrawText(str, bev.x + (bev.width - textWidth) / 2, bev.y);
- AColor::Bevel(*dc, (solo?t->GetSolo():t->GetMute()) == down, bev);
+ AColor::BevelTrackInfo(*dc, (solo?t->GetSolo():t->GetMute()) == down, bev);
if (solo && !down) {
// Update the mute button, which may be grayed out depending on
@@ -6472,15 +6510,14 @@
}
}
-void TrackLabel::DrawMinimize(wxDC * dc, const wxRect r, Track * t, bool down,
bool minimized)
+void TrackInfo::DrawMinimize(wxDC * dc, const wxRect r, Track * t, bool down,
bool minimized)
{
wxRect bev;
GetMinimizeRect(r, bev, minimized);
- AColor::Solo(dc, false, t->GetSelected());
+ AColor::MediumTrackInfo(dc, t->GetSelected());
dc->DrawRectangle(bev);
- AColor::Dark(dc, t->GetSelected());
// Calculate center
int x = bev.x + bev.width / 2;
@@ -6506,13 +6543,22 @@
pts[2].x = x - 4;
pts[2].y = y + 3;
}
+
+#ifdef EXPERIMENTAL_THEMING
+ wxPen pen( theTheme.Colour( clrTrackPanelText ));
+ wxBrush brush( theTheme.Colour( clrTrackPanelText ));
+ dc->SetPen( pen );
+ dc->SetBrush( brush );
+#else
+ AColor::Dark(dc, t->GetSelected());
+#endif
dc->DrawPolygon(3, pts);
- AColor::Bevel(*dc, !down, bev);
+ AColor::BevelTrackInfo(*dc, !down, bev);
}
-void TrackLabel::MakeMoreSliders()
+void TrackInfo::MakeMoreSliders()
{
wxRect r(0, 0, 1000, 1000);
wxRect gainRect;
@@ -6536,14 +6582,14 @@
mPans.Add(slider);
}
-void TrackLabel::EnsureSufficientSliders(int index)
+void TrackInfo::EnsureSufficientSliders(int index)
{
while (mGains.Count() < (unsigned int)index+1 ||
mPans.Count() < (unsigned int)index+1)
MakeMoreSliders();
}
-void TrackLabel::DrawSliders(wxDC *dc, WaveTrack *t, wxRect r, int index)
+void TrackInfo::DrawSliders(wxDC *dc, WaveTrack *t, wxRect r, int index)
{
wxRect gainRect;
wxRect panRect;
Index: Project.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Project.cpp,v
retrieving revision 1.315
retrieving revision 1.316
diff -u -d -r1.315 -r1.316
--- Project.cpp 18 Jun 2007 16:10:54 -0000 1.315
+++ Project.cpp 5 Jul 2007 11:55:35 -0000 1.316
@@ -663,6 +663,12 @@
wxNO_BORDER);
mMainPanel->SetSizer( new wxBoxSizer(wxVERTICAL) );
pPage = mMainPanel;
+ // Set the colour here to the track panel background to avoid
+ // flicker when Audacity starts up.
+ // However, that leads to areas next to the horizontal scroller
+ // being painted in background colour and not scroller background
+ // colour, so suppress this for now.
+ //pPage->SetBackgroundColour( theTheme.Colour( clrDark ));
#endif
wxBoxSizer *bs = new wxBoxSizer( wxVERTICAL );
Index: Theme.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Theme.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- Theme.cpp 18 Jun 2007 16:10:54 -0000 1.30
+++ Theme.cpp 5 Jul 2007 11:55:36 -0000 1.31
@@ -66,6 +66,7 @@
#include "toolbars/ControlToolBar.h"
#include "ImageManipulation.h"
#include "Theme.h"
+#include "Experimental.h"
#include "AllThemeResources.h" // can remove this later, only needed for
'XPMS_RETIRED'.
#include "FileNames.h"
#include "Prefs.h"
@@ -836,6 +837,7 @@
}
}
+// return true; //To not load colours..
// Now load the colours.
int x,y;
mFlow.SetNewGroup(1);
Index: Experimental.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Experimental.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- Experimental.h 5 Jul 2007 00:49:50 -0000 1.10
+++ Experimental.h 5 Jul 2007 11:55:35 -0000 1.11
@@ -30,11 +30,17 @@
//Uncomment the next #define to enable experimental features.
//#define EXPERIMENTAL_FEATURES
+// In standard builds, enable the next two lines if you want to
+// see 'experimental theming'. Work in progress, 05-July-2007.
+//#define EXPERIMENTAL_THEMING
+//#define EXPERIMENTAL_THEME_PREFS
+
// JKC July-2007: We're temporarily using EXPERIMENTAL_MODULES to
// switch on all experimental features.
#ifdef EXPERIMENTAL_MODULES
#define EXPERIMENTAL_THEMING
#define EXPERIMENTAL_THEME_PREFS
+#define EXPERIMENTAL_SMART_RECORD
#endif
//#define RIGHT_ALIGNED_TEXTBOXES
Index: AllThemeResources.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/AllThemeResources.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- AllThemeResources.h 6 Nov 2006 05:36:45 -0000 1.7
+++ AllThemeResources.h 5 Jul 2007 11:55:35 -0000 1.8
@@ -202,6 +202,7 @@
DEFINE_IMAGE( bmpAudacityLogo, wxImage( 215, 190 ), wxT("AudacityLogo"));
DEFINE_IMAGE( bmpAudacityLogo48x48, wxImage( 48, 48 ),
wxT("AudacityLogo48x48"));
+#ifdef OLD_COLOURS
DEFINE_COLOUR( clrBlank, wxColour(214, 214, 214), wxT("Blank"));
DEFINE_COLOUR( clrUnselected, wxColour(192, 192, 192), wxT("Unselected"));
DEFINE_COLOUR( clrSelected, wxColour(148, 148, 170), wxT("Selected"));
@@ -213,9 +214,23 @@
DEFINE_COLOUR( clrRms, wxColour(100, 100, 220), wxT("Rms"));
DEFINE_COLOUR( clrMuteRms, wxColour(136, 136, 144), wxT("MuteRms"));
DEFINE_COLOUR( clrShadow, wxColour(148, 148, 148), wxT("Shadow"));
+#endif
+ DEFINE_COLOUR( clrBlank, wxColour( 64, 64, 64), wxT("Blank"));
+ DEFINE_COLOUR( clrUnselected, wxColour( 30, 30, 30), wxT("Unselected"));
+ DEFINE_COLOUR( clrSelected, wxColour( 93, 65, 93), wxT("Selected"));
+ DEFINE_COLOUR( clrSample, wxColour( 63, 77, 155), wxT("Sample"));
+ DEFINE_COLOUR( clrSelSample, wxColour( 50, 50, 200), wxT("SelSample"));
+ DEFINE_COLOUR( clrDragSample, wxColour( 0, 100, 0), wxT("DragSample"));
+
+ DEFINE_COLOUR( clrMuteSample, wxColour(136, 136, 144), wxT("MuteSample"));
+ DEFINE_COLOUR( clrRms, wxColour(107, 154, 247), wxT("Rms"));
+ DEFINE_COLOUR( clrMuteRms, wxColour(136, 136, 144), wxT("MuteRms"));
+ DEFINE_COLOUR( clrShadow, wxColour(148, 148, 148), wxT("Shadow"));
+
+
DEFINE_COLOUR( clrAboutBoxBackground, wxColour(255, 255, 255),
wxT("AboutBackground"));
- DEFINE_COLOUR( clrTrackPanelText, wxColour( 0, 0, 0),
wxT("TrackPanelText"));
+ DEFINE_COLOUR( clrTrackPanelText, wxColour(153, 153, 153),
wxT("TrackPanelText"));
DEFINE_COLOUR( clrLabelTrackText, wxColour( 0, 0, 0),
wxT("LabelTrackText"));
@@ -237,7 +252,7 @@
DEFINE_COLOUR( clrMeterOutputLightPen, wxColour(153, 255, 153),
wxT("MeterOutputLightPen") );
DEFINE_COLOUR( clrMeterOutputDarkPen, wxColour(61, 164, 61),
wxT("MeterOutputDarkPen") );
- DEFINE_COLOUR( clrRulerBackground, wxColour(148, 148, 170),
wxT("RulerBackground") );
+ DEFINE_COLOUR( clrRulerBackground, wxColour( 93, 65, 93),
wxT("RulerBackground") );
DEFINE_COLOUR( clrAxisLines, wxColour(0, 0, 255),
wxT("AxisLines") );
DEFINE_COLOUR( clrGraphLines, wxColour(110, 110, 220),
wxT("GraphLines") );
DEFINE_COLOUR( clrResponseLines, wxColour(0, 255, 0),
wxT("ResponseLines") );
@@ -273,6 +288,29 @@
DEFINE_COLOUR( clrLabelSelectedPen, wxColour( 148,148,170),
wxT("LabelSelectedPen") );
DEFINE_COLOUR( clrLabelSurroundPen, wxColour( 0, 0, 0),
wxT("LabelSurroundPen") );
+#ifdef EXPERIMENTAL_THEMING
+ DEFINE_COLOUR( clrTrackFocus0, wxColour( 200, 200, 200),
wxT("TrackFocus0") );
+ DEFINE_COLOUR( clrTrackFocus1, wxColour( 180, 180, 180),
wxT("TrackFocus1") );
+ DEFINE_COLOUR( clrTrackFocus2, wxColour( 160, 160, 160),
wxT("TrackFocus2") );
+#else
+ DEFINE_COLOUR( clrTrackFocus0, wxColour( 255, 255, 128),
wxT("TrackFocus0") );
+ DEFINE_COLOUR( clrTrackFocus1, wxColour( 215, 215, 138),
wxT("TrackFocus1") );
+ DEFINE_COLOUR( clrTrackFocus2, wxColour( 185, 185, 142),
wxT("TrackFocus2") );
+#endif
+
+ DEFINE_COLOUR( clrSnapGuide, wxColour( 255, 255, 0),
wxT("SnapGuide") );
+ DEFINE_COLOUR( clrTrackInfo, wxColour( 64, 64, 64),
wxT("TrackInfo") );
+ DEFINE_COLOUR( clrTrackInfoSelected, wxColour( 93, 65, 93),
wxT("TrackInfoSelected") );
+
+ DEFINE_COLOUR( clrLight, wxColour( 60, 60, 60),
wxT("Light") );
+ DEFINE_COLOUR( clrMedium, wxColour( 43, 43, 43),
wxT("Medium") );
+ DEFINE_COLOUR( clrDark, wxColour( 20, 20, 20),
wxT("Dark") );
+
+ DEFINE_COLOUR( clrLightSelected, wxColour( 93, 65, 93),
wxT("LightSelected") );
+ DEFINE_COLOUR( clrMediumSelected, wxColour( 93, 43, 93),
wxT("MediumSelected") );
+ DEFINE_COLOUR( clrDarkSelected, wxColour( 93, 20, 93),
wxT("DarkSelected") );
+
+
// Indentation settings for Vim and Emacs and unique identifier for Arch, a
// version control system. Please do not modify past this point.
//
Index: AColor.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/AColor.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- AColor.cpp 18 Jun 2007 16:10:53 -0000 1.23
+++ AColor.cpp 5 Jul 2007 11:55:34 -0000 1.24
@@ -23,6 +23,7 @@
#include "AColor.h"
#include "Theme.h"
+#include "../Experimental.h"
#include "AllThemeResources.h"
bool AColor::inited = false;
@@ -58,6 +59,12 @@
wxBrush AColor::tooltipBrush;
+// The spare pen and brush possibly help us cut down on the
+// number of pens and brushes we need.
+wxPen AColor::sparePen;
+wxBrush AColor::spareBrush;
+
+
//
// Draws a focus rectangle (Taken directly from wxWidgets source)
//
@@ -115,6 +122,50 @@
dc.DrawLine(r.x, r.y + r.height, r.x + r.width + 1, r.y + r.height);
}
+wxColour Blend( const wxColour & c1, wxColour & c2 )
+{
+ wxColour c3(
+ (c1.Red() + c2.Red())/2,
+ (c1.Green() + c2.Green())/2,
+ (c1.Blue() + c2.Blue())/2);
+ return c3;
+}
+
+void AColor::BevelTrackInfo(wxDC & dc, bool up, wxRect & r)
+{
+#ifndef EXPERIMENTAL_THEMING
+ Bevel( dc, up, r );
+#else
+ wxColour col;
+ col = Blend( theTheme.Colour( clrTrackInfo ), up ? wxColour(
255,255,255):wxColour(0,0,0));
+
+ wxPen pen( col );
+ dc.SetPen( pen );
+
+ dc.DrawLine(r.x, r.y, r.x + r.width, r.y);
+ dc.DrawLine(r.x, r.y, r.x, r.y + r.height);
+
+ col = Blend( theTheme.Colour( clrTrackInfo ), up ? wxColour(0,0,0):
wxColour(255,255,255));
+
+ pen.SetColour( col );
+ dc.SetPen( pen );
+
+ dc.DrawLine(r.x + r.width, r.y, r.x + r.width, r.y + r.height);
+ dc.DrawLine(r.x, r.y + r.height, r.x + r.width + 1, r.y + r.height);
+#endif
+}
+
+void AColor::UseThemeColour( wxDC * dc, int iIndex )
+{
+ if (!inited)
+ Init();
+ wxColour col = theTheme.Colour( iIndex );
+ spareBrush.SetColour( col );
+ dc->SetBrush( spareBrush );
+ sparePen.SetColour( col );
+ dc->SetPen( sparePen );
+}
+
void AColor::Light(wxDC * dc, bool selected)
{
if (!inited)
@@ -133,6 +184,25 @@
dc->SetPen(mediumPen[index]);
}
+#if 0
+#ifdef EXPERIMENTAL_THEMING
+ UseThemeColour( dc, selected ? clrMediumSelected : clrMedium);
+#endif
+#ifdef EXPERIMENTAL_THEMING
+ UseThemeColour( dc, selected ? clrLightSelected : clrLight);
+#endif
+#endif
+
+void AColor::MediumTrackInfo(wxDC * dc, bool selected)
+{
+#ifdef EXPERIMENTAL_THEMING
+ UseThemeColour( dc, selected ? clrTrackInfoSelected : clrTrackInfo);
+#else
+ Medium( dc, selected );
+#endif
+}
+
+
void AColor::Dark(wxDC * dc, bool selected)
{
if (!inited)
@@ -142,6 +212,16 @@
dc->SetPen(darkPen[index]);
}
+void AColor::TrackPanelBackground(wxDC * dc, bool selected)
+{
+#ifdef EXPERIMENTAL_THEMING
+ UseThemeColour( dc, selected ? clrDarkSelected : clrDark);
+#else
+ Dark( dc, selected );
+#endif
+}
+
+
void AColor::CursorColor(wxDC * dc)
{
if (!inited)
@@ -263,13 +343,13 @@
tooltipBrush.SetColour(
wxSystemSettingsNative::GetColour(wxSYS_COLOUR_INFOBK) );
// A tiny gradient of yellow surrounding the current focused track
- trackFocusPens[0].SetColour(255, 255, 128);
- trackFocusPens[1].SetColour(215, 215, 138);
- trackFocusPens[2].SetColour(185, 185, 142);
+ theTheme.SetPenColour( trackFocusPens[0], clrTrackFocus0);
+ theTheme.SetPenColour( trackFocusPens[1], clrTrackFocus1);
+ theTheme.SetPenColour( trackFocusPens[2], clrTrackFocus2);
// A vertical line indicating that the selection or sliding has
// been snapped to the nearest boundary.
- snapGuidePen.SetColour(255, 255, 0);
+ theTheme.SetPenColour( snapGuidePen, clrSnapGuide);
#if defined(__WXMSW__) || defined(__WXGTK__)
// unselected
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Audacity-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/audacity-cvs