20 #ifndef INCLUDED_VCL_INC_SALUSEREVENTLIST_HXX
21 #define INCLUDED_VCL_INC_SALUSEREVENTLIST_HXX
25 #include <osl/mutex.hxx>
26 #include <osl/thread.hxx>
68 virtual void TriggerUserEventProcessing() = 0;
77 void insertFrame(
SalFrame* pFrame );
79 inline
bool isFrameAlive( const
SalFrame* pFrame ) const;
83 inline
bool HasUserEvents() const;
85 bool DispatchUserEvents(
bool bHandleAllCurrentEvents );
90 if ( m_aFrames.
empty() )
92 return *m_aFrames.
begin();
97 auto it = m_aFrames.
find( const_cast<SalFrame*>( pFrame ) );
98 return it != m_aFrames.
end();
103 osl::MutexGuard aGuard( m_aUserEventsMutex );
104 return !(m_aUserEvents.empty() && m_aProcessingUserEvents.empty());
109 osl::MutexGuard aGuard( m_aUserEventsMutex );
110 m_aUserEvents.push_back(
SalUserEvent( pFrame, pData, nEvent ) );
111 m_bAllUserEventProcessedSignaled =
false;
112 TriggerUserEventProcessing();
120 #endif // INCLUDED_VCL_INC_SALUSEREVENTLIST_HXX
const_iterator find(const Value &x) const
const SalFrameSet & getFrames() const
std::list< SalUserEvent > m_aProcessingUserEvents
o3tl::sorted_vector< SalFrame * > SalFrameSet
std::list< SalUserEvent > m_aUserEvents
virtual void TriggerAllUserEventsProcessed()
osl::Mutex m_aUserEventsMutex
const_iterator end() const
bool HasUserEvents() const
bool operator==(const SalUserEvent &aEvent) const
const_iterator begin() const
#define VCL_PLUGIN_PUBLIC
A SalFrame is a system window (e.g. an X11 window).
SalUserEvent(SalFrame *pFrame, void *pData, SalEvent nEvent)
bool isFrameAlive(const SalFrame *pFrame) const
void PostEvent(SalFrame *pFrame, void *pData, SalEvent nEvent)
bool m_bAllUserEventProcessedSignaled
oslThreadIdentifier m_aProcessingThread