20#ifndef INCLUDED_VCL_INC_SALINST_HXX
21#define INCLUDED_VCL_INC_SALINST_HXX
31#include <com/sun/star/uno/XComponentContext.hpp>
32#include <com/sun/star/ui/dialogs/XFilePicker2.hpp>
33#include <com/sun/star/ui/dialogs/XFolderPicker2.hpp>
83 bool m_bSupportsBitmap32 =
false;
84 bool m_bSupportsOpenGL =
false;
87 SalInstance(std::unique_ptr<comphelper::SolarMutex> pMutex);
113 virtual std::unique_ptr<SalVirtualDevice>
140 sal_uInt32 ReleaseYieldMutexAll();
141 void AcquireYieldMutex(sal_uInt32 nCount = 1);
152 virtual bool DoYield(
bool bWait,
bool bHandleAllCurrentEvents) = 0;
156 virtual std::unique_ptr<SalMenu> CreateMenu(
bool bMenuBar,
Menu* pMenu );
157 virtual std::unique_ptr<SalMenuItem> CreateMenuItem(
const SalItemParams& pItemData );
160 virtual std::unique_ptr<SalSession> CreateSalSession();
165 virtual std::unique_ptr<weld::Builder> CreateBuilder(
weld::Widget* pParent,
const OUString& rUIRoot,
const OUString& rUIFile);
166 virtual std::unique_ptr<weld::Builder> CreateInterimBuilder(
vcl::Window* pParent,
const OUString& rUIRoot,
const OUString& rUIFile,
167 bool bAllowCycleFocusOut, sal_uInt64 nLOKWindowId = 0);
175 { m_pEventInst = pInstance; }
177 bool CallEventCallback(
void const * pEvent,
int nBytes );
182 virtual css::uno::Reference< css::uno::XInterface > CreateClipboard(
const css::uno::Sequence< css::uno::Any >& i_rArguments );
183 virtual css::uno::Reference<css::uno::XInterface> ImplCreateDragSource(
const SystemEnvData*);
184 virtual css::uno::Reference<css::uno::XInterface> ImplCreateDropTarget(
const SystemEnvData*);
185 css::uno::Reference<css::uno::XInterface> CreateDragSource(
const SystemEnvData* =
nullptr);
186 css::uno::Reference<css::uno::XInterface> CreateDropTarget(
const SystemEnvData* =
nullptr);
187 virtual void AddToRecentDocumentList(
const OUString& rFileUrl,
const OUString& rMimeType,
const OUString& rDocumentService) = 0;
191 virtual css::uno::Reference< css::ui::dialogs::XFilePicker2 >
createFilePicker(
const css::uno::Reference< css::uno::XComponentContext >& )
192 {
return css::uno::Reference< css::ui::dialogs::XFilePicker2 >(); }
193 virtual css::uno::Reference< css::ui::dialogs::XFolderPicker2 >
createFolderPicker(
const css::uno::Reference< css::uno::XComponentContext >& )
194 {
return css::uno::Reference< css::ui::dialogs::XFolderPicker2 >(); }
219 virtual bool DoExecute(
int &nExitCode);
220 virtual void DoQuit();
227void SalAbort(
const OUString& rErrorText,
bool bDumpCore );
A SalFrame is a system window (e.g. an X11 window).
virtual bool AnyInput(VclInputFlags nType)=0
virtual void DestroyFrame(SalFrame *pFrame)=0
virtual void GetPrinterQueueInfo(ImplPrnQueueList *pList)=0
virtual std::shared_ptr< SalBitmap > CreateSalBitmap()=0
virtual void AddToRecentDocumentList(const OUString &rFileUrl, const OUString &rMimeType, const OUString &rDocumentService)=0
virtual void BeforeAbort(const OUString &, bool)
rtl::Reference< vcl::DisplayConnectionDispatch > m_pEventInst
virtual bool SVMainHook(int *)
virtual bool IsMainThread() const =0
static bool IsRunningUnitTest()
virtual OUString GetDefaultPrinter()=0
virtual void DestroyInfoPrinter(SalInfoPrinter *pPrinter)=0
void SetEventCallback(rtl::Reference< vcl::DisplayConnectionDispatch > const &pInstance)
bool supportsOpenGL() const
virtual std::unique_ptr< SalVirtualDevice > CreateVirtualDevice(SalGraphics &rGraphics, tools::Long &rDX, tools::Long &rDY, DeviceFormat eFormat, const SystemGraphicsData *pData=nullptr)=0
virtual void jobStartedPrinterUpdate()
virtual SalTimer * CreateSalTimer()=0
virtual OUString getOSVersion()
get information about underlying versions
virtual SalFrame * CreateFrame(SalFrame *pParent, SalFrameStyleFlags nStyle)=0
virtual SalObject * CreateObject(SalFrame *pParent, SystemWindowData *pWindowData, bool bShow)=0
virtual SalInfoPrinter * CreateInfoPrinter(SalPrinterQueueInfo *pQueueInfo, ImplJobSetup *pSetupData)=0
virtual void updatePrinterUpdate()
virtual void DestroyObject(SalObject *pObject)=0
virtual void updateMainThread()
Set the app's (somewhat) magic/main-thread to this one.
virtual void GetPrinterQueueState(SalPrinterQueueInfo *pInfo)=0
virtual OUString GetConnectionIdentifier()=0
virtual bool hasNativeFileSelection() const
virtual css::uno::Reference< css::ui::dialogs::XFolderPicker2 > createFolderPicker(const css::uno::Reference< css::uno::XComponentContext > &)
virtual css::uno::Reference< css::ui::dialogs::XFilePicker2 > createFilePicker(const css::uno::Reference< css::uno::XComponentContext > &)
css::uno::Reference< css::uno::XInterface > m_clipboard
virtual void * CreateGStreamerSink(const SystemChildWindow *)
virtual bool DoYield(bool bWait, bool bHandleAllCurrentEvents)=0
Wait for the next event (if bWait) and dispatch it, includes posted events, and timers.
bool supportsBitmap32() const
virtual void AfterAppInit()
virtual void releaseMainThread()
Disconnect that - good for detaching from the JavaVM on Android.
virtual const cairo_font_options_t * GetCairoFontOptions()
const std::unique_ptr< comphelper::SolarMutex > m_pYieldMutex
virtual SalSystem * CreateSalSystem()=0
virtual std::unique_ptr< SalPrinter > CreatePrinter(SalInfoPrinter *pInfoPrinter)=0
virtual SalFrame * CreateChildFrame(SystemParentData *pParent, SalFrameStyleFlags nStyle)=0
virtual void jobEndedPrinterUpdate()
A non-visible drawable/buffer (e.g. an X11 Pixmap).
weld::Window * GetFrameWeld(const SfxFrame *pFrame)
void SalAbort(const OUString &rErrorText, bool bDumpCore)
const OUString & SalGetDesktopEnvironment()
void DestroySalInstance(SalInstance *pInst)
struct _cairo_font_options cairo_font_options_t
SalInstance * CreateSalInstance()