LibreOffice Module svx (master) 1
fmview.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 <sfx2/docfile.hxx>
21#ifdef REFERENCE
22#undef REFERENCE
23#endif
24#include <com/sun/star/sdb/SQLContext.hpp>
25#include <com/sun/star/sdbc/XConnection.hpp>
26#include <com/sun/star/form/XLoadable.hpp>
27#include <fmvwimp.hxx>
28#include <sfx2/objsh.hxx>
29#include <sfx2/viewsh.hxx>
30#include <sfx2/viewfrm.hxx>
31#include <sfx2/bindings.hxx>
32#include <fmobj.hxx>
33#include <svx/svditer.hxx>
34#include <svx/svdpagv.hxx>
35#include <svx/fmview.hxx>
36#include <svx/fmmodel.hxx>
37#include <svx/fmpage.hxx>
38#include <svx/fmshell.hxx>
39#include <fmshimp.hxx>
40#include <fmservs.hxx>
41#include <fmundo.hxx>
44#include <o3tl/deleter.hxx>
46#include <com/sun/star/lang/XServiceInfo.hpp>
47#include <com/sun/star/awt/XControl.hpp>
48#include <tools/debug.hxx>
49#include <svx/sdrpagewindow.hxx>
51#include <svx/svxids.hrc>
52#include <vcl/i18nhelp.hxx>
53#include <vcl/window.hxx>
54#include <o3tl/string_view.hxx>
55
56using namespace ::com::sun::star;
57using namespace ::com::sun::star::uno;
58using namespace ::com::sun::star::lang;
59using namespace ::com::sun::star::sdbc;
60using namespace ::com::sun::star::sdb;
61using namespace ::com::sun::star::beans;
62using namespace ::com::sun::star::container;
63using namespace ::com::sun::star::form;
64using namespace ::com::sun::star::util;
65using namespace ::svxform;
66using namespace ::svx;
67
69 SdrModel& rSdrModel,
70 OutputDevice* pOut)
71: E3dView(rSdrModel, pOut)
72{
73 Init();
74}
75
77{
78 pFormShell = nullptr;
79 pImpl = new FmXFormView(this);
80
81 // set model
82 SdrModel* pModel = &GetModel();
83
84 DBG_ASSERT( dynamic_cast<const FmFormModel*>( pModel) != nullptr, "Wrong model" );
85 FmFormModel* pFormModel = dynamic_cast<FmFormModel*>(pModel);
86 if( !pFormModel )
87 return;
88
89 // get DesignMode from model
90 bool bInitDesignMode = pFormModel->GetOpenInDesignMode();
91 if ( pFormModel->OpenInDesignModeIsDefaulted( ) )
92 { // this means that nobody ever explicitly set this on the model, and the model has never
93 // been loaded from a stream.
94 // This means this is a newly created document. This means, we want to have it in design
95 // mode by default (though a newly created model returns true for GetOpenInDesignMode).
96 // We _want_ to have this because it makes a lot of hacks following the original fix
97 DBG_ASSERT( !bInitDesignMode, "FmFormView::Init: doesn't the model default to FALSE anymore?" );
98 // if this asserts, either the on-construction default in the model has changed (then this here
99 // may not be necessary anymore), or we're not dealing with a new document...
100 bInitDesignMode = true;
101 }
102
103 SfxObjectShell* pObjShell = pFormModel->GetObjectShell();
104 if ( pObjShell && pObjShell->GetMedium() )
105 {
106 if ( const SfxUnoAnyItem *pItem = pObjShell->GetMedium()->GetItemSet().GetItemIfSet( SID_COMPONENTDATA, false ) )
107 {
108 ::comphelper::NamedValueCollection aComponentData( pItem->GetValue() );
109 bInitDesignMode = aComponentData.getOrDefault( "ApplyFormDesignMode", bInitDesignMode );
110 }
111 }
112
113 // this will be done in the shell
114 // bDesignMode = !bInitDesignMode; // forces execution of SetDesignMode
115 SetDesignMode( bInitDesignMode );
116}
117
119{
120 if (pFormShell)
122
123 pImpl->notifyViewDying();
124}
125
127{
128 SdrPageView* pPageView = GetSdrPageView();
129 FmFormPage* pCurPage = pPageView ? dynamic_cast<FmFormPage*>( pPageView->GetPage() ) : nullptr;
130 return pCurPage;
131}
132
134{
136
137 if ( !(pFormShell && IsDesignMode()) )
138 return;
139
140 FmFormObj* pObj = getMarkedGrid();
141 if ( pImpl->m_pMarkedGrid && pImpl->m_pMarkedGrid != pObj )
142 {
143 pImpl->m_pMarkedGrid = nullptr;
144 if ( pImpl->m_xWindow.is() )
145 {
146 pImpl->m_xWindow->removeFocusListener(pImpl);
147 pImpl->m_xWindow = nullptr;
148 }
149 SetMoveOutside(false);
150 //OLMRefreshAllIAOManagers();
151 }
152
153 pFormShell->GetImpl()->SetSelectionDelayed_Lock();
154}
155
156namespace
157{
158 const SdrPageWindow* findPageWindow( const SdrPaintView* _pView, OutputDevice const * _pWindow )
159 {
160 SdrPageView* pPageView = _pView->GetSdrPageView();
161 if(pPageView)
162 {
163 for ( sal_uInt32 window = 0; window < pPageView->PageWindowCount(); ++window )
164 {
165 const SdrPageWindow* pPageWindow = pPageView->GetPageWindow( window );
166 if ( !pPageWindow || &pPageWindow->GetPaintWindow().GetOutputDevice() != _pWindow )
167 continue;
168
169 return pPageWindow;
170 }
171 }
172 return nullptr;
173 }
174}
175
176
178{
179 E3dView::AddDeviceToPaintView(rNewDev, pWindow);
180
181 // look up the PageViewWindow for the newly inserted window, and care for it
182 // #i39269# / 2004-12-20 / frank.schoenheit@sun.com
183 const SdrPageWindow* pPageWindow = findPageWindow( this, &rNewDev );
184 if ( pPageWindow )
185 pImpl->addWindow( *pPageWindow );
186}
187
188
190{
191 const SdrPageWindow* pPageWindow = findPageWindow( this, &rNewDev );
192 if ( pPageWindow )
193 pImpl->removeWindow( pPageWindow->GetControlContainer() );
194
196}
197
198
200{
201 if (bDesign == IsDesignMode())
202 return;
203
204 FmFormModel* pModel = dynamic_cast<FmFormModel*>(&GetModel());
205 if (pModel)
206 { // For the duration of the transition the Undo-Environment is disabled. This ensures that non-transient Properties can
207 // also be changed (this should be done with care and also reversed before switching the mode back. An example is the
208 // setting of the maximal length of the text by FmXEditModel on its control.)
209 pModel->GetUndoEnv().Lock();
210 }
211
212 // --- 1. deactivate all controls if we are switching to design mode
213 if ( bDesign )
215
216 // --- 2. simulate a deactivation (the shell will handle some things there ...?)
217 if ( pFormShell && pFormShell->GetImpl() )
218 pFormShell->GetImpl()->viewDeactivated_Lock(*this);
219 else
220 pImpl->Deactivate();
221
222 // --- 3. activate all controls, if we're switching to alive mode
223 if ( !bDesign )
225
226 // --- 4. load resp. unload the forms
227 FmFormPage* pCurPage = GetCurPage();
228 if ( pCurPage )
229 {
230 if ( pFormShell && pFormShell->GetImpl() )
231 pFormShell->GetImpl()->loadForms_Lock(pCurPage, (bDesign ? LoadFormsFlags::Unload : LoadFormsFlags::Load));
232 }
233
234 // --- 5. base class functionality
236
237 // --- 6. simulate an activation (the shell will handle some things there ...?)
238 OSL_PRECOND( pFormShell && pFormShell->GetImpl(), "FmFormView::ChangeDesignMode: is this really allowed? No shell?" );
239 if ( pFormShell && pFormShell->GetImpl() )
240 pFormShell->GetImpl()->viewActivated_Lock(*this);
241 else
242 pImpl->Activate();
243
244 if ( pCurPage )
245 {
246 if ( bDesign )
247 {
248 if ( GetActualOutDev() && GetActualOutDev()->GetOutDevType() == OUTDEV_WINDOW )
249 {
250 const vcl::Window* pWindow = GetActualOutDev()->GetOwnerWindow();
251 const_cast< vcl::Window* >( pWindow )->GrabFocus();
252 }
253
254 // redraw UNO objects
255 if ( GetSdrPageView() )
256 {
257 SdrObjListIter aIter(pCurPage);
258 while( aIter.IsMore() )
259 {
260 SdrObject* pObj = aIter.Next();
261 if (pObj && pObj->IsUnoObj())
262 {
263 // For redraw just use ActionChanged()
264 // pObj->BroadcastObjectChange();
265 pObj->ActionChanged();
266 }
267 }
268 }
269 }
270 else
271 {
272 // set the auto focus to the first control (if indicated by the model to do so)
273 bool bForceControlFocus = pModel && pModel->GetAutoControlFocus();
274 if (bForceControlFocus)
275 pImpl->AutoFocus();
276 }
277 }
278
279 // Unlock Undo-Environment
280 if (pModel)
281 pModel->GetUndoEnv().UnLock();
282}
283
284
286{
287 if ( !IsDesignMode() )
288 pImpl->AutoFocus();
289}
290
291
293{
294 SdrPageView* pPV = E3dView::ShowSdrPage(pPage);
295
296 if (pPage)
297 {
298 if (!IsDesignMode())
299 {
300 // creating the controllers
301 ActivateControls(pPV);
302
303 // Deselect all
304 UnmarkAll();
305 }
306 else if ( pFormShell && pFormShell->IsDesignMode() )
307 {
308 FmXFormShell* pFormShellImpl = pFormShell->GetImpl();
309 pFormShellImpl->UpdateForms_Lock(true);
310
311 // so that the form navigator can react to the pagechange
312 pFormShell->GetViewShell()->GetViewFrame().GetBindings().Invalidate(SID_FM_FMEXPLORER_CONTROL, true);
313
314 pFormShellImpl->SetSelection_Lock(GetMarkedObjectList());
315 }
316 }
317
318 // notify our shell that we have been activated
319 if ( pFormShell && pFormShell->GetImpl() )
320 pFormShell->GetImpl()->viewActivated_Lock(*this);
321 else
322 pImpl->Activate();
323
324 return pPV;
325}
326
327
329{
330 // --- 1. deactivate controls
331 if ( !IsDesignMode() )
333
334 // --- 2. tell the shell the view is (going to be) deactivated
335 if ( pFormShell && pFormShell->GetImpl() )
336 pFormShell->GetImpl()->viewDeactivated_Lock(*this);
337 else
338 pImpl->Deactivate();
339
340 // --- 3. base class behavior
342}
343
344
346{
347 if (!pPageView)
348 return;
349
350 for (sal_uInt32 i = 0; i < pPageView->PageWindowCount(); ++i)
351 {
352 const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(i);
353 pImpl->addWindow(rPageWindow);
354 }
355}
356
357
359{
360 if( !pPageView )
361 return;
362
363 for (sal_uInt32 i = 0; i < pPageView->PageWindowCount(); ++i)
364 {
365 const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(i);
366 pImpl->removeWindow(rPageWindow.GetControlContainer() );
367 }
368}
369
370
371rtl::Reference<SdrObject> FmFormView::CreateFieldControl( const ODataAccessDescriptor& _rColumnDescriptor )
372{
373 return pImpl->implCreateFieldControl( _rColumnDescriptor );
374}
375
376
378{
379 return pImpl->implCreateXFormsControl(_rDesc);
380}
381
382
384{
385 sal_Int32 nIdx{ 0 };
386 OUString sDataSource( o3tl::getToken(rFieldDesc, 0, u'\x000B', nIdx));
387 OUString sObjectName( o3tl::getToken(rFieldDesc, 0, u'\x000B', nIdx));
388 sal_uInt16 nObjectType = static_cast<sal_uInt16>(o3tl::toInt32(o3tl::getToken(rFieldDesc, 0, u'\x000B', nIdx)));
389 OUString sFieldName( o3tl::getToken(rFieldDesc, 0, u'\x000B', nIdx));
390
391 if (sFieldName.isEmpty() || sObjectName.isEmpty() || sDataSource.isEmpty())
392 return nullptr;
393
394 ODataAccessDescriptor aColumnDescriptor;
395 aColumnDescriptor.setDataSource(sDataSource);
396 aColumnDescriptor[ DataAccessDescriptorProperty::Command ] <<= sObjectName;
397 aColumnDescriptor[ DataAccessDescriptorProperty::CommandType ] <<= nObjectType;
398 aColumnDescriptor[ DataAccessDescriptorProperty::ColumnName ] <<= sFieldName;
399
400 return pImpl->implCreateFieldControl( aColumnDescriptor );
401}
402
403
404void FmFormView::InsertControlContainer(const Reference< css::awt::XControlContainer > & xCC)
405{
406 if( IsDesignMode() )
407 return;
408
409 SdrPageView* pPageView = GetSdrPageView();
410 if( !pPageView )
411 return;
412
413 for( sal_uInt32 i = 0; i < pPageView->PageWindowCount(); i++ )
414 {
415 const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(i);
416
417 if( rPageWindow.GetControlContainer( false ) == xCC )
418 {
419 pImpl->addWindow(rPageWindow);
420 break;
421 }
422 }
423}
424
425
426void FmFormView::RemoveControlContainer(const Reference< css::awt::XControlContainer > & xCC)
427{
428 if( !IsDesignMode() )
429 {
430 pImpl->removeWindow( xCC );
431 }
432}
433
434
436{
438 pImpl->suspendTabOrderUpdate();
439 return pPaintWindow;
440}
441
442
443void FmFormView::EndCompleteRedraw( SdrPaintWindow& rPaintWindow, bool bPaintFormLayer )
444{
445 E3dView::EndCompleteRedraw( rPaintWindow, bPaintFormLayer );
446 pImpl->resumeTabOrderUpdate();
447}
448
449
451{
452 bool bDone = false;
453 const vcl::KeyCode& rKeyCode = rKEvt.GetKeyCode();
454 if ( IsDesignMode()
455 && rKeyCode.GetCode() == KEY_RETURN
456 )
457 {
458 // RETURN alone enters grid controls, for keyboard accessibility
459 if ( pWin
460 && !rKeyCode.IsShift()
461 && !rKeyCode.IsMod1()
462 && !rKeyCode.IsMod2()
463 )
464 {
465 FmFormObj* pObj = getMarkedGrid();
466 if ( pObj )
467 {
468 Reference< awt::XWindow > xWindow( pObj->GetUnoControl( *this, *pWin->GetOutDev() ), UNO_QUERY );
469 if ( xWindow.is() )
470 {
471 pImpl->m_pMarkedGrid = pObj;
472 pImpl->m_xWindow = xWindow;
473 // add as listener to get notified when ESC will be pressed inside the grid
474 pImpl->m_xWindow->addFocusListener(pImpl);
475 SetMoveOutside(true);
476 //OLMRefreshAllIAOManagers();
477 xWindow->setFocus();
478 bDone = true;
479 }
480 }
481 }
482 // Alt-RETURN alone shows the properties of the selection
483 if ( pFormShell
484 && pFormShell->GetImpl()
485 && !rKeyCode.IsShift()
486 && !rKeyCode.IsMod1()
487 && rKeyCode.IsMod2()
488 )
489 {
490 pFormShell->GetImpl()->handleShowPropertiesRequest_Lock();
491 }
492
493 }
494
495 // tdf#139804 Allow selecting form controls with Alt-<Mnemonic>
496 if (rKeyCode.IsMod2() && rKeyCode.GetCode())
497 {
498 if (FmFormPage* pCurPage = GetCurPage())
499 {
500 for (size_t a = 0; a < pCurPage->GetObjCount(); ++a)
501 {
502 SdrObject* pObj = pCurPage->GetObj(a);
503 FmFormObj* pFormObject = FmFormObj::GetFormObject(pObj);
504 if (!pFormObject)
505 continue;
506
507 Reference<awt::XControl> xControl = pFormObject->GetUnoControl(*this, *pWin->GetOutDev());
508 if (!xControl.is())
509 continue;
511 VclPtr<vcl::Window> pWindow = VCLUnoHelper::GetWindow(xControl->getPeer());
512 if (rI18nHelper.MatchMnemonic(pWindow->GetText(), rKEvt.GetCharCode()))
513 {
514 pWindow->GrabFocus();
515 pWindow->KeyInput(rKEvt);
516 bDone = true;
517 break;
518 }
519 }
520 }
521 }
522
523 if ( !bDone )
524 bDone = E3dView::KeyInput(rKEvt,pWin);
525 return bDone;
526}
527
528bool FmFormView::checkUnMarkAll(const Reference< XInterface >& _xSource)
529{
530 Reference< css::awt::XControl> xControl(pImpl->m_xWindow,UNO_QUERY);
531 bool bRet = !xControl.is() || !_xSource.is() || _xSource != xControl->getModel();
532 if ( bRet )
533 UnmarkAll();
534
535 return bRet;
536}
537
538
540{
541 bool bReturn = E3dView::MouseButtonDown( _rMEvt, _pWin );
542
543 if ( pFormShell && pFormShell->GetImpl() )
544 {
545 SdrViewEvent aViewEvent;
546 PickAnything( _rMEvt, SdrMouseEventKind::BUTTONDOWN, aViewEvent );
547 pFormShell->GetImpl()->handleMouseButtonDown_Lock(aViewEvent);
548 }
549
550 return bReturn;
551}
552
553
555{
556 FmFormObj* pFormObject = nullptr;
557 const SdrMarkList& rMarkList = GetMarkedObjectList();
558 if ( 1 == rMarkList.GetMarkCount() )
559 {
560 SdrMark* pMark = rMarkList.GetMark(0);
561 if ( pMark )
562 {
563 pFormObject = FmFormObj::GetFormObject( pMark->GetMarkedSdrObj() );
564 if ( pFormObject )
565 {
566 Reference< XServiceInfo > xServInfo( pFormObject->GetUnoControlModel(), UNO_QUERY );
567 if ( !xServInfo.is() || !xServInfo->supportsService( FM_SUN_COMPONENT_GRIDCONTROL ) )
568 pFormObject = nullptr;
569 }
570 }
571 }
572 return pFormObject;
573}
574
575void FmFormView::createControlLabelPair( OutputDevice const * _pOutDev, sal_Int32 _nXOffsetMM, sal_Int32 _nYOffsetMM,
576 const Reference< XPropertySet >& _rxField, const Reference< XNumberFormats >& _rxNumberFormats,
577 SdrObjKind _nControlObjectID, SdrInventor _nInventor, SdrObjKind _nLabelObjectID,
578 SdrModel& _rModel,
580 rtl::Reference<SdrUnoObj>& _rpControl )
581{
583 *_pOutDev, _nXOffsetMM, _nYOffsetMM,
584 _rxField, _rxNumberFormats,
585 _nControlObjectID, u"", _nInventor, _nLabelObjectID,
586 _rModel,
587 _rpLabel, _rpControl
588 );
589}
590
591Reference< runtime::XFormController > FmFormView::GetFormController( const Reference< XForm >& _rxForm, const OutputDevice& _rDevice ) const
592{
593 return pImpl->getFormController( _rxForm, _rDevice );
594}
595
596/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
const vcl::I18nHelper & GetUILocaleI18nHelper() const
static const AllSettings & GetSettings()
Derived class of SdrView to edit 3D objects.
Definition: view3d.hxx:42
bool GetAutoControlFocus() const
Definition: fmmodel.hxx:64
SfxObjectShell * GetObjectShell() const
Definition: fmmodel.hxx:58
bool GetOpenInDesignMode() const
Definition: fmmodel.hxx:61
bool OpenInDesignModeIsDefaulted()
check whether the OpenInDesignMode has been set explicitly or been loaded (<FALSE>) or if it still ha...
Definition: fmmodel.cxx:150
FmXUndoEnvironment & GetUndoEnv()
Definition: fmmodel.cxx:204
virtual bool IsDesignMode() const override
Definition: fmshell.hxx:158
void SetView(FmFormView *pView)
Definition: fmshell.cxx:1140
FmXFormShell * GetImpl() const
Definition: fmshell.hxx:118
bool KeyInput(const KeyEvent &rKEvt, vcl::Window *pWin) override
Definition: fmview.cxx:450
void RemoveControlContainer(const css::uno::Reference< css::awt::XControlContainer > &xCC)
Definition: fmview.cxx:426
virtual bool MouseButtonDown(const MouseEvent &_rMEvt, OutputDevice *_pWin) override
Definition: fmview.cxx:539
virtual SdrPaintWindow * BeginCompleteRedraw(OutputDevice *pOut) override
Definition: fmview.cxx:435
rtl::Reference< SdrObject > CreateXFormsControl(const svx::OXFormsDescriptor &_rDesc)
create a control pair (label/bound control) for the xforms description given.
Definition: fmview.cxx:377
SVX_DLLPRIVATE void ChangeDesignMode(bool bDesign)
Definition: fmview.cxx:199
virtual void HideSdrPage() override
Definition: fmview.cxx:328
FmFormPage * GetCurPage()
shortcut to "GetSdrPageView() ? PTR_CAST( FmFormPage, GetSdrPageView() ) : NULL"
Definition: fmview.cxx:126
FmFormView(SdrModel &rSdrModel, OutputDevice *pOut)
Definition: fmview.cxx:68
void SetMoveOutside(bool _bMoveOutside, ImplAccess)
Definition: fmview.hxx:138
SVX_DLLPRIVATE const OutputDevice * GetActualOutDev() const
Definition: fmview.hxx:145
virtual void EndCompleteRedraw(SdrPaintWindow &rPaintWindow, bool bPaintFormLayer) override
Definition: fmview.cxx:443
virtual SdrPageView * ShowSdrPage(SdrPage *pPage) override
Definition: fmview.cxx:292
FmFormShell * pFormShell
Definition: fmview.hxx:57
virtual void AddDeviceToPaintView(OutputDevice &rNewDev, vcl::Window *pWindow) override
Definition: fmview.cxx:177
SVX_DLLPRIVATE void GrabFirstControlFocus()
grab the focus to the first form control on the view
Definition: fmview.cxx:285
virtual void MarkListHasChanged() override
Definition: fmview.cxx:133
SVX_DLLPRIVATE void DeactivateControls(SdrPageView const *)
Definition: fmview.cxx:358
rtl::Reference< SdrObject > CreateFieldControl(std::u16string_view rFieldDesc) const
create a control pair (label/bound control) for the database field description given.
Definition: fmview.cxx:383
void Init()
Definition: fmview.cxx:76
SVX_DLLPRIVATE bool checkUnMarkAll(const css::uno::Reference< css::uno::XInterface > &_xSource)
Definition: fmview.cxx:528
SVX_DLLPRIVATE void ActivateControls(SdrPageView const *)
Definition: fmview.cxx:345
SVX_DLLPRIVATE css::uno::Reference< css::form::runtime::XFormController > GetFormController(const css::uno::Reference< css::form::XForm > &_rxForm, const OutputDevice &_rDevice) const
returns the form controller for a given form and a given device
Definition: fmview.cxx:591
rtl::Reference< FmXFormView > pImpl
Definition: fmview.hxx:56
static void createControlLabelPair(OutputDevice const *_pOutDev, sal_Int32 _nXOffsetMM, sal_Int32 _nYOffsetMM, const css::uno::Reference< css::beans::XPropertySet > &_rxField, const css::uno::Reference< css::util::XNumberFormats > &_rxNumberFormats, SdrObjKind _nControlObjectID, SdrInventor _nInventor, SdrObjKind _nLabelObjectID, SdrModel &_rModel, rtl::Reference< SdrUnoObj > &_rpLabel, rtl::Reference< SdrUnoObj > &_rpControl)
Definition: fmview.cxx:575
virtual void DeleteDeviceFromPaintView(OutputDevice &rOldDev) override
Definition: fmview.cxx:189
void InsertControlContainer(const css::uno::Reference< css::awt::XControlContainer > &xCC)
Definition: fmview.cxx:404
virtual ~FmFormView() override
Definition: fmview.cxx:118
SVX_DLLPRIVATE FmFormObj * getMarkedGrid() const
Definition: fmview.cxx:554
static bool createControlLabelPair(OutputDevice const &_rOutDev, sal_Int32 _nXOffsetMM, sal_Int32 _nYOffsetMM, const css::uno::Reference< css::beans::XPropertySet > &_rxField, const css::uno::Reference< css::util::XNumberFormats > &_rxNumberFormats, SdrObjKind _nControlObjectID, std::u16string_view _rFieldPostfix, SdrInventor _nInventor, SdrObjKind _nLabelObjectID, SdrModel &_rModel, rtl::Reference< SdrUnoObj > &_rpLabel, rtl::Reference< SdrUnoObj > &_rpControl)
sal_Unicode GetCharCode() const
const vcl::KeyCode & GetKeyCode() const
virtual vcl::Window * GetOwnerWindow() const
size_t GetMarkCount() const
Definition: svdmark.hxx:178
SdrMark * GetMark(size_t nNum) const
Definition: svdmark.cxx:230
const SdrMarkList & GetMarkedObjectList() const
Definition: svdmrkv.hxx:258
bool IsDesignMode() const
Definition: svdmrkv.hxx:239
void SetDesignMode(bool bOn=true)
Definition: svdmrkv.cxx:2731
Everything a View needs to know about a selected object.
Definition: svdmark.hxx:45
SdrObject * GetMarkedSdrObj() const
Definition: svdmark.hxx:68
virtual void DeleteDeviceFromPaintView(OutputDevice &rOldWin) override
Definition: svdedxv.cxx:2489
void HideSdrPage() override
Definition: svdedxv.cxx:195
SdrPageView * ShowSdrPage(SdrPage *pPage) override
Definition: svdedxv.cxx:131
virtual void AddDeviceToPaintView(OutputDevice &rNewDev, vcl::Window *pWindow) override
Definition: svdedxv.cxx:2477
virtual void MarkListHasChanged() override
Definition: svdedxv.cxx:2647
SdrObject * Next()
Definition: svditer.hxx:63
bool IsMore() const
Definition: svditer.hxx:62
Abstract DrawObject.
Definition: svdobj.hxx:260
void ActionChanged() const
Definition: svdobj.cxx:273
bool IsUnoObj() const
Definition: svdobj.hxx:754
sal_uInt32 PageWindowCount() const
Definition: svdpagv.hxx:89
SdrPage * GetPage() const
Definition: svdpagv.hxx:166
SdrPageWindow * GetPageWindow(sal_uInt32 nIndex) const
Definition: svdpagv.cxx:83
css::uno::Reference< css::awt::XControlContainer > const & GetControlContainer(bool _bCreateIfNecessary=true) const
SdrPaintWindow & GetPaintWindow() const
A SdrPage contains exactly one SdrObjList and a description of the physical page dimensions (size / m...
Definition: svdpage.hxx:379
virtual SdrPaintWindow * BeginCompleteRedraw(OutputDevice *pOut)
Definition: svdpntv.cxx:582
SdrPageView * GetSdrPageView() const
Definition: svdpntv.hxx:323
virtual void EndCompleteRedraw(SdrPaintWindow &rPaintWindow, bool bPaintFormLayer)
Definition: svdpntv.cxx:614
SdrModel & GetModel() const
Definition: svdpntv.hxx:282
OutputDevice & GetOutputDevice() const
virtual bool MouseButtonDown(const MouseEvent &rMEvt, OutputDevice *pWin) override
Definition: svdview.cxx:196
bool KeyInput(const KeyEvent &rKEvt, vcl::Window *pWin) override
Definition: svdview.cxx:160
SdrHitKind PickAnything(const MouseEvent &rMEvt, SdrMouseEventKind nMouseDownOrMoveOrUp, SdrViewEvent &rVEvt) const
Definition: svdview.cxx:249
void UnmarkAll()
Definition: svdview.cxx:1395
void Invalidate(sal_uInt16 nId)
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
SfxItemSet & GetItemSet() const
SfxMedium * GetMedium() const
SfxViewShell * GetViewShell() const
SfxBindings & GetBindings()
SfxViewFrame & GetViewFrame() const
static vcl::Window * GetWindow(const css::uno::Reference< css::awt::XWindow > &rxWindow)
VALUE_TYPE getOrDefault(const OUString &_rValueName, const VALUE_TYPE &_rDefault) const
bool MatchMnemonic(std::u16string_view rString, sal_Unicode cMnemonicChar) const
bool IsMod1() const
sal_uInt16 GetCode() const
bool IsShift() const
bool IsMod2() const
::OutputDevice const * GetOutDev() const
#define DBG_ASSERT(sCon, aError)
#define suppress_fun_call_w_exception(expr)
float u
constexpr OUStringLiteral FM_SUN_COMPONENT_GRIDCONTROL
Definition: fmservs.hxx:63
bool bDesign
uno_Any a
constexpr sal_uInt16 KEY_RETURN
int i
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)
class FmSearchEngine - Impl class for FmSearchDialog
OUTDEV_WINDOW
SdrInventor
Definition: svdobj.hxx:98
SdrObjKind
Definition: svdobjkind.hxx:25
oslFileHandle & pOut