20#include <config_feature_desktop.h>
24#include <UIKit/UIKit.h>
28#include <com/sun/star/frame/theGlobalEventBroadcaster.hpp>
32#include <officecfg/Office/Common.hxx>
33#include <osl/diagnose.h>
41#include <rtl/bootstrap.hxx>
42#include <rtl/strbuf.hxx>
74 OUString aErrorStr(pDialog->
GetText());
79 sMessage = pMessDialog->get_primary_text();
149 if (pParent == pTopLevel)
151 pLastChild = pParent;
177 if (pParent == pTopLevel)
179 pLastChild = pParent;
246 OUString aText = pChild->
GetText();
248 if ( aText != aNewText )
369 return aFind->second;
377 pOwnedButton.disposeAndClear();
405 Window::PixelInvalidate(pRectangle);
420 auto it = std::find_if(rExecuteDialogs.rbegin(), rExecuteDialogs.rend(),
422 return pParent->ImplGetFirstOverlapWindow() &&
423 pParent->ImplGetFirstOverlapWindow()->IsWindowOrChild(rDialogPtr, true) &&
424 rDialogPtr->IsReallyVisible() && rDialogPtr->IsEnabled() &&
425 rDialogPtr->IsInputEnabled() && !rDialogPtr->IsInModalMode(); });
426 if (it != rExecuteDialogs.rend())
437 pBorderWin->mpWindowImpl->mpClientWindow =
this;
486 pBorderWin->mpWindowImpl->mpClientWindow =
this;
551void VclBuilderContainer::disposeBuilder()
554 m_pUIBuilder->disposeBuilder();
559 OUString sShareLayer(
"$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/config/soffice.cfg/");
560 rtl::Bootstrap::expandMacros(sShareLayer);
580 loadUI(pParent, rID, rUIXMLDescription);
630 css::uno::Reference< css::uno::XComponentContext > xContext(
632 css::uno::Reference<css::frame::XGlobalEventBroadcaster> xEventBroadcaster(css::frame::theGlobalEventBroadcaster::get(xContext), css::uno::UNO_SET_THROW);
633 css::document::DocumentEvent aObject;
634 aObject.EventName =
"DialogClosed";
635 xEventBroadcaster->documentEventOccured(aObject);
642 if (bTunnelingEnabled)
666 sal_uInt16 nKeyCode = aKeyCode.
GetCode();
723 return Size(std::max<tools::Long>(
w, 640 - 15),
724 std::max<tools::Long>(
h, 480 - 50));
735 const int n = std::min<CGFloat>([[UIScreen mainScreen] bounds].
size.width, [[UIScreen mainScreen] bounds].size.height);
764 if (bKitActive && bTunnelingEnabled)
766 std::vector<vcl::LOKPayloadItem> aItems;
767 aItems.emplace_back(
"type",
"dialog");
769 aItems.emplace_back(
"unique_id", this->
get_id().toUtf8());
771 aItems.emplace_back(
"title",
GetText().toUtf8());
805 if (pNotifier && bTunnelingEnabled)
807 std::vector<vcl::LOKPayloadItem> aPayload;
808 aPayload.emplace_back(
"title",
GetText().toUtf8());
824 if (pNotifier && bTunnelingEnabled)
826 std::vector<vcl::LOKPayloadItem> aPayload;
827 aPayload.emplace_back(
"title",
GetText().toUtf8());
860 pCustomCancelButton = pCancelButton;
862 pCustomCancelButton =
nullptr;
866 if (pCustomCancelButton)
868 pCustomCancelButton->
Click();
909 setDeferredProperties();
914 SAL_WARN(
"vcl",
"Dialog::StartExecuteModal() is called in Dialog::StartExecuteModal(): "
954 [](
const Dialog* pDialog) {
955 return pDialog->IsInSyncExecute();
960 SAL_WARN(
"lok.dialog",
"Dialog \"" <<
ImplGetDialogText(
this) <<
"\" is being synchronously executed over an existing synchronously executing dialog.");
966 <<
"\"cancelled in silent mode";
972 <<
"\"cancelled in silent mode");
991 "Dialog::StartExecuteModal() - Parent not visible" );
993 "Dialog::StartExecuteModal() - Parent input disabled, use another parent to ensure modality!" );
995 "Dialog::StartExecuteModal() - Parent already modally disabled, use another parent to ensure modality!" );
1013 if (!bKitActive && bModal)
1019 css::uno::Reference< css::uno::XComponentContext > xContext(
1021 bool bForceFocusAndToFront(officecfg::Office::Common::View::NewDocumentHandling::ForceFocusAndToFront::get());
1023 Show(
true, showFlags);
1028 css::uno::Reference<css::frame::XGlobalEventBroadcaster> xEventBroadcaster(
1029 css::frame::theGlobalEventBroadcaster::get(xContext), css::uno::UNO_SET_THROW);
1030 css::document::DocumentEvent aObject;
1031 aObject.EventName =
"DialogExecute";
1032 xEventBroadcaster->documentEventOccured(aObject);
1038 bool bTunnelingEnabled =
mpDialogImpl->m_bLOKTunneling;
1047 std::vector<vcl::LOKPayloadItem> aItems;
1049 aItems.emplace_back(
"unique_id", this->
get_id().toUtf8());
1050 pNotifier->notifyWindow(
GetLOKWindowId(),
"size_changed", aItems);
1088 OSL_FAIL(
"Dialog::Execute() - Dialog destroyed in Execute()" );
1098 return static_cast<short>(nRet);
1102 SAL_WARN(
"vcl",
"Dialog::Execute() : missing mpDialogImpl " );
1131 rExecuteDialogs.erase(std::remove_if(rExecuteDialogs.begin(), rExecuteDialogs.end(), [
this](
VclPtr<Dialog>& dialog){ return dialog.get() == this; }), rExecuteDialogs.end());
1168 if( ( !pFrameParent && !pPrevFrameParent ) ||
1185 auto fn = std::move(
mpDialogImpl->maEndCtx.maEndDialogFn);
1205 std::shared_ptr<weld::DialogController> xOwnerDialogController = std::move(
mpDialogImpl->maEndCtx.mxOwnerDialogController);
1206 std::shared_ptr<weld::Dialog> xOwnerSelf = std::move(
mpDialogImpl->maEndCtx.mxOwnerSelf);
1208 xOwnerDialogController.reset();
1220 for (
auto it = rExecuteDialogs.rbegin(); it != rExecuteDialogs.rend(); ++it)
1234 pDialog->EnableInput();
1272 if (rExecuteDialogs.size() > 1)
1273 pPrevious = rExecuteDialogs[rExecuteDialogs.size() - 2];
1334 if ( pFocusControl )
1340 if ( !pFocusControl ||
1348 return pFocusControl;
1354 if ( pFocusControl )
1361 aImplWin->GetBorder( rLeftBorder, rTopBorder, rRightBorder, rBottomBorder );
1388 aImplWin->SetText(
GetText() );
1389 aImplWin->setPosSizePixel( aPos.
X(), aPos.
Y(), aSize.
Width(), aSize.
Height() );
1390 aImplWin->SetDisplayActive(
true );
1391 aImplWin->InitView();
1393 aImplWin->Draw( pDev, aPos );
1413 bool bTunnelingEnabled =
mpDialogImpl->m_bLOKTunneling;
1415 if (pNotifier && bTunnelingEnabled)
1417 std::vector<vcl::LOKPayloadItem> aItems;
1419 aItems.emplace_back(
"unique_id", this->
get_id().toUtf8());
1426 if (rKey ==
"border-width")
1440 auto aFind = mpDialogImpl->maResponses.find(pButton);
1441 if (aFind == mpDialogImpl->maResponses.end())
1443 short nResponse = aFind->second;
1448 pFocusWin = pButton;
1458 if (bTransferOwnership)
1481 SAL_WARN(
"vcl.layout",
"The type of widget " <<
1482 pButton->
GetHelpId() <<
" is currently not handled");
1490 std::map<VclPtr<vcl::Window>,
short> aResponses(
mpDialogImpl->maResponses);
1498 if (aResponses.find(pChild) != aResponses.end())
1500 switch (pChild->GetType())
1503 aResponses[pChild] =
RET_OK;
1517 for (
const auto&
a : aResponses)
1519 if (
a.second == response)
1529 std::map<VclPtr<vcl::Window>,
short> aResponses(
mpDialogImpl->maResponses);
1537 if (aResponses.find(pChild) != aResponses.end())
1539 switch (pChild->GetType())
1542 aResponses[pChild] =
RET_OK;
1556 for (
const auto&
a : aResponses)
1569 std::map<VclPtr<vcl::Window>,
short> aResponses(
mpDialogImpl->maResponses);
1577 if (aResponses.find(pChild) != aResponses.end())
1579 switch (pChild->GetType())
1582 aResponses[pChild] =
RET_OK;
1596 for (
auto&
a : aResponses)
1598 if (
a.second == response)
1601 a.first->GrabFocus();
1610VclBuilderContainer::VclBuilderContainer()
1614void VclBuilderContainer::setDeferredProperties()
1618 m_pUIBuilder->setDeferredProperties();
1621VclBuilderContainer::~VclBuilderContainer()
1629 css::uno::Reference< css::uno::XComponentContext > xContext(
1631 css::uno::Reference<css::frame::XGlobalEventBroadcaster> xEventBroadcaster(css::frame::theGlobalEventBroadcaster::get(xContext), css::uno::UNO_SET_THROW);
1632 css::document::DocumentEvent aObject;
1633 aObject.EventName =
"ModelessDialogVisible";
1634 xEventBroadcaster->documentEventOccured(aObject);
1659 std::vector<VclPtr<vcl::Window>> aTopLevels;
1672 aTopLevels.push_back(pCandidate);
1676 for (
auto&
a : aTopLevels)
1679 a->ImplGetFrame()->NotifyModalHierarchy(
true);
1681 m_xImpl->m_aBusyStack.push(aTopLevels);
1687 for (
auto&
a :
m_xImpl->m_aBusyStack.top())
1689 if (
a->isDisposed())
1692 a->ImplGetFrame()->NotifyModalHierarchy(
false);
1699 return !
m_xImpl->m_aBusyStack.empty();
1712 if (!pActionArea->IsVisible())
1713 rJsonWriter.
put(
"collapsed",
true);
1717 sal_Int32 nStartPos = sDialogId.lastIndexOf(
'/');
1718 nStartPos = nStartPos >= 0 ? nStartPos + 1 : 0;
1719 rJsonWriter.
put(
"dialogid", sDialogId.copy(nStartPos));
1722 auto aResponses = rJsonWriter.
startArray(
"responses");
1723 for (
const auto& rResponse :
mpDialogImpl->maResponses)
1726 rJsonWriter.
put(
"id", rResponse.first->get_id());
1727 rJsonWriter.
put(
"response", rResponse.second);
1733 rJsonWriter.
put(
"init_focus_id", pFocusControl->
get_id());
const MouseSettings & GetMouseSettings() const
const StyleSettings & GetStyleSettings() const
static OUString GetUIRootDir()
static void Yield()
Process the next event.
static SystemWindowFlags GetSystemWindowMode()
Get the system window mode of dialogs.
static DialogCancelMode GetDialogCancelMode()
Gets the dialog cancel mode for headless environments.
static vcl::Window * GetNextTopLevelWindow(vcl::Window const *pWindow)
Get the next top level window.
static vcl::Window * GetFocusWindow()
Get the currently focused window.
static bool IsQuit()
Has Quit() been called?
static vcl::Window * GetFirstTopLevelWindow()
Get the first top-level window of the application.
DataChangedEventType GetType() const
AllSettingsFlags GetFlags() const
static std::unique_ptr< UIObject > create(vcl::Window *pWindow)
static SAL_DLLPRIVATE vcl::Window * GetDefaultParent(WinBits nStyle)
void set_content_area(VclBox *pBox)
virtual FactoryFunction GetUITestFactory() const override
virtual void PixelInvalidate(const tools::Rectangle *pRectangle) override
Notification about some rectangle of the output device got invalidated.
int get_default_response() const
void DumpAsPropertyTree(tools::JsonWriter &rJsonWriter) override
Dumps itself and potentially its children to a property tree, to be written easily to JSON.
virtual void DataChanged(const DataChangedEvent &rDCEvt) override
virtual void settingOptimalLayoutSize(Window *pBox) override
void ImplSetModalInputMode(bool bModal)
virtual void Command(const CommandEvent &rCEvt) override
bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx)
Commence execution of a modal dialog, disposes owner on failure.
static void ImplEndExecuteModal()
bool IsInSyncExecute() const
SAL_DLLPRIVATE bool IsInClose() const
SAL_DLLPRIVATE void disposeOwnedButtons()
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects.
std::unique_ptr< DialogImpl > mpDialogImpl
void GrabFocusToFirstControl()
virtual ~Dialog() override
virtual void Resize() override
vcl::Window * GetFirstControlForFocus()
vcl::Window * get_widget_for_response(int nResponse)
virtual void ApplySettings(vcl::RenderContext &rRenderContext) override
void EndDialog(tools::Long nResult=RET_CANCEL)
virtual bool Close() override
void SetPopupMenuHdl(const Link< const CommandEvent &, bool > &rLink)
virtual void Draw(OutputDevice *pDev, const Point &rPos, SystemTextColorFlags nFlags) override
SAL_DLLPRIVATE void ImplInitSettings()
void SetInstallLOKNotifierHdl(const Link< void *, vcl::ILibreOfficeKitNotifier * > &rLink)
virtual bool EventNotify(NotifyEvent &rNEvt) override
void ImplInitDialog(vcl::Window *pParent, WinBits nStyle, InitFlag eFlag=InitFlag::Default)
virtual void queue_resize(StateChangedType eReason=StateChangedType::Layout) override
virtual bool set_property(const OUString &rKey, const OUString &rValue) override
tools::Long mnMousePositioned
void SetModalInputMode(bool bModal)
SAL_DLLPRIVATE void RemoveFromDlgList()
virtual void StateChanged(StateChangedType nStateChange) override
VclButtonBox * get_action_area()
void set_default_response(int nResponse)
VclPtr< VclButtonBox > mpActionArea
void add_button(PushButton *pButton, int nResponse, bool bTransferOwnership)
SAL_DLLPRIVATE Dialog(const Dialog &)=delete
static SAL_DLLPRIVATE vcl::Window * GetDefDialogParent()
SAL_DLLPRIVATE void ImplInitDialogData()
void ImplLOKNotifier(vcl::Window *pParent)
Find and set the LOK notifier according to the pParent.
void GetDrawWindowBorder(sal_Int32 &rLeftBorder, sal_Int32 &rTopBorder, sal_Int32 &rRightBorder, sal_Int32 &rBottomBorder) const
void SetLOKTunnelingState(bool bEnabled)
virtual void doDeferredInit(WinBits nBits) override
VclPtr< VclBox > mpContentArea
SAL_DLLPRIVATE VclPtr< vcl::Window > AddBorderWindow(vcl::Window *pParent, WinBits nBits)
bool IsModalInputMode() const
void set_action_area(VclButtonBox *pBox)
vcl::Window * get_mnemonic_widget() const
const vcl::KeyCode & GetKeyCode() const
void RegisterMnemonic(const OUString &rKey)
OUString CreateMnemonic(const OUString &rKey)
MouseSettingsOptions GetOptions() const
const KeyEvent * GetKeyEvent() const
NotifyEventType GetType() const
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
void DrawBitmapEx(const Point &rDestPt, const BitmapEx &rBitmapEx)
void DrawRect(const tools::Rectangle &rRect)
SAL_WARN_UNUSED_RESULT Point LogicToPixel(const Point &rLogicPt) const
void Push(vcl::PushFlags nFlags=vcl::PushFlags::ALL)
bool IsNativeControlSupported(ControlType nType, ControlPart nPart) const
Query the platform layer for control support.
constexpr tools::Long Y() const
constexpr tools::Long X() const
A SalFrame is a system window (e.g. an X11 window).
void NotifyModalHierarchy(bool bModal)
virtual void SetModal(bool)
static bool IsRunningUnitTest()
A construction helper for ScopedVclPtr.
constexpr tools::Long Height() const
constexpr tools::Long Width() const
const DialogStyle & GetDialogStyle() const
bool GetAutoMnemonic() const
virtual OUString GetText() const override
void loadUI(vcl::Window *pParent, const OUString &rID, const OUString &rUIXMLDescription, const css::uno::Reference< css::frame::XFrame > &rFrame=css::uno::Reference< css::frame::XFrame >())
virtual void queue_resize(StateChangedType eReason=StateChangedType::Layout) override
virtual bool EventNotify(NotifyEvent &rNEvt) override
SAL_DLLPRIVATE void DoInitialLayout()
bool isLayoutEnabled() const
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects.
VclPtr< vcl::Window > mpDialogParent
virtual void Resize() override
std::unique_ptr< TopLevelWindowLockerImpl > m_xImpl
void incBusy(const weld::Widget *pIgnore)
void log(std::u16string_view rString)
static UITestLogger & getInstance()
A construction helper for a temporary VclPtr.
void set(reference_type *pBody)
const BitmapEx & GetBitmap() const
const Color & GetColor() const
virtual void notifyWindow(vcl::LOKWindowId nLOKWindowId, const OUString &rAction, const std::vector< LOKPayloadItem > &rPayload=std::vector< LOKPayloadItem >()) const =0
Callbacks.
sal_uInt16 GetCode() const
SAL_DLLPRIVATE vcl::Window * ImplFindDlgCtrlWindow(vcl::Window *pWindow)
const Wallpaper & GetBackground() const
void SetActivateMode(ActivateModeFlags nMode)
bool IsReallyVisible() const
vcl::Window * GetParent() const
virtual void RequestHelp(const HelpEvent &rHEvt)
virtual void StateChanged(StateChangedType nStateChange)
SAL_DLLPRIVATE bool ImplIsPushButton() const
bool IsInputEnabled() const
void SetLOKNotifier(const vcl::ILibreOfficeKitNotifier *pNotifier, bool bParent=false)
Interface to register for dialog / window tunneling.
SAL_DLLPRIVATE vcl::Window * ImplGetDlgWindow(sal_uInt16 n, GetDlgWindowType nType, sal_uInt16 nStart=0, sal_uInt16 nEnd=0xFFFF, sal_uInt16 *pIndex=nullptr)
bool HasChildPathFocus(bool bSystemWindow=false) const
void EndTracking(TrackingEventFlags nFlags=TrackingEventFlags::NONE)
const OUString & get_id() const
Get the ID of the window.
WindowType GetType() const
virtual void Command(const CommandEvent &rCEvt)
vcl::Window * GetWindow(GetWindowType nType) const
void set_border_width(sal_Int32 nBorderWidth)
SAL_DLLPRIVATE vcl::Window * ImplGetBorderWindow() const
ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
void ReleaseLOKNotifier()
Indicate that LOK is not going to use this dialog any more.
bool IsCreatedWithToolkit() const
const AllSettings & GetSettings() const
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
const OUString & GetHelpId() const
bool IsNativeControlSupported(ControlType nType, ControlPart nPart) const
Query the platform layer for control support.
SAL_DLLPRIVATE vcl::Window * ImplGetParent() const
SAL_DLLPRIVATE vcl::Window * ImplGetFirstOverlapWindow()
VclPtr< vcl::Window > GetParentWithLOKNotifier()
Find the nearest parent with LOK Notifier; can be itself if this Window has LOK notifier set.
const vcl::ILibreOfficeKitNotifier * GetLOKNotifier() const
bool IsInModalMode() const
A window is in modal mode if one of its children or subchildren is a running modal window (a modal di...
void SetPointerPosPixel(const Point &rPos)
std::unique_ptr< WindowImpl > mpWindowImpl
vcl::LOKWindowId GetLOKWindowId() const
SalFrame * ImplGetFrame() const
virtual void DumpAsPropertyTree(tools::JsonWriter &)
Dumps itself and potentially its children to a property tree, to be written easily to JSON.
virtual Size GetSizePixel() const
Size GetOutputSizePixel() const
bool IsControlBackground() const
virtual void DataChanged(const DataChangedEvent &rDCEvt)
Point GetPointerPosPixel()
const Color & GetControlBackground() const
bool IsWindowOrChild(const vcl::Window *pWindow, bool bSystemWindow=false) const
virtual void ImplAdjustNWFSizes()
void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
weld::Window * GetFrameWeld() const
void CallEventListeners(VclEventId nEvent, void *pData=nullptr)
virtual void SetText(const OUString &rStr)
virtual OUString GetText() const
vcl::Window * ImplGetWindow() const
if this is a proxy return the client, otherwise itself
virtual bool set_property(const OUString &rKey, const OUString &rValue)
SAL_DLLPRIVATE vcl::Window * ImplGetFrameWindow() const
SAL_DLLPRIVATE void ImplInit(vcl::Window *pParent, WinBits nStyle, SystemParentData *pSystemParentData)
void EnableChildTransparentMode(bool bEnable=true)
void EnableInput(bool bEnable=true, bool bChild=true)
SAL_DLLPRIVATE void ImplControlFocus(GetFocusFlags nFlags=GetFocusFlags::NONE)
Size bestmaxFrameSizeForScreenSize(const Size &rScreenSize)
static PushButton * ImplGetDefaultButton(Dialog const *pDialog)
IMPL_LINK(Dialog, ResponseHdl, Button *, pButton, void)
static OString ImplGetDialogText(Dialog *pDialog)
vcl::Window * firstLogicalChildOfParent(const vcl::Window *pTopLevel)
vcl::Window * lastLogicalChildOfParent(const vcl::Window *pTopLevel)
void GenerateAutoMnemonicsOnHierarchy(const vcl::Window *pWindow)
static PushButton * ImplGetCancelButton(Dialog const *pDialog)
static bool ImplIsMnemonicCtrl(vcl::Window *pWindow)
static VclButtonBox * getActionArea(Dialog const *pDialog)
static vcl::Window * getActionAreaButtonList(Dialog const *pDialog)
vcl::Window * prevLogicalChildOfParent(const vcl::Window *pTopLevel, const vcl::Window *pChild)
static void ImplMouseAutoPos(Dialog *pDialog)
vcl::Window * nextLogicalChildOfParent(const vcl::Window *pTopLevel, const vcl::Window *pChild)
static PushButton * ImplGetOKButton(Dialog const *pDialog)
IMPL_LINK_NOARG(Dialog, ImplAsyncCloseHdl, void *, void)
virtual void EndDialog(sal_Int32 nResult) override
std::function< std::unique_ptr< UIObject >(vcl::Window *)> FactoryFunction
constexpr sal_uInt16 KEY_ESCAPE
bool isEnabledInLayout(const vcl::Window *pWindow)
bool isVisibleInLayout(const vcl::Window *pWindow)
bool isContainerWindow(const vcl::Window &rWindow)
#define LINK(Instance, Class, Member)
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
#define SAL_INFO(area, stream)
Reference< XComponentContext > getProcessComponentContext()
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
OUString toString(OptionInfo const *info)
void CloseTopLevel(vcl::Window *pWindow)
void EndAllDialogs(vcl::Window const *pParent)
void EnableDialogInput(vcl::Window *pWindow)
std::map< VclPtr< vcl::Window >, short > maResponses
Link< const CommandEvent &, bool > m_aPopupMenuHdl
short get_response(vcl::Window *pWindow) const
VclAbstractDialog::AsyncContext maEndCtx
Link< void *, vcl::ILibreOfficeKitNotifier * > m_aInstallLOKNotifierHdl
std::vector< VclPtr< PushButton > > maOwnedButtons
ImplSVFrameData maFrameData
ImplSVWinData * mpWinData
VclPtr< vcl::Window > mpIntroWindow
VclPtr< WorkWindow > mpAppWin
VclPtr< vcl::Window > mpCaptureWin
VclPtr< vcl::Window > mpTrackWin
std::vector< VclPtr< Dialog > > mpExecuteDialogs
Stack of dialogs that are Execute()'d - the last one is the top most one.
std::stack< std::vector< VclPtr< vcl::Window > > > m_aBusyStack
std::shared_ptr< weld::Dialog > mxOwnerSelf
std::shared_ptr< weld::DialogController > mxOwnerDialogController
VclPtr< VclReferenceBase > mxOwner
@ Silent
silently cancel any dialogs
@ Fatal
cancel any dialogs by std::abort
@ Off
do not automatically cancel dialogs
@ LOKSilent
silently cancel any dialogs (LOK case)
ImplSVData * ImplGetSVData()
WinBits const WB_CLOSEABLE
WinBits const WB_MOVEABLE
WinBits const WB_DIALOGCONTROL
WinBits const WB_SIZEABLE
WinBits const WB_SYSTEMWINDOW
WinBits const WB_DEFBUTTON
WinBits const WB_NODIALOGCONTROL
WinBits const WB_STANDALONE
WinBits const WB_ALLOWMENUBAR
WinBits const WB_NOBORDER