1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-17 08:30:06 +02:00
audacity/src/toolbars/TimeToolBar.h

74 lines
1.8 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
TimeToolBar.h
Jonatã Bolzan Loss
**********************************************************************/
#ifndef __AUDACITY_TIME_TOOLBAR__
#define __AUDACITY_TIME_TOOLBAR__
#include <wx/defs.h>
#include "ToolBar.h"
#include "../widgets/NumericTextCtrl.h"
class NumericTextCtrl;
class TimeToolBarListener;
class TimeToolBar final : public ToolBar
{
public:
TimeToolBar(AudacityProject &project);
virtual ~TimeToolBar();
static TimeToolBar &Get(AudacityProject &project);
static const TimeToolBar &Get(const AudacityProject &project);
void Populate() override;
void Repaint(wxDC * WXUNUSED(dc)) override {};
void EnableDisableButtons() override {};
void UpdatePrefs() override;
void RegenerateTooltips() override {};
int GetInitialWidth() override {return 250;}
int GetMinToolbarWidth() override {return 50;}
void SetToDefaultSize() override;
wxSize GetDockedSize() override;
void SetDocked(ToolDock *dock, bool pushed) override;
void SetListener(TimeToolBarListener *l);
void SetAudioTimeFormat(const NumericFormatSymbol & format);
void ResizingDone() override;
private:
void SetResizingLimits();
wxSize ComputeSizing(int digitH);
void OnSettingsChanged(wxCommandEvent &evt);
void OnUpdate(wxCommandEvent &evt);
void OnSize(wxSizeEvent &evt);
void OnIdle(wxIdleEvent &evt);
TimeToolBarListener *mListener;
NumericTextCtrl *mAudioTime;
float mDigitRatio;
bool mSettingInitialSize;
static const int minDigitH = 17;
static const int maxDigitH = 100;
public:
DECLARE_CLASS(TimeToolBar)
DECLARE_EVENT_TABLE()
};
inline wxSize TimeToolBar::ComputeSizing(int digitH)
{
return mAudioTime->ComputeSizing(false, digitH * mDigitRatio, digitH);
}
#endif