diff --git a/src/toolbars/MeterToolBar.cpp b/src/toolbars/MeterToolBar.cpp index 5b2b367cc..807abf816 100644 --- a/src/toolbars/MeterToolBar.cpp +++ b/src/toolbars/MeterToolBar.cpp @@ -234,6 +234,7 @@ void MeterToolBar::OnSize( wxSizeEvent & event) //WXUNUSED(event) ) // And make it happen Layout(); + Fit(); } bool MeterToolBar::Expose( bool show ) @@ -274,3 +275,11 @@ wxSize MeterToolBar::GetDockedSize() return sz; } +// The meter's sizing code does not take account of the resizer +// Hence after docking we need to enlarge the bar (using fit) +// so that the resizer can be reached. +void MeterToolBar::SetDocked(ToolDock *dock, bool pushed) { + ToolBar::SetDocked(dock, pushed); + Fit(); +} + diff --git a/src/toolbars/MeterToolBar.h b/src/toolbars/MeterToolBar.h index 77b7f4ce4..6eabde8ea 100644 --- a/src/toolbars/MeterToolBar.h +++ b/src/toolbars/MeterToolBar.h @@ -49,8 +49,9 @@ class MeterToolBar final : public ToolBar { int GetInitialWidth() override {return (mWhichMeters == (kWithRecordMeter + kWithPlayMeter)) ? 338 : 460;} // Separate bars used to be smaller. - int GetMinToolbarWidth() override { return 50; } + int GetMinToolbarWidth() override { return 150; } wxSize GetDockedSize() override; + virtual void SetDocked(ToolDock *dock, bool pushed)override; private: void RegenerateTooltips() override; diff --git a/src/toolbars/ToolBar.cpp b/src/toolbars/ToolBar.cpp index 80838ea37..748f7cee6 100644 --- a/src/toolbars/ToolBar.cpp +++ b/src/toolbars/ToolBar.cpp @@ -586,7 +586,6 @@ void ToolBar::SetDocked( ToolDock *dock, bool pushed ) { mResizer->Show(dock != NULL); Layout(); - Fit(); } } diff --git a/src/toolbars/ToolBar.h b/src/toolbars/ToolBar.h index be37d9c5b..7796eadd5 100644 --- a/src/toolbars/ToolBar.h +++ b/src/toolbars/ToolBar.h @@ -110,7 +110,7 @@ class ToolBar /* not final */ : public wxPanelWrapper ToolDock *GetDock(); void SetLabel(const wxString & label) override; - void SetDocked(ToolDock *dock, bool pushed); + virtual void SetDocked(ToolDock *dock, bool pushed); // NEW virtual: virtual bool Expose(bool show = true); diff --git a/src/toolbars/TranscriptionToolBar.cpp b/src/toolbars/TranscriptionToolBar.cpp index ae4c16f5e..3c4729a5a 100644 --- a/src/toolbars/TranscriptionToolBar.cpp +++ b/src/toolbars/TranscriptionToolBar.cpp @@ -90,7 +90,7 @@ END_EVENT_TABLE() ////Standard Constructor TranscriptionToolBar::TranscriptionToolBar() -: ToolBar(TranscriptionBarID, _("Transcription"), wxT("Transcription")) +: ToolBar(TranscriptionBarID, _("Transcription"), wxT("Transcription"),true) { mPlaySpeed = 1.0 * 100.0; #ifdef EXPERIMENTAL_VOICE_DETECTION @@ -133,6 +133,11 @@ void TranscriptionToolBar::Create(wxWindow * parent) //then stop Audio if it is playing, so we can be playing //audio and open a second project. mPlaySpeed = (mPlaySpeedSlider->Get()) * 100; + + // Simulate a size event to set initial placement/size + wxSizeEvent event(GetSize(), GetId()); + event.SetEventObject(this); + GetEventHandler()->ProcessEvent(event); } /// This is a convenience function that allows for button creation in @@ -199,9 +204,10 @@ void TranscriptionToolBar::Populate() .Line( 0.16667f ) .Page( 0.16667f ) ); + mPlaySpeedSlider->SetSizeHints(wxSize(100, 25), wxSize(1000, 25)); mPlaySpeedSlider->Set(mPlaySpeed / 100.0); mPlaySpeedSlider->SetLabel(_("Playback Speed")); - Add( mPlaySpeedSlider, 0, wxALIGN_CENTER ); + Add( mPlaySpeedSlider, 1, wxALIGN_CENTER ); mPlaySpeedSlider->Bind(wxEVT_SET_FOCUS, &TranscriptionToolBar::OnFocus, this); @@ -322,7 +328,6 @@ void TranscriptionToolBar::RegenerateTooltips() ToolBar::SetButtonToolTip( *mButtons[entry.tool], commands, 2u ); } - #ifdef EXPERIMENTAL_VOICE_DETECTION mButtons[TTB_StartOn]->SetToolTip(TRANSLATABLE("Left-to-On")); mButtons[TTB_EndOn]->SetToolTip( TRANSLATABLE("Right-to-Off")); diff --git a/src/toolbars/TranscriptionToolBar.h b/src/toolbars/TranscriptionToolBar.h index d2ea3c661..27c433cf8 100644 --- a/src/toolbars/TranscriptionToolBar.h +++ b/src/toolbars/TranscriptionToolBar.h @@ -82,6 +82,7 @@ class TranscriptionToolBar final : public ToolBar { void Repaint(wxDC * WXUNUSED(dc)) override {}; void EnableDisableButtons() override; void UpdatePrefs() override; + int GetMinToolbarWidth() override { return 125; } void OnFocus(wxFocusEvent &event); void OnCaptureKey(wxCommandEvent &event);