audacia/src/toolbars/MeterToolBar.h
James Crook 8168dce551 Fix Big Time TimerToolBar, Stage I
- Update on idle (new idiom from Paul)
- Dock at x1 or x2 size
- Smooth resizing
- Take some account of width when resizing
- Promote Resizable docking code to ToolBar class
2020-02-05 14:24:59 +00:00

75 lines
1.6 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
MeterToolbar.h
Dominic Mazzoni
Leland Lucius
ToolBar to hold the VU Meter
**********************************************************************/
#ifndef __AUDACITY_METER_TOOLBAR__
#define __AUDACITY_METER_TOOLBAR__
#include "ToolBar.h"
class wxDC;
class wxGridBagSizer;
class wxSizeEvent;
class wxWindow;
class AudacityProject;
class MeterPanel;
// Constants used as bit pattern
const int kWithRecordMeter = 1;
const int kWithPlayMeter = 2;
class MeterToolBar final : public ToolBar {
public:
MeterToolBar(AudacityProject &project, int type);
virtual ~MeterToolBar();
void Create(wxWindow *parent) override;
void Populate() override;
void ReCreateButtons() override;
void Repaint(wxDC * WXUNUSED(dc)) override {};
void EnableDisableButtons() override {};
void UpdatePrefs() override;
void OnSize(wxSizeEvent & event);
bool Expose(bool show) override;
int GetInitialWidth() override {return (mWhichMeters ==
(kWithRecordMeter + kWithPlayMeter)) ? 338 : 460;} // Separate bars used to be smaller.
int GetMinToolbarWidth() override { return 150; }
wxSize GetDockedSize() override {
return GetSmartDockedSize();
};
virtual void SetDocked(ToolDock *dock, bool pushed)override;
private:
void RegenerateTooltips() override;
int mWhichMeters;
wxGridBagSizer *mSizer;
MeterPanel *mPlayMeter;
MeterPanel *mRecordMeter;
public:
DECLARE_CLASS(MeterToolBar)
DECLARE_EVENT_TABLE()
};
#endif