LibreOffice Module sfx2 (master) 1
childwin.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#include <memory>
22#include <com/sun/star/frame/XController.hpp>
23#include <com/sun/star/frame/XFrame.hpp>
24#include <com/sun/star/util/XCloseable.hpp>
25#include <com/sun/star/beans/NamedValue.hpp>
26#include <comphelper/string.hxx>
28#include <sal/log.hxx>
29#include <tools/debug.hxx>
30
31#include <vcl/svapp.hxx>
32#include <sfx2/childwin.hxx>
33#include <sfx2/app.hxx>
34#include <sfx2/bindings.hxx>
35#include <sfx2/module.hxx>
36#include <sfx2/dockwin.hxx>
37#include <sfx2/dispatch.hxx>
38#include <workwin.hxx>
39
40#include <sfx2/sfxsids.hrc>
41#include <o3tl/string_view.hxx>
42
43const sal_uInt16 nVersion = 2;
44
46 sal_uInt16 n )
47 : pCtor(pTheCtor)
48 , nId( nID )
49 , nPos(n)
50{}
51
53{
54 css::uno::Reference< css::frame::XFrame > xFrame;
55 css::uno::Reference< css::lang::XEventListener > xListener;
56 SfxChildWinFactory aFact = { nullptr, 0, 0 };
61};
62
63namespace {
64
65class DisposeListener : public ::cppu::WeakImplHelper< css::lang::XEventListener >
66{
67 public:
68 DisposeListener( SfxChildWindow* pOwner ,
70 : m_pOwner( pOwner )
71 , m_pData ( pData )
72 {}
73
74 virtual void SAL_CALL disposing( const css::lang::EventObject& aSource ) override
75 {
76 css::uno::Reference< css::lang::XEventListener > xSelfHold( this );
77
78 css::uno::Reference< css::lang::XComponent > xComp( aSource.Source, css::uno::UNO_QUERY );
79 if( xComp.is() )
80 xComp->removeEventListener( this );
81
82 if( !m_pOwner || !m_pData )
83 return;
84
85 m_pData->xListener.clear();
86
87 if ( m_pData->pWorkWin )
88 {
89 // m_pOwner and m_pData will be killed
90 m_pData->xFrame.clear();
91 m_pData->pWorkWin->GetBindings().Execute( m_pOwner->GetType() );
92 }
93 else
94 {
95 delete m_pOwner;
96 }
97
98 m_pOwner = nullptr;
99 m_pData = nullptr;
100 }
101
102 private:
105};
106
107}
108
109bool GetPosSizeFromString( std::u16string_view rStr, Point& rPos, Size& rSize )
110{
111 if ( comphelper::string::getTokenCount(rStr, '/') != 4 )
112 return false;
113
114 sal_Int32 nIdx = 0;
115 rPos.setX( o3tl::toInt32(o3tl::getToken(rStr, 0, '/', nIdx)) );
116 rPos.setY( o3tl::toInt32(o3tl::getToken(rStr, 0, '/', nIdx)) );
117 rSize.setWidth( o3tl::toInt32(o3tl::getToken(rStr, 0, '/', nIdx)) );
118 rSize.setHeight( o3tl::toInt32(o3tl::getToken(rStr, 0, '/', nIdx)) );
119
120 // negative sizes are invalid
121 return rSize.Width() >= 0 && rSize.Height() >= 0;
122}
123
124bool GetSplitSizeFromString( std::u16string_view rStr, Size& rSize )
125{
126 size_t nIndex = rStr.find( ',' );
127 if ( nIndex != std::u16string_view::npos )
128 {
129 std::u16string_view aStr = rStr.substr( nIndex+1 );
130
132 if ( nCount != 2 )
133 return false;
134
135 sal_Int32 nIdx{ 0 };
136 rSize.setWidth( o3tl::toInt32(o3tl::getToken(aStr, 0, ';', nIdx )) );
137 rSize.setHeight( o3tl::toInt32(o3tl::getToken(aStr, 0, ';', nIdx )) );
138
139 // negative sizes are invalid
140 return rSize.Width() >= 0 && rSize.Height() >= 0;
141 }
142
143 return false;
144}
145
146SfxChildWindow::SfxChildWindow(vcl::Window *pParentWindow, sal_uInt16 nId)
147 : pParent(pParentWindow)
148 , pImpl(new SfxChildWindow_Impl)
149 , eChildAlignment(SfxChildAlignment::NOALIGNMENT)
150 , nType(nId)
151{
152 pImpl->bHideNotDelete = false;
153 pImpl->bWantsFocus = true;
154 pImpl->bVisible = true;
155 pImpl->pWorkWin = nullptr;
156}
157
159{
160 if ( GetFrame().is() )
161 {
162 ClearWorkwin();
163 try
164 {
165 css::uno::Reference < css::util::XCloseable > xClose( GetFrame(), css::uno::UNO_QUERY );
166 if ( xClose.is() )
167 xClose->close( true );
168 else
169 GetFrame()->dispose();
170 }
171 catch (const css::uno::Exception&)
172 {
173 }
174 }
175 else
176 delete this;
177}
178
180{
181 if (pImpl->pWorkWin)
182 {
183 if (pImpl->pWorkWin->GetActiveChild_Impl() == pWindow)
184 pImpl->pWorkWin->SetActiveChild_Impl(nullptr);
185 pImpl->pWorkWin = nullptr;
186 }
187}
188
190{
191 ClearWorkwin();
192 if (xController)
193 {
194 xController->ChildWinDispose();
195 xController.reset();
196 }
198}
199
200std::unique_ptr<SfxChildWindow> SfxChildWindow::CreateChildWindow( sal_uInt16 nId,
201 vcl::Window *pParent, SfxBindings* pBindings, SfxChildWinInfo const & rInfo)
202{
203 std::unique_ptr<SfxChildWindow> pChild;
204 SfxChildWinFactory* pFact=nullptr;
206
207 // First search for ChildWindow in SDT; Overlay windows are realized
208 // by using ChildWindowContext
209 SfxApplication *pApp = SfxGetpApp();
210 {
211 pFact = pApp->GetChildWinFactoryById(nId);
212 if ( pFact )
213 {
214 if ( rInfo.bVisible )
215 {
216 if ( pBindings )
217 pBindings->ENTERREGISTRATIONS();
218 SfxChildWinInfo aInfo = rInfo;
219 Application::SetSystemWindowMode( SystemWindowFlags::NOAUTOMODE );
220 pChild = pFact->pCtor( pParent, nId, pBindings, &aInfo );
222 if ( pBindings )
223 pBindings->LEAVEREGISTRATIONS();
224 }
225 }
226 }
227
228 SfxDispatcher *pDisp = pBindings ? pBindings->GetDispatcher_Impl() : nullptr;
229 SfxModule *pMod = pDisp ? SfxModule::GetActiveModule( pDisp->GetFrame() ) : nullptr;
230 if (!pChild && pMod)
231 {
232 pFact = pMod->GetChildWinFactoryById(nId);
233 if ( pFact )
234 {
235 if ( rInfo.bVisible )
236 {
237 if ( pBindings )
238 pBindings->ENTERREGISTRATIONS();
239 SfxChildWinInfo aInfo = rInfo;
240 Application::SetSystemWindowMode( SystemWindowFlags::NOAUTOMODE );
241 pChild = pFact->pCtor( pParent, nId, pBindings, &aInfo );
243 if ( pBindings )
244 pBindings->LEAVEREGISTRATIONS();
245 }
246 }
247 }
248
249 if (pChild)
250 {
251 assert(pFact && "pChild is returned by a call on pFact, so pFact cannot be null");
252 pChild->SetFactory_Impl( pFact );
253 }
254
255 DBG_ASSERT(pFact && (pChild || !rInfo.bVisible), "ChildWindow-Typ not registered!");
256
257 if (pChild && (!pChild->pWindow && !pChild->xController))
258 {
259 pChild.reset();
260 SAL_INFO("sfx.appl", "ChildWindow has no Window!");
261 }
262
263 return pChild;
264}
265
266
268{
269 sal_uInt16 nID = GetType();
270
271 OUString aInfoVisible = rInfo.bVisible ? OUString("V") : OUString("H");
272
273 OUString aWinData = "V"
274 + OUString::number(static_cast<sal_Int32>(nVersion))
275 + ","
276 + aInfoVisible
277 + ","
278 + OUString::number(static_cast<sal_Int32>(rInfo.nFlags));
279
280 if ( !rInfo.aExtraString.isEmpty() )
281 aWinData += "," + rInfo.aExtraString;
282
283 OUString sName(OUString::number(nID));
284 //Try and save window state per-module, e.g. sidebar on in one application
285 //but off in another
286 if (!rInfo.aModule.isEmpty())
287 sName = rInfo.aModule + "/" + sName;
288 SvtViewOptions aWinOpt(EViewType::Window, sName);
289 aWinOpt.SetWindowState(rInfo.aWinState);
290
291 css::uno::Sequence < css::beans::NamedValue > aSeq
292 { { "Data", css::uno::Any(aWinData) } };
293 aWinOpt.SetUserData( aSeq );
294
295 // ... but save status at runtime!
296 pImpl->aFact.aInfo = rInfo;
297}
298
300{
301 eChildAlignment = eAlign;
302}
303
305{
306 SfxChildWinInfo aInfo(pImpl->aFact.aInfo);
307 if (xController)
308 {
309 weld::Dialog* pDialog = xController->getDialog();
310 aInfo.aPos = pDialog->get_position();
311 aInfo.aSize = pDialog->get_size();
313 if (pDialog->get_resizable())
315 aInfo.aWinState = pDialog->get_window_state(nMask);
316 }
317 else if (pWindow)
318 {
319 aInfo.aPos = pWindow->GetPosPixel();
320 aInfo.aSize = pWindow->GetSizePixel();
321 if ( pWindow->IsSystemWindow() )
322 {
324 if ( pWindow->GetStyle() & WB_SIZEABLE )
326 aInfo.aWinState = static_cast<SystemWindow*>(pWindow.get())->GetWindowState( nMask );
327 }
328 else if (DockingWindow* pDockingWindow = dynamic_cast<DockingWindow*>(pWindow.get()))
329 {
330 if (pDockingWindow->GetFloatingWindow())
331 aInfo.aWinState = pDockingWindow->GetFloatingWindow()->GetWindowState();
332 else if (SfxDockingWindow* pSfxDockingWindow = dynamic_cast<SfxDockingWindow*>(pDockingWindow))
333 {
334 SfxChildWinInfo aTmpInfo;
335 pSfxDockingWindow->FillInfo( aTmpInfo );
336 aInfo.aExtraString = aTmpInfo.aExtraString;
337 }
338 }
339 }
340
341 aInfo.bVisible = pImpl->bVisible;
343 return aInfo;
344}
345
347{
348 return pImpl->aFact.nPos;
349}
350
352{
353 // load configuration
354
355 std::optional<SvtViewOptions> xWinOpt;
356 // first see if a module specific id exists
357 if (rInfo.aModule.getLength())
358 xWinOpt.emplace(EViewType::Window, rInfo.aModule + "/" + OUString::number(nId));
359
360 // if not then try the generic id
361 if (!xWinOpt || !xWinOpt->Exists())
362 xWinOpt.emplace(EViewType::Window, OUString::number(nId));
363
364 if (xWinOpt->Exists() && xWinOpt->HasVisible() )
365 rInfo.bVisible = xWinOpt->IsVisible(); // set state from configuration. Can be overwritten by UserData, see below
366
367 css::uno::Sequence < css::beans::NamedValue > aSeq = xWinOpt->GetUserData();
368
369 OUString aTmp;
370 if ( aSeq.hasElements() )
371 aSeq[0].Value >>= aTmp;
372
373 OUString aWinData( aTmp );
374 rInfo.aWinState = xWinOpt->GetWindowState();
375
376 if ( aWinData.isEmpty() )
377 return;
378
379 // Search for version ID
380 if ( aWinData[0] != 0x0056 ) // 'V' = 56h
381 // A version ID, so do not use
382 return;
383
384 // Delete 'V'
385 aWinData = aWinData.copy(1);
386
387 // Read version
388 char cToken = ',';
389 sal_Int32 nPos = aWinData.indexOf( cToken );
390 sal_uInt16 nActVersion = static_cast<sal_uInt16>(o3tl::toInt32(aWinData.subView( 0, nPos + 1 )));
391 if ( nActVersion != nVersion )
392 return;
393
394 aWinData = aWinData.copy(nPos+1);
395
396 // Load Visibility: is coded as a char
397 rInfo.bVisible = (aWinData[0] == 0x0056); // 'V' = 56h
398 aWinData = aWinData.copy(1);
399 nPos = aWinData.indexOf( cToken );
400 if (nPos == -1)
401 return;
402
403 sal_Int32 nNextPos = aWinData.indexOf( cToken, 2 );
404 if ( nNextPos != -1 )
405 {
406 // there is extra information
407 rInfo.nFlags = static_cast<SfxChildWindowFlags>(static_cast<sal_uInt16>(o3tl::toInt32(aWinData.subView( nPos+1, nNextPos - nPos - 1 ))));
408 aWinData = aWinData.replaceAt( nPos, nNextPos-nPos+1, u"" );
409 rInfo.aExtraString = aWinData;
410 }
411 else
412 rInfo.nFlags = static_cast<SfxChildWindowFlags>(static_cast<sal_uInt16>(o3tl::toInt32(aWinData.subView( nPos+1 ))));
413}
414
416{
417 if (!pParent)
418 return false;
419 if (pParent->GetType() == WindowType::DOCKINGWINDOW || pParent->GetType() == WindowType::TOOLBOX)
420 return static_cast<const DockingWindow*>(pParent)->GetFloatingWindow() != nullptr;
421 if (pParent->GetType() == WindowType::FLOATINGWINDOW)
422 return true;
423 return false;
424}
425
427{
428 pImpl->aFact = *pF;
429}
430
432{
433 pImpl->bHideNotDelete = bOn;
434}
435
437{
438 return pImpl->bHideNotDelete;
439}
440
442{
443 pImpl->bWantsFocus = bSet;
444}
445
447{
448 return pImpl->bWantsFocus;
449}
450
452(
453 SfxChildAlignment *pAlign
454) const
455{
456 // invalid?
457 if ( aExtraString.isEmpty() )
458 return false;
459 OUString aStr;
460 sal_Int32 nPos = aExtraString.indexOf("AL:");
461 if ( nPos == -1 )
462 return false;
463
464 // Try to read the alignment string "ALIGN :(...)", but if
465 // it is not present, then use an older version
466 sal_Int32 n1 = aExtraString.indexOf('(', nPos);
467 if ( n1 != -1 )
468 {
469 sal_Int32 n2 = aExtraString.indexOf(')', n1);
470 if ( n2 != -1 )
471 {
472 // Cut out Alignment string
473 aStr = aExtraString.copy(nPos, n2 - nPos + 1);
474 aStr = aStr.replaceAt(nPos, n1-nPos+1, u"");
475 }
476 }
477
478 // First extract the Alignment
479 if ( aStr.isEmpty() )
480 return false;
481 if ( pAlign )
482 *pAlign = static_cast<SfxChildAlignment>(static_cast<sal_uInt16>(aStr.toInt32()));
483
484 // then the LastAlignment
485 nPos = aStr.indexOf(',');
486 if ( nPos == -1 )
487 return false;
488 aStr = aStr.copy(nPos+1);
489
490 // Then the splitting information
491 nPos = aStr.indexOf(',');
492 if ( nPos == -1 )
493 // No docking in a Splitwindow
494 return true;
495 aStr = aStr.copy(nPos+1);
496 Point aChildPos;
497 Size aChildSize;
498 return GetPosSizeFromString( aStr, aChildPos, aChildSize );
499}
500
502{
503 return pImpl->bVisible;
504}
505
507{
508 pImpl->bVisible = bVis;
509}
510
512{
513 if (xController)
515 else
516 pWindow->Hide();
517}
518
520{
521 if (xController)
522 {
523 if (!xController->getDialog()->get_visible())
524 {
525 if (!xController->CloseOnHide())
526 {
527 // tdf#155708 - do not run a new (Async) validation window,
528 // because we already have one in sync mode, just show the running one
529 xController->getDialog()->show();
530 }
531 else
532 {
534 [this](sal_Int32 nResult) {
535 if (nResult == nCloseResponseToJustHide)
536 return;
537 xController->Close();
538 });
539 }
540 }
541 }
542 else
543 pWindow->Show(true, nFlags);
544}
545
547{
548 pImpl->pWorkWin = pWin;
549 if (pWin)
550 {
551 if ( (xController && xController->getDialog()->has_toplevel_focus()) ||
552 (pWindow && pWindow->HasChildPathFocus()) )
553 {
554 pImpl->pWorkWin->SetActiveChild_Impl( pWindow );
555 }
556 }
557}
558
560{
561 if(pImpl->pWorkWin!=nullptr)
562 pImpl->pWorkWin->SetActiveChild_Impl( pWindow );
563}
564
566{
567 bool bAllow = true;
568
569 if ( pImpl->xFrame.is() )
570 {
571 css::uno::Reference< css::frame::XController > xCtrl = pImpl->xFrame->getController();
572 if ( xCtrl.is() )
573 bAllow = xCtrl->suspend( true );
574 }
575
576 if ( bAllow )
577 {
578 if (GetController())
579 {
580 weld::Dialog* pDialog = GetController()->getDialog();
581 bAllow = !pDialog->get_visible() || !pDialog->get_modal();
582 }
583 else if (GetWindow())
584 bAllow = !GetWindow()->IsInModalMode();
585 }
586
587 return bAllow;
588}
589
590const css::uno::Reference< css::frame::XFrame >& SfxChildWindow::GetFrame() const
591{
592 return pImpl->xFrame;
593}
594
595void SfxChildWindow::SetFrame( const css::uno::Reference< css::frame::XFrame > & rFrame )
596{
597 // Do nothing if nothing will be changed ...
598 if( pImpl->xFrame == rFrame )
599 return;
600
601 // ... but stop listening on old frame, if connection exist!
602 if( pImpl->xFrame.is() )
603 pImpl->xFrame->removeEventListener( pImpl->xListener );
604
605 // If new frame is not NULL -> we must guarantee valid listener for disposing events.
606 // Use already existing or create new one.
607 if( rFrame.is() )
608 if( !pImpl->xListener.is() )
609 pImpl->xListener.set( new DisposeListener( this, pImpl.get() ) );
610
611 // Set new frame in data container
612 // and build new listener connection, if necessary.
613 pImpl->xFrame = rFrame;
614 if( pImpl->xFrame.is() )
615 pImpl->xFrame->addEventListener( pImpl->xListener );
616}
617
619{
620 SfxGetpApp()->RegisterChildWindow_Impl( pMod, rFact );
621}
622
623/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SfxApplication * SfxGetpApp()
Definition: app.hxx:231
SfxChildAlignment
Definition: chalign.hxx:27
bool GetSplitSizeFromString(std::u16string_view rStr, Size &rSize)
Definition: childwin.cxx:124
bool GetPosSizeFromString(std::u16string_view rStr, Point &rPos, Size &rSize)
Definition: childwin.cxx:109
const sal_uInt16 nVersion
Definition: childwin.cxx:43
bool ParentIsFloatingWindow(const vcl::Window *pParent)
Definition: childwin.cxx:415
std::unique_ptr< SfxChildWindow >(* SfxChildWinCtor)(vcl::Window *pParentWindow, sal_uInt16 nId, SfxBindings *pBindings, SfxChildWinInfo *pInfo)
Definition: childwin.hxx:80
SfxChildWindowFlags
Definition: childwin.hxx:42
const int nCloseResponseToJustHide
Definition: childwin.hxx:158
static SystemWindowFlags GetSystemWindowMode()
static void SetSystemWindowMode(SystemWindowFlags nMode)
void setX(tools::Long nX)
void setY(tools::Long nY)
SAL_DLLPRIVATE SfxChildWinFactory * GetChildWinFactoryById(sal_uInt16 nId) const
Definition: appchild.cxx:48
SAL_DLLPRIVATE void RegisterChildWindow_Impl(SfxModule *, const SfxChildWinFactory &)
Definition: appchild.cxx:29
SAL_DLLPRIVATE SfxDispatcher * GetDispatcher_Impl()
Definition: bindings.hxx:180
virtual void Hide()
Definition: childwin.cxx:511
bool IsHideNotDelete() const
Definition: childwin.cxx:436
const css::uno::Reference< css::frame::XFrame > & GetFrame() const
Definition: childwin.cxx:590
void Destroy()
Definition: childwin.cxx:158
static SAL_DLLPRIVATE void InitializeChildWinFactory_Impl(sal_uInt16, SfxChildWinInfo &)
Definition: childwin.cxx:351
void SetFrame(const css::uno::Reference< css::frame::XFrame > &)
Definition: childwin.cxx:595
sal_uInt16 GetType() const
Definition: childwin.hxx:131
SAL_DLLPRIVATE void SetWorkWindow_Impl(SfxWorkWindow *)
Definition: childwin.cxx:546
void SetAlignment(SfxChildAlignment eAlign)
Definition: childwin.cxx:299
static void RegisterChildWindow(SfxModule *, const SfxChildWinFactory &)
Definition: childwin.cxx:618
SfxChildAlignment eChildAlignment
Definition: childwin.hxx:105
void SetVisible_Impl(bool bVis)
Definition: childwin.cxx:506
virtual bool QueryClose()
Definition: childwin.cxx:565
vcl::Window * GetWindow() const
Definition: childwin.hxx:117
bool IsVisible() const
Definition: childwin.cxx:501
SAL_DLLPRIVATE void SetFactory_Impl(const SfxChildWinFactory *)
Definition: childwin.cxx:426
VclPtr< vcl::Window > pParent
Definition: childwin.hxx:101
std::shared_ptr< SfxDialogController > & GetController()
Definition: childwin.hxx:121
SfxChildWindow(vcl::Window *pParentWindow, sal_uInt16 nId)
Definition: childwin.cxx:146
virtual ~SfxChildWindow()
Definition: childwin.cxx:189
void SaveStatus(const SfxChildWinInfo &rInfo)
Definition: childwin.cxx:267
static std::unique_ptr< SfxChildWindow > CreateChildWindow(sal_uInt16, vcl::Window *, SfxBindings *, SfxChildWinInfo const &)
Definition: childwin.cxx:200
std::unique_ptr< SfxChildWindow_Impl > pImpl
Definition: childwin.hxx:103
virtual SfxChildWinInfo GetInfo() const
Definition: childwin.cxx:304
VclPtr< vcl::Window > pWindow
Definition: childwin.hxx:102
sal_uInt16 GetPosition() const
Definition: childwin.cxx:346
void SetHideNotDelete(bool bOn)
Definition: childwin.cxx:431
SAL_DLLPRIVATE void ClearWorkwin()
Definition: childwin.cxx:179
bool WantsFocus() const
Definition: childwin.cxx:446
void SetWantsFocus(bool)
Definition: childwin.cxx:441
SAL_DLLPRIVATE void Activate_Impl()
Definition: childwin.cxx:559
std::shared_ptr< SfxDialogController > xController
Definition: childwin.hxx:104
virtual void Show(ShowFlags nFlags)
Definition: childwin.cxx:519
SfxViewFrame * GetFrame() const
Returns a pointer to the <SfxViewFrame> instance, which belongs to this SfxDispatcher.
Definition: dispatch.cxx:557
static SfxModule * GetActiveModule(SfxViewFrame *pFrame=nullptr)
Definition: module.cxx:208
SAL_DLLPRIVATE SfxChildWinFactory * GetChildWinFactoryById(sal_uInt16 nId) const
Definition: module.cxx:188
constexpr tools::Long Height() const
void setWidth(tools::Long nWidth)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
void SetWindowState(const OUString &sState)
void SetUserData(const css::uno::Sequence< css::beans::NamedValue > &lData)
void disposeAndClear()
reference_type * get() const
WindowType GetType() const
bool IsInModalMode() const
static bool runAsync(const std::shared_ptr< DialogController > &rController, const std::function< void(sal_Int32)> &)
virtual bool get_visible() const=0
virtual Point get_position() const=0
virtual OUString get_window_state(vcl::WindowDataMask nMask) const=0
virtual bool get_resizable() const=0
virtual Size get_size() const=0
virtual bool get_modal() const=0
int nCount
#define DBG_ASSERT(sCon, aError)
float u
FmFilterData * m_pData
OUString sName
sal_Int32 nIndex
sal_Int64 n
SvLinkSource * pOwner
Definition: linksrc.cxx:41
sal_uInt16 nPos
Definition: linksrc.cxx:118
Sequence< sal_Int8 > aSeq
Definition: lnkbase2.cxx:83
#define SAL_INFO(area, stream)
aStr
Definition: mgetempl.cxx:407
std::unique_ptr< sal_Int32[]> pData
int n2
int n1
sal_Int32 getTokenCount(std::string_view rIn, char cTok)
sal_Int32 toInt32(std::u16string_view str, sal_Int16 radix=10)
std::basic_string_view< charT, traits > getToken(std::basic_string_view< charT, traits > sv, charT delimiter, std::size_t &position)
WindowDataMask
sal_Int16 nId
ContentProvider * m_pOwner
QPRO_FUNC_TYPE nType
SfxChildWinCtor pCtor
Definition: childwin.hxx:87
SfxChildWinFactory(SfxChildWinCtor pTheCtor, sal_uInt16 nID, sal_uInt16 n)
Definition: childwin.cxx:45
OUString aModule
Definition: childwin.hxx:64
SfxChildWindowFlags nFlags
Definition: childwin.hxx:68
OUString aWinState
Definition: childwin.hxx:65
OUString aExtraString
Definition: childwin.hxx:63
bool GetExtraData_Impl(SfxChildAlignment *pAlign) const
Definition: childwin.cxx:452
css::uno::Reference< css::lang::XEventListener > xListener
Definition: childwin.cxx:55
SfxWorkWindow * pWorkWin
Definition: childwin.cxx:60
css::uno::Reference< css::frame::XFrame > xFrame
Definition: childwin.cxx:54
SfxChildWinFactory aFact
Definition: childwin.cxx:56
SystemWindowFlags
ShowFlags
WinBits const WB_SIZEABLE