mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-17 08:30:06 +02:00
status bar state field. When you move to the menubar, the state field is no longer cleared. This was achieved by introducing a dummy field of width 0. When you first open a new audacity project, the state is stopped - previously the state only appeared after the first play/pause/etc command.
This commit is contained in:
parent
14b8607017
commit
391bd1691c
@ -781,7 +781,14 @@ AudacityProject::AudacityProject(wxWindow * parent, wxWindowID id,
|
|||||||
mMenuClose(false)
|
mMenuClose(false)
|
||||||
, mbInitializingScrollbar(false)
|
, mbInitializingScrollbar(false)
|
||||||
{
|
{
|
||||||
mStatusBar = CreateStatusBar(3);
|
// Note that the first field of the status bar is a dummy, and it's width is set
|
||||||
|
// to zero latter in the code. This field is needed for wxWidgets 2.8.12 because
|
||||||
|
// if you move to the menu bar, the first field of the menu bar is cleared, which
|
||||||
|
// is undesirable behaviour.
|
||||||
|
// In addition, the help strings of menu items are by default sent to the first
|
||||||
|
// field. Currently there are no such help strings, but it they were introduced, then
|
||||||
|
// there would need to be an event handler to send them to the appropriate field.
|
||||||
|
mStatusBar = CreateStatusBar(4);
|
||||||
|
|
||||||
wxGetApp().SetMissingAliasedFileWarningShouldShow(true);
|
wxGetApp().SetMissingAliasedFileWarningShouldShow(true);
|
||||||
|
|
||||||
@ -1014,11 +1021,12 @@ AudacityProject::AudacityProject(wxWindow * parent, wxWindowID id,
|
|||||||
|
|
||||||
mTrackFactory = new TrackFactory(mDirManager);
|
mTrackFactory = new TrackFactory(mDirManager);
|
||||||
|
|
||||||
int widths[] = {GetControlToolBar()->WidthForStatusBar(), -2, -1};
|
int widths[] = {0, GetControlToolBar()->WidthForStatusBar(mStatusBar), -2, -1};
|
||||||
mStatusBar->SetStatusWidths(3, widths);
|
mStatusBar->SetStatusWidths(4, widths);
|
||||||
wxString msg = wxString::Format(_("Welcome to Audacity version %s"),
|
wxString msg = wxString::Format(_("Welcome to Audacity version %s"),
|
||||||
AUDACITY_VERSION_STRING);
|
AUDACITY_VERSION_STRING);
|
||||||
mStatusBar->SetStatusText(msg, 1);
|
mStatusBar->SetStatusText(msg, mainStatusBarField);
|
||||||
|
mStatusBar->SetStatusText(GetControlToolBar()->StateForStatusBar(), stateStatusBarField);
|
||||||
mLastStatusUpdateTime = ::wxGetUTCTime();
|
mLastStatusUpdateTime = ::wxGetUTCTime();
|
||||||
|
|
||||||
mTimer = new wxTimer(this, AudacityProjectTimerID);
|
mTimer = new wxTimer(this, AudacityProjectTimerID);
|
||||||
@ -3527,7 +3535,7 @@ bool AudacityProject::Save(bool overwrite /* = true */ ,
|
|||||||
wxRemoveFile(safetyFileName);
|
wxRemoveFile(safetyFileName);
|
||||||
|
|
||||||
mStatusBar->SetStatusText(wxString::Format(_("Saved %s"),
|
mStatusBar->SetStatusText(wxString::Format(_("Saved %s"),
|
||||||
mFileName.c_str()), 1);
|
mFileName.c_str()), mainStatusBarField);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -4345,7 +4353,7 @@ void AudacityProject::OnTimer(wxTimerEvent& WXUNUSED(event))
|
|||||||
else
|
else
|
||||||
msg.Printf(_("Out of disk space"));
|
msg.Printf(_("Out of disk space"));
|
||||||
|
|
||||||
mStatusBar->SetStatusText(msg, 1);
|
mStatusBar->SetStatusText(msg, mainStatusBarField);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(ODManager::IsInstanceCreated())
|
else if(ODManager::IsInstanceCreated())
|
||||||
@ -4366,7 +4374,7 @@ void AudacityProject::OnTimer(wxTimerEvent& WXUNUSED(event))
|
|||||||
|
|
||||||
|
|
||||||
msg.Printf(_("On-demand import and waveform calculation complete."));
|
msg.Printf(_("On-demand import and waveform calculation complete."));
|
||||||
mStatusBar->SetStatusText(msg, 1);
|
mStatusBar->SetStatusText(msg, mainStatusBarField);
|
||||||
|
|
||||||
}
|
}
|
||||||
else if(numTasks>1)
|
else if(numTasks>1)
|
||||||
@ -4377,7 +4385,7 @@ void AudacityProject::OnTimer(wxTimerEvent& WXUNUSED(event))
|
|||||||
ratioComplete*100.0);
|
ratioComplete*100.0);
|
||||||
|
|
||||||
|
|
||||||
mStatusBar->SetStatusText(msg, 1);
|
mStatusBar->SetStatusText(msg, mainStatusBarField);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4566,7 +4574,7 @@ void AudacityProject::EditClipboardByLabel( WaveTrack::EditDestFunction action )
|
|||||||
// TrackPanel callback method
|
// TrackPanel callback method
|
||||||
void AudacityProject::TP_DisplayStatusMessage(wxString msg)
|
void AudacityProject::TP_DisplayStatusMessage(wxString msg)
|
||||||
{
|
{
|
||||||
mStatusBar->SetStatusText(msg, 1);
|
mStatusBar->SetStatusText(msg, mainStatusBarField);
|
||||||
mLastStatusUpdateTime = ::wxGetUTCTime();
|
mLastStatusUpdateTime = ::wxGetUTCTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4813,9 +4821,9 @@ void AudacityProject::OnAudioIORate(int rate)
|
|||||||
display = wxString::Format(_("Actual Rate: %d"), rate);
|
display = wxString::Format(_("Actual Rate: %d"), rate);
|
||||||
int x, y;
|
int x, y;
|
||||||
mStatusBar->GetTextExtent(display, &x, &y);
|
mStatusBar->GetTextExtent(display, &x, &y);
|
||||||
int widths[] = {GetControlToolBar()->WidthForStatusBar(), -1, x+50};
|
int widths[] = {0, GetControlToolBar()->WidthForStatusBar(mStatusBar), -1, x+50};
|
||||||
mStatusBar->SetStatusWidths(3, widths);
|
mStatusBar->SetStatusWidths(4, widths);
|
||||||
mStatusBar->SetStatusText(display, 2);
|
mStatusBar->SetStatusText(display, rateStatusBarField);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudacityProject::OnAudioIOStartRecording()
|
void AudacityProject::OnAudioIOStartRecording()
|
||||||
|
@ -109,6 +109,12 @@ enum PlayMode {
|
|||||||
loopedPlay
|
loopedPlay
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum StatusBarField {
|
||||||
|
stateStatusBarField = 1,
|
||||||
|
mainStatusBarField = 2,
|
||||||
|
rateStatusBarField = 3
|
||||||
|
};
|
||||||
|
|
||||||
// XML handler for <import> tag
|
// XML handler for <import> tag
|
||||||
class ImportXMLTagHandler : public XMLTagHandler
|
class ImportXMLTagHandler : public XMLTagHandler
|
||||||
{
|
{
|
||||||
|
@ -563,7 +563,7 @@ void ScreenFrame::DoCapture(wxString captureMode)
|
|||||||
|
|
||||||
mCommand->SetParameter(wxT("CaptureMode"), captureMode);
|
mCommand->SetParameter(wxT("CaptureMode"), captureMode);
|
||||||
if (!mCommand->Apply(mContext))
|
if (!mCommand->Apply(mContext))
|
||||||
mStatus->SetStatusText(wxT("Capture failed!"), 1);
|
mStatus->SetStatusText(wxT("Capture failed!"), mainStatusBarField);
|
||||||
Show();
|
Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ public:
|
|||||||
{}
|
{}
|
||||||
virtual void Update(wxString message)
|
virtual void Update(wxString message)
|
||||||
{
|
{
|
||||||
mStatus.SetStatusText(message, 1);
|
mStatus.SetStatusText(message, mainStatusBarField);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1082,13 +1082,8 @@ void ControlToolBar::ClearCutPreviewTracks()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// works out the width of the field in the status bar needed for the state (eg play, record pause)
|
// works out the width of the field in the status bar needed for the state (eg play, record pause)
|
||||||
int ControlToolBar::WidthForStatusBar()
|
int ControlToolBar::WidthForStatusBar(wxStatusBar* const sb)
|
||||||
{
|
{
|
||||||
AudacityProject* p = GetActiveProject();
|
|
||||||
if (!p)
|
|
||||||
return 100; // dummy value to keep things happy before the project is fully created
|
|
||||||
|
|
||||||
wxStatusBar* sb = p->GetStatusBar();
|
|
||||||
int xMax = 0;
|
int xMax = 0;
|
||||||
int x, y;
|
int x, y;
|
||||||
|
|
||||||
@ -1110,7 +1105,7 @@ int ControlToolBar::WidthForStatusBar()
|
|||||||
return xMax + 30; // added constant needed because xMax isn't large enough for some reason, plus some space.
|
return xMax + 30; // added constant needed because xMax isn't large enough for some reason, plus some space.
|
||||||
}
|
}
|
||||||
|
|
||||||
void ControlToolBar::UpdateStatusBar()
|
wxString ControlToolBar::StateForStatusBar()
|
||||||
{
|
{
|
||||||
wxString state;
|
wxString state;
|
||||||
|
|
||||||
@ -1129,6 +1124,11 @@ void ControlToolBar::UpdateStatusBar()
|
|||||||
|
|
||||||
state.Append(wxT("."));
|
state.Append(wxT("."));
|
||||||
|
|
||||||
GetActiveProject()->GetStatusBar()->SetStatusText(state);
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ControlToolBar::UpdateStatusBar()
|
||||||
|
{
|
||||||
|
GetActiveProject()->GetStatusBar()->SetStatusText(StateForStatusBar(), stateStatusBarField);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +85,8 @@ class ControlToolBar:public ToolBar {
|
|||||||
virtual void ReCreateButtons();
|
virtual void ReCreateButtons();
|
||||||
void RegenerateToolsTooltips();
|
void RegenerateToolsTooltips();
|
||||||
|
|
||||||
int WidthForStatusBar();
|
int WidthForStatusBar(wxStatusBar* const);
|
||||||
|
wxString StateForStatusBar();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user