|
LibreOffice Module fpicker (master) 1
|
todo document me More...
#include <VistaFilePickerEventHandler.hxx>
Public Types | |
| enum | EEventType { E_FILE_SELECTION_CHANGED , E_DIRECTORY_CHANGED , E_HELP_REQUESTED , E_CONTROL_STATE_CHANGED , E_DIALOG_SIZE_CHANGED } |
Public Member Functions | |
| VistaFilePickerEventHandler (IVistaFilePickerInternalNotify *pInternalNotify) | |
| virtual | ~VistaFilePickerEventHandler () |
| virtual HRESULT STDMETHODCALLTYPE | QueryInterface (REFIID rIID, void **ppObject) override |
| virtual ULONG STDMETHODCALLTYPE | AddRef () override |
| virtual ULONG STDMETHODCALLTYPE | Release () override |
| STDMETHODIMP | OnFileOk (IFileDialog *pDialog) override |
| STDMETHODIMP | OnFolderChanging (IFileDialog *pDialog, IShellItem *pFolder) override |
| STDMETHODIMP | OnFolderChange (IFileDialog *pDialog) override |
| STDMETHODIMP | OnSelectionChange (IFileDialog *pDialog) override |
| STDMETHODIMP | OnShareViolation (IFileDialog *pDialog, IShellItem *pItem, FDE_SHAREVIOLATION_RESPONSE *pResponse) override |
| STDMETHODIMP | OnTypeChange (IFileDialog *pDialog) override |
| STDMETHODIMP | OnOverwrite (IFileDialog *pDialog, IShellItem *pItem, FDE_OVERWRITE_RESPONSE *pResponse) override |
| STDMETHODIMP | OnItemSelected (IFileDialogCustomize *pCustomize, DWORD nIDCtl, DWORD nIDItem) override |
| STDMETHODIMP | OnButtonClicked (IFileDialogCustomize *pCustomize, DWORD nIDCtl) override |
| STDMETHODIMP | OnCheckButtonToggled (IFileDialogCustomize *pCustomize, DWORD nIDCtl, BOOL bChecked) override |
| STDMETHODIMP | OnControlActivating (IFileDialogCustomize *pCustomize, DWORD nIDCtl) override |
| virtual void | addFilePickerListener (const css::uno::Reference< css::ui::dialogs::XFilePickerListener > &xListener) |
| virtual void | removeFilePickerListener (const css::uno::Reference< css::ui::dialogs::XFilePickerListener > &xListener) |
| void | startListening (const TFileDialog &pBroadcaster) |
| start listening for file picker events on the given file open dialog COM object. More... | |
| void | stopListening () |
| stop listening for file picker events on the internally cached dialog COM object. More... | |
Private Member Functions | |
| void | impl_sendEvent (EEventType eEventType, ::sal_Int16 nControlID) |
Private Attributes | |
| oslInterlockedCount | m_nRefCount |
| ref count for AddRef/Release() More... | |
| DWORD | m_nListenerHandle |
| unique handle for this listener provided by the broadcaster on registration time More... | |
| TFileDialog | m_pDialog |
| cached file dialog instance (there we listen for events) More... | |
| IVistaFilePickerInternalNotify * | m_pInternalNotify |
| comphelper::OMultiTypeInterfaceContainerHelper2 | m_lListener |
| used to inform file picker listener asynchronously. More... | |
Additional Inherited Members | |
Protected Attributes inherited from cppu::BaseMutex | |
| mutable::osl::Mutex | m_aMutex |
todo document me
Definition at line 44 of file VistaFilePickerEventHandler.hxx.
| Enumerator | |
|---|---|
| E_FILE_SELECTION_CHANGED | |
| E_DIRECTORY_CHANGED | |
| E_HELP_REQUESTED | |
| E_CONTROL_STATE_CHANGED | |
| E_DIALOG_SIZE_CHANGED | |
Definition at line 144 of file VistaFilePickerEventHandler.hxx.
|
explicit |
Definition at line 44 of file VistaFilePickerEventHandler.cxx.
References m_aMutex.
|
virtual |
Definition at line 54 of file VistaFilePickerEventHandler.cxx.
|
virtual |
| css::uno::RuntimeException |
Definition at line 203 of file VistaFilePickerEventHandler.cxx.
References comphelper::OMultiTypeInterfaceContainerHelper2::addInterface(), and m_lListener.
Referenced by fpicker::win32::vista::VistaFilePickerImpl::impl_sta_addFilePickerListener().
|
overridevirtual |
Definition at line 83 of file VistaFilePickerEventHandler.cxx.
References m_nRefCount.
|
private |
Definition at line 279 of file VistaFilePickerEventHandler.cxx.
References comphelper::OMultiTypeInterfaceContainerHelper2::getContainer(), comphelper::OInterfaceIteratorHelper2::hasMoreElements(), m_lListener, comphelper::OInterfaceIteratorHelper2::next(), fpicker::win32::vista::PROP_CONTROL_ID, fpicker::win32::vista::PROP_PICKER_LISTENER, comphelper::OInterfaceIteratorHelper2::remove(), fpicker::win32::vista::Request::setArgument(), and fpicker::win32::vista::Request::setRequest().
Referenced by OnButtonClicked(), OnCheckButtonToggled(), OnControlActivating(), OnFolderChange(), OnItemSelected(), OnSelectionChange(), OnShareViolation(), and OnTypeChange().
|
override |
Definition at line 173 of file VistaFilePickerEventHandler.cxx.
References E_CONTROL_STATE_CHANGED, and impl_sendEvent().
|
override |
Definition at line 182 of file VistaFilePickerEventHandler.cxx.
References E_CONTROL_STATE_CHANGED, impl_sendEvent(), m_pInternalNotify, and fpicker::win32::vista::IVistaFilePickerInternalNotify::onAutoExtensionChanged().
|
override |
Definition at line 195 of file VistaFilePickerEventHandler.cxx.
References E_CONTROL_STATE_CHANGED, and impl_sendEvent().
|
override |
Definition at line 99 of file VistaFilePickerEventHandler.cxx.
|
override |
Definition at line 112 of file VistaFilePickerEventHandler.cxx.
References E_DIRECTORY_CHANGED, impl_sendEvent(), m_pInternalNotify, and fpicker::win32::vista::IVistaFilePickerInternalNotify::onDirectoryChanged().
|
override |
Definition at line 105 of file VistaFilePickerEventHandler.cxx.
|
override |
Definition at line 161 of file VistaFilePickerEventHandler.cxx.
References E_CONTROL_STATE_CHANGED, and impl_sendEvent().
|
override |
Definition at line 153 of file VistaFilePickerEventHandler.cxx.
|
override |
Definition at line 120 of file VistaFilePickerEventHandler.cxx.
References E_FILE_SELECTION_CHANGED, and impl_sendEvent().
|
override |
Definition at line 127 of file VistaFilePickerEventHandler.cxx.
References E_CONTROL_STATE_CHANGED, and impl_sendEvent().
|
override |
Definition at line 138 of file VistaFilePickerEventHandler.cxx.
References E_CONTROL_STATE_CHANGED, impl_sendEvent(), m_pInternalNotify, and fpicker::win32::vista::IVistaFilePickerInternalNotify::onFileTypeChanged().
|
overridevirtual |
Definition at line 59 of file VistaFilePickerEventHandler.cxx.
|
overridevirtual |
Definition at line 89 of file VistaFilePickerEventHandler.cxx.
References m_nRefCount.
|
virtual |
| css::uno::RuntimeException |
Definition at line 209 of file VistaFilePickerEventHandler.cxx.
References m_lListener, and comphelper::OMultiTypeInterfaceContainerHelper2::removeInterface().
Referenced by fpicker::win32::vista::VistaFilePickerImpl::impl_sta_removeFilePickerListener().
| void fpicker::win32::vista::VistaFilePickerEventHandler::startListening | ( | const TFileDialog & | pBroadcaster | ) |
start listening for file picker events on the given file open dialog COM object.
The broadcaster will be cached internally so deregistration will be easy. Further all needed information is capsulated within this class (e.g. the listener handler). Nobody outside must know such information.
Nothing will happen if an inconsistent state will be detected (means: double registration will be ignored).
| pBroadcaster | reference to the dialog, where we should start listening. |
Definition at line 215 of file VistaFilePickerEventHandler.cxx.
References m_nListenerHandle, and m_pDialog.
Referenced by fpicker::win32::vista::VistaFilePickerImpl::impl_sta_InitDialog().
| void fpicker::win32::vista::VistaFilePickerEventHandler::stopListening | ( | ) |
stop listening for file picker events on the internally cached dialog COM object.
The COM dialog provided on the startListening() call was cached internally. And now it's used to deregister this listener. Doing so the also internally cached listener handle is used. If listener was not already registered - nothing will happen.
Definition at line 225 of file VistaFilePickerEventHandler.cxx.
References m_nListenerHandle, and m_pDialog.
Referenced by fpicker::win32::vista::VistaFilePickerImpl::impl_sta_ShowDialogModal().
|
private |
used to inform file picker listener asynchronously.
Those listener must be called asynchronously .. because every request will block the caller thread. Mostly that will be the main thread of the office. Further the global SolarMutex will be locked during this time. If we call our listener back now synchronously .. we will block on SolarMutex.acquire() forever .-))
Definition at line 185 of file VistaFilePickerEventHandler.hxx.
Referenced by addFilePickerListener(), impl_sendEvent(), and removeFilePickerListener().
|
private |
unique handle for this listener provided by the broadcaster on registration time
Definition at line 168 of file VistaFilePickerEventHandler.hxx.
Referenced by startListening(), and stopListening().
|
private |
ref count for AddRef/Release()
Definition at line 164 of file VistaFilePickerEventHandler.hxx.
|
private |
cached file dialog instance (there we listen for events)
Definition at line 172 of file VistaFilePickerEventHandler.hxx.
Referenced by startListening(), and stopListening().
|
private |
Definition at line 175 of file VistaFilePickerEventHandler.hxx.
Referenced by OnCheckButtonToggled(), OnFolderChange(), and OnTypeChange().