forked from mia/Aegisub
Move AudioDisplayInteractionObject to audio_display.cpp
This commit is contained in:
parent
4502a9893d
commit
ab35c41a93
2 changed files with 32 additions and 31 deletions
|
@ -53,6 +53,37 @@
|
||||||
#include <wx/dcbuffer.h>
|
#include <wx/dcbuffer.h>
|
||||||
#include <wx/mousestate.h>
|
#include <wx/mousestate.h>
|
||||||
|
|
||||||
|
/// @class AudioDisplayInteractionObject
|
||||||
|
/// @brief Interface for objects on the audio display that can respond to mouse events
|
||||||
|
class AudioDisplayInteractionObject {
|
||||||
|
public:
|
||||||
|
/// @brief The user is interacting with the object using the mouse
|
||||||
|
/// @param event Mouse event data
|
||||||
|
/// @return True to take mouse capture, false to release mouse capture
|
||||||
|
///
|
||||||
|
/// Assuming no object has the mouse capture, the audio display uses other methods
|
||||||
|
/// in the object implementing this interface to determine whether a mouse event
|
||||||
|
/// should go to the object. If the mouse event goes to the object, this method
|
||||||
|
/// is called.
|
||||||
|
///
|
||||||
|
/// If this method returns true, the audio display takes the mouse capture and
|
||||||
|
/// stores a pointer to the AudioDisplayInteractionObject interface for the object
|
||||||
|
/// and redirects the next mouse event to that object.
|
||||||
|
///
|
||||||
|
/// If the object that has the mouse capture returns false from this method, the
|
||||||
|
/// capture is released and regular processing is done for the next event.
|
||||||
|
///
|
||||||
|
/// If the object does not have mouse capture and returns false from this method,
|
||||||
|
/// no capture is taken or released and regular processing is done for the next
|
||||||
|
/// mouse event.
|
||||||
|
virtual bool OnMouseEvent(wxMouseEvent &event) = 0;
|
||||||
|
|
||||||
|
/// @brief Destructor
|
||||||
|
///
|
||||||
|
/// Empty virtual destructor for the cases that need it.
|
||||||
|
virtual ~AudioDisplayInteractionObject() = default;
|
||||||
|
};
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
/// @brief Colourscheme-based UI colour provider
|
/// @brief Colourscheme-based UI colour provider
|
||||||
///
|
///
|
||||||
|
|
|
@ -52,39 +52,9 @@ namespace {
|
||||||
class AudioDisplayScrollbar;
|
class AudioDisplayScrollbar;
|
||||||
class AudioDisplayTimeline;
|
class AudioDisplayTimeline;
|
||||||
}
|
}
|
||||||
|
class AudioDisplayInteractionObject;
|
||||||
class AudioMarkerInteractionObject;
|
class AudioMarkerInteractionObject;
|
||||||
|
|
||||||
/// @class AudioDisplayInteractionObject
|
|
||||||
/// @brief Interface for objects on the audio display that can respond to mouse events
|
|
||||||
class AudioDisplayInteractionObject {
|
|
||||||
public:
|
|
||||||
/// @brief The user is interacting with the object using the mouse
|
|
||||||
/// @param event Mouse event data
|
|
||||||
/// @return True to take mouse capture, false to release mouse capture
|
|
||||||
///
|
|
||||||
/// Assuming no object has the mouse capture, the audio display uses other methods
|
|
||||||
/// in the object implementing this interface to determine whether a mouse event
|
|
||||||
/// should go to the object. If the mouse event goes to the object, this method
|
|
||||||
/// is called.
|
|
||||||
///
|
|
||||||
/// If this method returns true, the audio display takes the mouse capture and
|
|
||||||
/// stores a pointer to the AudioDisplayInteractionObject interface for the object
|
|
||||||
/// and redirects the next mouse event to that object.
|
|
||||||
///
|
|
||||||
/// If the object that has the mouse capture returns false from this method, the
|
|
||||||
/// capture is released and regular processing is done for the next event.
|
|
||||||
///
|
|
||||||
/// If the object does not have mouse capture and returns false from this method,
|
|
||||||
/// no capture is taken or released and regular processing is done for the next
|
|
||||||
/// mouse event.
|
|
||||||
virtual bool OnMouseEvent(wxMouseEvent &event) = 0;
|
|
||||||
|
|
||||||
/// @brief Destructor
|
|
||||||
///
|
|
||||||
/// Empty virtual destructor for the cases that need it.
|
|
||||||
virtual ~AudioDisplayInteractionObject() = default;
|
|
||||||
};
|
|
||||||
|
|
||||||
/// @class AudioDisplay
|
/// @class AudioDisplay
|
||||||
/// @brief Primary view/UI for interaction with audio timing
|
/// @brief Primary view/UI for interaction with audio timing
|
||||||
///
|
///
|
||||||
|
|
Loading…
Reference in a new issue