20 #ifndef INCLUDED_VCL_INC_SALINST_HXX
21 #define INCLUDED_VCL_INC_SALINST_HXX
24 #include <rtl/ref.hxx>
33 #include <com/sun/star/uno/XComponentContext.hpp>
34 #include <com/sun/star/ui/dialogs/XFilePicker2.hpp>
35 #include <com/sun/star/ui/dialogs/XFolderPicker2.hpp>
84 SalInstance(std::unique_ptr<comphelper::SolarMutex> pMutex);
95 virtual void DestroyFrame(
SalFrame* pFrame ) = 0;
99 virtual void DestroyObject(
SalObject* pObject ) = 0;
107 virtual std::unique_ptr<SalVirtualDevice>
119 virtual std::unique_ptr<SalPrinter> CreatePrinter(
SalInfoPrinter* pInfoPrinter ) = 0;
123 virtual OUString GetDefaultPrinter() = 0;
126 virtual SalTimer* CreateSalTimer() = 0;
128 virtual SalSystem* CreateSalSystem() = 0;
130 virtual std::shared_ptr<SalBitmap> CreateSalBitmap() = 0;
134 return std::make_shared<vcl::BackendCapabilities>();
139 sal_uInt32 ReleaseYieldMutexAll();
140 void AcquireYieldMutex(sal_uInt32 nCount = 1);
143 virtual bool IsMainThread()
const = 0;
151 virtual bool DoYield(
bool bWait,
bool bHandleAllCurrentEvents) = 0;
155 virtual std::unique_ptr<SalMenu> CreateMenu(
bool bMenuBar,
Menu* pMenu );
156 virtual std::unique_ptr<SalMenuItem> CreateMenuItem(
const SalItemParams& pItemData );
159 virtual std::unique_ptr<SalSession> CreateSalSession();
165 bool bAllowCycleFocusOut, sal_uInt64 nLOKWindowId = 0);
173 { m_pEventInst = pInstance; }
175 bool CallEventCallback(
void const * pEvent,
int nBytes );
177 virtual OUString GetConnectionIdentifier() = 0;
180 virtual css::uno::Reference< css::uno::XInterface > CreateClipboard(
const css::uno::Sequence< css::uno::Any >& i_rArguments );
181 virtual css::uno::Reference< css::uno::XInterface > CreateDragSource();
182 virtual css::uno::Reference< css::uno::XInterface > CreateDropTarget();
183 virtual void AddToRecentDocumentList(
const OUString& rFileUrl,
const OUString& rMimeType,
const OUString& rDocumentService) = 0;
187 virtual css::uno::Reference< css::ui::dialogs::XFilePicker2 >
createFilePicker(
const css::uno::Reference< css::uno::XComponentContext >& )
188 {
return css::uno::Reference< css::ui::dialogs::XFilePicker2 >(); }
189 virtual css::uno::Reference< css::ui::dialogs::XFolderPicker2 >
createFolderPicker(
const css::uno::Reference< css::uno::XComponentContext >& )
190 {
return css::uno::Reference< css::ui::dialogs::XFolderPicker2 >(); }
214 void SalAbort(
const OUString& rErrorText,
bool bDumpCore );
218 #endif // INCLUDED_VCL_INC_SALINST_HXX
virtual const cairo_font_options_t * GetCairoFontOptions()
void DestroySalInstance(SalInstance *pInst)
void SalAbort(const OUString &rErrorText, bool bDumpCore)
virtual css::uno::Reference< css::ui::dialogs::XFilePicker2 > createFilePicker(const css::uno::Reference< css::uno::XComponentContext > &)
virtual css::uno::Reference< css::ui::dialogs::XFolderPicker2 > createFolderPicker(const css::uno::Reference< css::uno::XComponentContext > &)
virtual bool hasNativeFileSelection() const
SalInstance * CreateSalInstance()
virtual void updateMainThread()
Set the app's (somewhat) magic/main-thread to this one.
virtual void AfterAppInit()
const OUString & SalGetDesktopEnvironment()
virtual void jobEndedPrinterUpdate()
virtual void releaseMainThread()
Disconnect that - good for detaching from the JavaVM on Android.
virtual OUString getOSVersion()
get information about underlying versions
virtual std::shared_ptr< vcl::BackendCapabilities > GetBackendCapabilities()
virtual bool SVMainHook(int *)
virtual void jobStartedPrinterUpdate()
virtual void * CreateGStreamerSink(const SystemChildWindow *)
virtual void updatePrinterUpdate()
A SalFrame is a system window (e.g. an X11 window).
struct _cairo_font_options cairo_font_options_t
const std::unique_ptr< comphelper::SolarMutex > m_pYieldMutex
A non-visible drawable/buffer (e.g. an X11 Pixmap).
void SetEventCallback(rtl::Reference< vcl::DisplayConnectionDispatch > const &pInstance)
weld::Window * GetFrameWeld(const SfxFrame *pFrame)
css::uno::Reference< css::uno::XInterface > m_clipboard
rtl::Reference< vcl::DisplayConnectionDispatch > m_pEventInst