Audacity 3.2.0
TimeToolBar.h
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 TimeToolBar.h
6
7 Jonatã Bolzan Loss
8
9**********************************************************************/
10
11#ifndef __AUDACITY_TIME_TOOLBAR__
12#define __AUDACITY_TIME_TOOLBAR__
13
14#include <wx/defs.h>
15
16#include "ToolBar.h"
17#include "../widgets/NumericTextCtrl.h"
18#include "Observer.h"
19
20class NumericTextCtrl;
22
23class TimeToolBar final : public ToolBar
24{
25public:
26 static Identifier ID();
27
29 virtual ~TimeToolBar();
30
31 DockID DefaultDockID() const override;
32
33 static TimeToolBar &Get(AudacityProject &project);
34 static const TimeToolBar &Get(const AudacityProject &project);
35
36 void Populate() override;
37 void Repaint(wxDC * WXUNUSED(dc)) override {};
38 void EnableDisableButtons() override {};
39 void UpdatePrefs() override;
40 void RegenerateTooltips() override {};
41 int GetInitialWidth() override {return 250;}
42 int GetMinToolbarWidth() override {return 50;}
43 void SetToDefaultSize() override;
44 wxSize GetDockedSize() override;
45 void SetDocked(ToolDock *dock, bool pushed) override;
48 void ResizingDone() override;
49
50private:
51 void SetResizingLimits();
52 wxSize ComputeSizing(int digitH);
53
54 void OnRateChanged(double);
55 void OnUpdate(wxCommandEvent &evt);
56 void OnSize(wxSizeEvent &evt);
57 void OnIdle(wxIdleEvent &evt);
58
63
64 static const int minDigitH = 17;
65 static const int maxDigitH = 100;
66
68
69public:
70
71 DECLARE_CLASS(TimeToolBar)
72 DECLARE_EVENT_TABLE()
73};
74
75inline wxSize TimeToolBar::ComputeSizing(int digitH)
76{
77 return mAudioTime->ComputeSizing(false, digitH * mDigitRatio, digitH);
78}
79
80#endif
int format
Definition: ExportPCM.cpp:53
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Definition: Project.h:90
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
An explicitly nonlocalized string, not meant for the user to see.
Definition: Identifier.h:22
wxSize ComputeSizing(bool update=true, wxCoord digitW=0, wxCoord digitH=0)
A move-only handle representing a connection to a Publisher.
Definition: Observer.h:70
TimeToolBarListener * mListener
Definition: TimeToolBar.h:59
void Repaint(wxDC *WXUNUSED(dc)) override
Definition: TimeToolBar.h:37
static const int minDigitH
Definition: TimeToolBar.h:64
void SetAudioTimeFormat(const NumericFormatSymbol &format)
void RegenerateTooltips() override
Definition: TimeToolBar.h:40
void OnRateChanged(double)
void OnIdle(wxIdleEvent &evt)
void OnSize(wxSizeEvent &evt)
static TimeToolBar & Get(AudacityProject &project)
Definition: TimeToolBar.cpp:74
wxSize GetDockedSize() override
DockID DefaultDockID() const override
Which dock the toolbar defaults into. Default implementation chooses the top dock.
Definition: TimeToolBar.cpp:69
static const int maxDigitH
Definition: TimeToolBar.h:65
void SetToDefaultSize() override
void SetListener(TimeToolBarListener *l)
void OnUpdate(wxCommandEvent &evt)
NumericTextCtrl * mAudioTime
Definition: TimeToolBar.h:60
void SetDocked(ToolDock *dock, bool pushed) override
static Identifier ID()
Definition: TimeToolBar.cpp:51
void SetResizingLimits()
virtual ~TimeToolBar()
Definition: TimeToolBar.cpp:65
float mDigitRatio
Definition: TimeToolBar.h:61
void ResizingDone() override
int GetMinToolbarWidth() override
Definition: TimeToolBar.h:42
Observer::Subscription mSubscription
Definition: TimeToolBar.h:67
void UpdatePrefs() override
int GetInitialWidth() override
Resizable toolbars should implement these.
Definition: TimeToolBar.h:41
void Populate() override
Definition: TimeToolBar.cpp:85
bool mSettingInitialSize
Definition: TimeToolBar.h:62
wxSize ComputeSizing(int digitH)
Definition: TimeToolBar.h:75
void EnableDisableButtons() override
Definition: TimeToolBar.h:38
TimeToolBar(AudacityProject &project)
Definition: TimeToolBar.cpp:56
Works with ToolManager and ToolDock to provide a dockable window in which buttons can be placed.
Definition: ToolBar.h:74
DockID
Identifies one of the docking areas for toolbars.
Definition: ToolBar.h:92
A dynamic panel where a ToolBar can be docked.
Definition: ToolDock.h:292