1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-09 17:07:43 +02:00
audacity/src/toolbars/ScrubbingToolBar.h
2019-12-23 15:35:47 -05:00

91 lines
1.7 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
ScrubbingToolbar.h
Paul Licameli
**********************************************************************/
#ifndef __AUDACITY_SCRUBBING_TOOLBAR__
#define __AUDACITY_SCRUBBING_TOOLBAR__
#include <wx/defs.h>
#include "ToolBar.h"
class AudacityProject;
class wxCommandEvent;
class wxDC;
class wxImage;
class wxWindow;
class AButton;
enum {
STBScrubID,
STBSeekID,
STBRulerID,
STBNumButtons,
STBFirstButton = STBScrubID
};
class ScrubbingToolBar final : public ToolBar {
public:
ScrubbingToolBar( AudacityProject &project );
virtual ~ScrubbingToolBar();
static ScrubbingToolBar &Get( AudacityProject &project );
static const ScrubbingToolBar &Get( const AudacityProject &project );
void Create(wxWindow *parent) override;
void OnButton(wxCommandEvent & event);
void Populate() override;
void Repaint(wxDC * WXUNUSED(dc)) override {};
void EnableDisableButtons() override;
void UpdatePrefs() override;
void RegenerateTooltips() override;
private:
static AButton *AddButton(
ScrubbingToolBar *pBar,
teBmps eEnabledUp, teBmps eEnabledDown, teBmps eDisabled,
int id, const TranslatableString &label, bool toggle = false);
void MakeButtons();
AButton *mButtons[STBNumButtons];
wxImage *upImage;
wxImage *downImage;
wxImage *hiliteImage;
void OnIdle( wxIdleEvent &evt );
public:
DECLARE_CLASS(ScrubbingToolBar)
DECLARE_EVENT_TABLE()
private:
void DoRegenerateTooltips( bool force );
bool mLastScrub{ false };
bool mLastSeek{ false };
bool mLastRuler{ false };
};
#endif