mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-20 14:20:06 +02:00
Play buttons can detect double clicks (but don't do anything special yet)
This commit is contained in:
parent
67d3bb89cb
commit
039aaa13a0
@ -738,6 +738,9 @@ void ControlToolBar::OnKeyEvent(wxKeyEvent & event)
|
||||
|
||||
void ControlToolBar::OnPlay(wxCommandEvent & WXUNUSED(evt))
|
||||
{
|
||||
auto doubleClicked = mPlay->IsDoubleClicked();
|
||||
mPlay->ClearDoubleClicked();
|
||||
|
||||
if (!CanStopAudioStream())
|
||||
return;
|
||||
|
||||
|
@ -474,10 +474,15 @@ void TranscriptionToolBar::PlayAtSpeed(bool looped, bool cutPreview)
|
||||
// Come here from button clicks only
|
||||
void TranscriptionToolBar::OnPlaySpeed(wxCommandEvent & WXUNUSED(event))
|
||||
{
|
||||
auto button = mButtons[TTB_PlaySpeed];
|
||||
|
||||
auto doubleClicked = button->IsDoubleClicked();
|
||||
button->ClearDoubleClicked();
|
||||
|
||||
// Let control have precedence over shift
|
||||
const bool cutPreview = mButtons[TTB_PlaySpeed]->WasControlDown();
|
||||
const bool looped = !cutPreview &&
|
||||
mButtons[TTB_PlaySpeed]->WasShiftDown();
|
||||
button->WasShiftDown();
|
||||
PlayAtSpeed(looped, cutPreview);
|
||||
}
|
||||
|
||||
|
@ -407,6 +407,8 @@ void AButton::OnMouseEvent(wxMouseEvent & event)
|
||||
if (mEnabled && event.IsButton()) {
|
||||
if (event.ButtonIsDown(wxMOUSE_BTN_ANY)) {
|
||||
mIsClicking = true;
|
||||
if (event.ButtonDClick())
|
||||
mIsDoubleClicked = true;
|
||||
if( !HasCapture() )
|
||||
CaptureMouse();
|
||||
}
|
||||
|
@ -109,6 +109,11 @@ class AButton final : public wxWindow {
|
||||
bool WasControlDown(); // returns true if control was held down
|
||||
// the last time the button was clicked
|
||||
bool IsDown(){ return mButtonIsDown;}
|
||||
|
||||
// Double click is detected, but not automatically cleared.
|
||||
bool IsDoubleClicked() const { return mIsDoubleClicked; }
|
||||
void ClearDoubleClicked() { mIsDoubleClicked = false; }
|
||||
|
||||
void SetButtonToggles( bool toggler ){ mToggle = toggler;}
|
||||
void Toggle(){ mButtonIsDown ? PopUp() : PushDown();}
|
||||
void Click();
|
||||
@ -157,6 +162,7 @@ class AButton final : public wxWindow {
|
||||
bool mIsClicking;
|
||||
bool mEnabled;
|
||||
bool mUseDisabledAsDownHiliteImage;
|
||||
bool mIsDoubleClicked {};
|
||||
|
||||
struct ImageArr { ImageRoll mArr[4]; };
|
||||
std::vector<ImageArr> mImages;
|
||||
|
Loading…
x
Reference in New Issue
Block a user