LibreOffice Module svx (master)  1
fmexpl.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 
21 #include <svx/strings.hrc>
22 #include <fmexpl.hxx>
23 
24 #include <helpids.h>
25 #include <svx/fmglob.hxx>
26 #include <fmservs.hxx>
27 #include <svx/fmmodel.hxx>
28 #include <fmexch.hxx>
29 #include <fmundo.hxx>
30 #include <fmpgeimp.hxx>
31 
32 #include <svx/svxids.hrc>
33 
34 #include <fmprop.hxx>
35 #include <bitmaps.hlst>
36 #include <svx/dialmgr.hxx>
37 #include <svx/svditer.hxx>
38 #include <svx/svdouno.hxx>
39 #include <svx/svdobj.hxx>
40 #include <sfx2/dispatch.hxx>
41 #include <sfx2/objsh.hxx>
42 #include <sfx2/viewsh.hxx>
43 #include <sfx2/viewfrm.hxx>
44 #include <com/sun/star/lang/XServiceInfo.hpp>
45 #include <com/sun/star/form/FormComponentType.hpp>
46 #include <com/sun/star/awt/XTabControllerModel.hpp>
47 #include <vcl/menu.hxx>
48 #include <sfx2/objitem.hxx>
49 #include <sfx2/request.hxx>
50 
51 #include <svx/fmshell.hxx>
52 #include <fmshimp.hxx>
53 #include <svx/fmpage.hxx>
54 #include <com/sun/star/io/XPersistObject.hpp>
55 #include <com/sun/star/sdb/CommandType.hpp>
56 #include <com/sun/star/beans/PropertyAttribute.hpp>
57 #include <comphelper/types.hxx>
58 
59 using namespace ::svxform;
60 using namespace ::com::sun::star::uno;
61 using namespace ::com::sun::star::sdbc;
62 using namespace ::com::sun::star::sdb;
63 using namespace ::com::sun::star::form;
64 using namespace ::com::sun::star::beans;
65 using namespace ::com::sun::star::lang;
66 using namespace ::com::sun::star::container;
67 
68 FmNavInsertedHint::FmNavInsertedHint( FmEntryData* pInsertedEntryData, sal_uInt32 nRelPos )
69  :pEntryData( pInsertedEntryData )
70  ,nPos( nRelPos )
71 
72 {
73 }
74 
75 
77 {
78 }
79 
80 
81 
83  :pEntryData( pAffectedEntryData )
84 {
85 }
86 
87 
89 {
90 }
91 
93  :pEntryData( pRemovedEntryData )
94 {
95 }
96 
97 
99 {
100 }
101 
102 FmNavNameChangedHint::FmNavNameChangedHint( FmEntryData* pData, const OUString& rNewName )
103  :pEntryData( pData )
104  ,aNewName( rNewName )
105 {
106 }
107 
108 
110 {
111 }
112 
114 {
115 }
116 
117 
119 {
120 }
121 
122 
124 {
125 }
126 
127 
129 {
130 }
131 
132 
134 {
135  auto it = std::find_if(maEntryDataList.begin(), maEntryDataList.end(),
136  [&pItem](const std::unique_ptr<FmEntryData>& rEntryData) { return rEntryData.get() == pItem; });
137  if (it != maEntryDataList.end())
138  {
139  it->release();
140  maEntryDataList.erase( it );
141  return;
142  }
143  assert(false);
144 }
145 
146 
147 void FmEntryDataList::insert( std::unique_ptr<FmEntryData> pItem, size_t Index )
148 {
149  if ( Index < maEntryDataList.size() )
150  {
151  maEntryDataList.insert( maEntryDataList.begin() + Index, std::move(pItem) );
152  }
153  else
154  maEntryDataList.push_back( std::move(pItem) );
155 }
156 
157 
159 {
160  maEntryDataList.clear();
161 }
162 
163 
164 FmEntryData::FmEntryData( FmEntryData* pParentData, const Reference< XInterface >& _rxIFace )
165  :pParent( pParentData )
166 {
167  pChildList.reset( new FmEntryDataList() );
168 
169  newObject( _rxIFace );
170 }
171 
172 
174 {
175  pChildList->clear();
176 }
177 
178 
179 void FmEntryData::newObject( const css::uno::Reference< css::uno::XInterface >& _rxIFace )
180 {
181  // do not just copy, normalize it
182  m_xNormalizedIFace.set( _rxIFace, UNO_QUERY );
183  m_xProperties.set(m_xNormalizedIFace, css::uno::UNO_QUERY);
184  m_xChild.set(m_xNormalizedIFace, css::uno::UNO_QUERY);
185 }
186 
187 
189 {
190  pChildList.reset( new FmEntryDataList() );
191  aText = rEntryData.GetText();
192  m_aNormalImage = rEntryData.GetNormalImage();
193  pParent = rEntryData.GetParent();
194 
195  FmEntryData* pChildData;
196  size_t nEntryCount = rEntryData.GetChildList()->size();
197  for( size_t i = 0; i < nEntryCount; i++ )
198  {
199  pChildData = rEntryData.GetChildList()->at( i );
200  std::unique_ptr<FmEntryData> pNewChildData = pChildData->Clone();
201  pChildList->insert( std::move(pNewChildData), size_t(-1) );
202  }
203 
205  m_xProperties = rEntryData.m_xProperties;
206  m_xChild = rEntryData.m_xChild;
207 }
208 
209 
210 
212 {
213  if(this == pEntryData)
214  return true;
215 
216  if( !pEntryData )
217  return false;
218 
219  if( aText != pEntryData->GetText() )
220  return false;
221 
222  if( !pEntryData->GetParent() && pParent )
223  return false;
224 
225  if( pEntryData->GetParent() && !pParent )
226  return false;
227 
228  if( !pEntryData->GetParent() && !pParent )
229  return true;
230 
231  if( !pParent->IsEqualWithoutChildren(pEntryData->GetParent()) )
232  return false;
233 
234  return true;
235 }
236 
237 FmFormData::FmFormData(const Reference< XForm >& _rxForm, FmFormData* _pParent)
238  : FmEntryData(_pParent, _rxForm)
239  , m_xForm(_rxForm)
240 {
241  // set images
242  m_aNormalImage = Image(RID_SVXBMP_FORM);
243 
244  // set title
245  if (m_xForm.is())
246  {
247  Reference< XPropertySet > xSet(m_xForm, UNO_QUERY);
248  if (xSet.is())
249  {
250  OUString aEntryName(::comphelper::getString(xSet->getPropertyValue( FM_PROP_NAME )));
251  SetText(aEntryName);
252  }
253  }
254  else
255  SetText( OUString() );
256 }
257 
259 {
260 }
261 
263  :FmEntryData( rFormData )
264 {
265  m_xForm = rFormData.GetFormIface();
266 }
267 
268 
269 std::unique_ptr<FmEntryData> FmFormData::Clone()
270 {
271  return std::unique_ptr<FmEntryData>(new FmFormData( *this ));
272 }
273 
274 
276 {
277  if(this == pEntryData)
278  return true;
279  if( dynamic_cast<const FmFormData*>( pEntryData) == nullptr )
280  return false;
281  FmFormData* pFormData = static_cast<FmFormData*>(pEntryData);
282  if( m_xForm.get() != pFormData->GetFormIface().get() )
283  return false;
284 
285  return FmEntryData::IsEqualWithoutChildren( pFormData );
286 }
287 
288 FmControlData::FmControlData(const Reference< XFormComponent >& _rxComponent, FmFormData* _pParent)
289 : FmEntryData( _pParent, _rxComponent ),
290  m_xFormComponent( _rxComponent )
291 {
292 
293  // set images
294  m_aNormalImage = GetImage();
295 
296 
297  // set title
298  Reference< XPropertySet > xSet(m_xFormComponent, UNO_QUERY);
299  if( xSet.is() )
300  {
301  SetText( ::comphelper::getString(xSet->getPropertyValue( FM_PROP_NAME )));
302  }
303 }
304 
305 
307 {
308 }
309 
310 
312  :FmEntryData( rControlData )
313 {
314  m_xFormComponent = rControlData.GetFormComponent();
315 }
316 
317 
318 std::unique_ptr<FmEntryData> FmControlData::Clone()
319 {
320  return std::unique_ptr<FmEntryData>(new FmControlData( *this ));
321 }
322 
323 
325 {
326  // Default-Image
327  Image aImage(StockImage::Yes, RID_SVXBMP_CONTROL);
328 
329  Reference< XServiceInfo > xInfo( m_xFormComponent, UNO_QUERY );
330  if (!m_xFormComponent.is())
331  return aImage;
332 
333 
334  // Spezielle Control-Images
335  sal_Int16 nObjectType = getControlTypeByObject(xInfo);
336  switch (nObjectType)
337  {
338  case OBJ_FM_BUTTON:
339  aImage = Image(StockImage::Yes, RID_SVXBMP_BUTTON);
340  break;
341 
342  case OBJ_FM_FIXEDTEXT:
343  aImage = Image(StockImage::Yes, RID_SVXBMP_FIXEDTEXT);
344  break;
345 
346  case OBJ_FM_EDIT:
347  aImage = Image(StockImage::Yes, RID_SVXBMP_EDITBOX);
348  break;
349 
350  case OBJ_FM_RADIOBUTTON:
351  aImage = Image(StockImage::Yes, RID_SVXBMP_RADIOBUTTON);
352  break;
353 
354  case OBJ_FM_CHECKBOX:
355  aImage = Image(StockImage::Yes, RID_SVXBMP_CHECKBOX);
356  break;
357 
358  case OBJ_FM_LISTBOX:
359  aImage = Image(StockImage::Yes, RID_SVXBMP_LISTBOX);
360  break;
361 
362  case OBJ_FM_COMBOBOX:
363  aImage = Image(StockImage::Yes, RID_SVXBMP_COMBOBOX);
364  break;
365 
367  aImage = Image(StockImage::Yes, RID_SVXBMP_NAVIGATIONBAR);
368  break;
369 
370  case OBJ_FM_GROUPBOX:
371  aImage = Image(StockImage::Yes, RID_SVXBMP_GROUPBOX);
372  break;
373 
374  case OBJ_FM_IMAGEBUTTON:
375  aImage = Image(StockImage::Yes, RID_SVXBMP_IMAGEBUTTON);
376  break;
377 
378  case OBJ_FM_FILECONTROL:
379  aImage = Image(StockImage::Yes, RID_SVXBMP_FILECONTROL);
380  break;
381 
382  case OBJ_FM_HIDDEN:
383  aImage = Image(StockImage::Yes, RID_SVXBMP_HIDDEN);
384  break;
385 
386  case OBJ_FM_DATEFIELD:
387  aImage = Image(StockImage::Yes, RID_SVXBMP_DATEFIELD);
388  break;
389 
390  case OBJ_FM_TIMEFIELD:
391  aImage = Image(StockImage::Yes, RID_SVXBMP_TIMEFIELD);
392  break;
393 
394  case OBJ_FM_NUMERICFIELD:
395  aImage = Image(StockImage::Yes, RID_SVXBMP_NUMERICFIELD);
396  break;
397 
399  aImage = Image(StockImage::Yes, RID_SVXBMP_CURRENCYFIELD);
400  break;
401 
402  case OBJ_FM_PATTERNFIELD:
403  aImage = Image(StockImage::Yes, RID_SVXBMP_PATTERNFIELD);
404  break;
405 
406  case OBJ_FM_IMAGECONTROL:
407  aImage = Image(StockImage::Yes, RID_SVXBMP_IMAGECONTROL);
408  break;
409 
411  aImage = Image(StockImage::Yes, RID_SVXBMP_FORMATTEDFIELD);
412  break;
413 
414  case OBJ_FM_GRID:
415  aImage = Image(StockImage::Yes, RID_SVXBMP_GRID);
416  break;
417 
418  case OBJ_FM_SCROLLBAR:
419  aImage = Image(StockImage::Yes, RID_SVXBMP_SCROLLBAR);
420  break;
421 
422  case OBJ_FM_SPINBUTTON:
423  aImage = Image(StockImage::Yes, RID_SVXBMP_SPINBUTTON);
424  break;
425  }
426 
427  return aImage;
428 }
429 
431 {
432  if(this == pEntryData)
433  return true;
434 
435  if( dynamic_cast<const FmControlData*>( pEntryData) == nullptr )
436  return false;
437  FmControlData* pControlData = static_cast<FmControlData*>(pEntryData);
438 
439  if( m_xFormComponent.get() != pControlData->GetFormComponent().get() )
440  return false;
441 
442  return FmEntryData::IsEqualWithoutChildren( pControlData );
443 }
444 
445 void FmControlData::ModelReplaced(const Reference< XFormComponent >& _rxNew)
446 {
447  m_xFormComponent = _rxNew;
449  // set images anew
451 }
452 
453 namespace svxform
454 {
455 
457  vcl::Window* _pParent )
459  ,SfxControllerItem( SID_FM_FMEXPLORER_CONTROL, *_pBindings )
460  {
461  SetHelpId( HID_FORM_NAVIGATOR_WIN );
462 
464  m_pNavigatorTree->Show();
465  SetText( SvxResId(RID_STR_FMEXPLORER) );
467  }
468 
469 
471  {
472  disposeOnce();
473  }
474 
476  {
477  m_pNavigatorTree.disposeAndClear();
480  }
481 
482 
484  {
485  m_pNavigatorTree->UpdateContent( pFormShell );
486  }
487 
488 
489  void NavigatorFrame::StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
490  {
491  if( !pState || SID_FM_FMEXPLORER_CONTROL != nSID )
492  return;
493 
494  if( eState >= SfxItemState::DEFAULT )
495  {
496  FmFormShell* pShell = dynamic_cast<FmFormShell*>( static_cast<const SfxObjectItem*>(pState)->GetShell() );
497  UpdateContent( pShell );
498  }
499  else
500  UpdateContent( nullptr );
501  }
502 
503 
505  {
506  if ( m_pNavigatorTree )
507  m_pNavigatorTree->GrabFocus();
508  else
509  SfxDockingWindow::GetFocus();
510  }
511 
512 
514  {
515  UpdateContent( nullptr );
516  return SfxDockingWindow::Close();
517  }
518 
519 
521  {
523  rInfo.bVisible = false;
524  }
525 
526 
528  {
529  if ( ( eAlign == SfxChildAlignment::TOP ) || ( eAlign == SfxChildAlignment::BOTTOM ) )
530  return Size();
531 
532  return SfxDockingWindow::CalcDockingSize( eAlign );
533  }
534 
535 
537  {
538  if ( ( _eAlign == SfxChildAlignment::LEFT ) || ( _eAlign == SfxChildAlignment::RIGHT ) || ( _eAlign == SfxChildAlignment::NOALIGNMENT ) )
539  return _eAlign;
540  return _eActAlign;
541  }
542 
543 
545  {
547 
548  Size aLogOutputSize = PixelToLogic(GetOutputSizePixel(), MapMode(MapUnit::MapAppFont));
549  Size aLogExplSize = aLogOutputSize;
550  aLogExplSize.AdjustWidth( -6 );
551  aLogExplSize.AdjustHeight( -6 );
552 
553  Point aExplPos = LogicToPixel(Point(3, 3), MapMode(MapUnit::MapAppFont));
554  Size aExplSize = LogicToPixel(aLogExplSize, MapMode(MapUnit::MapAppFont));
555 
556  m_pNavigatorTree->SetPosSizePixel( aExplPos, aExplSize );
557  }
558 
559 
560 
561 
562  SFX_IMPL_DOCKINGWINDOW( NavigatorFrameManager, SID_FM_SHOW_FMEXPLORER )
563 
564 
565  NavigatorFrameManager::NavigatorFrameManager( vcl::Window* _pParent, sal_uInt16 _nId,
566  SfxBindings* _pBindings, SfxChildWinInfo* _pInfo )
567  :SfxChildWindow( _pParent, _nId )
568  {
569  SetWindow( VclPtr<NavigatorFrame>::Create( _pBindings, this, _pParent ) );
570  static_cast<SfxDockingWindow*>(GetWindow())->Initialize( _pInfo );
571  }
572 }
573 
574 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
WinBits const WB_ROLLABLE
css::uno::Reference< css::form::XForm > m_xForm
Definition: fmexpl.hxx:228
WinBits const WB_DOCKABLE
void UpdateContent(FmFormShell *pFormShell)
Definition: fmexpl.cxx:483
void removeNoDelete(FmEntryData *pItem)
Definition: fmexpl.cxx:133
long AdjustWidth(long n)
virtual ~FmControlData() override
Definition: fmexpl.cxx:306
virtual ~FmNavClearedHint() override
Definition: fmexpl.cxx:118
virtual SfxChildAlignment CheckAlignment(SfxChildAlignment, SfxChildAlignment) override
Definition: fmexpl.cxx:536
sal_Int16 getControlTypeByObject(const Reference< css::lang::XServiceInfo > &_rxObject)
Definition: fmtools.cxx:330
FmEntryData * GetParent() const
Definition: fmexpl.hxx:160
const sal_uInt16 OBJ_FM_NAVIGATIONBAR
Definition: fmglob.hxx:48
FmNavRemovedHint(FmEntryData *pInsertedEntryData)
Definition: fmexpl.cxx:92
css::uno::Reference< css::beans::XPropertySet > m_xProperties
Definition: fmexpl.hxx:134
const sal_uInt16 OBJ_FM_NUMERICFIELD
Definition: fmglob.hxx:40
virtual bool IsEqualWithoutChildren(FmEntryData *pEntryData) override
Definition: fmexpl.cxx:430
virtual void GetFocus() override
Definition: fmexpl.cxx:504
long AdjustHeight(long n)
virtual Size CalcDockingSize(SfxChildAlignment) override
Definition: fmexpl.cxx:527
virtual ~FmNavModelReplacedHint() override
Definition: fmexpl.cxx:88
sal_Int64 WinBits
void insert(std::unique_ptr< FmEntryData > pItem, size_t Index)
Definition: fmexpl.cxx:147
std::unique_ptr< FmEntryDataList > pChildList
Definition: fmexpl.hxx:142
OUString SvxResId(const char *pId)
Definition: dialmgr.cxx:28
const sal_uInt16 OBJ_FM_IMAGEBUTTON
Definition: fmglob.hxx:36
void SetFloatingSize(const Size &rSize)
css::uno::Reference< css::uno::XInterface > m_xNormalizedIFace
Definition: fmexpl.hxx:133
FmEntryData * at(size_t Index)
Definition: fmexpl.hxx:194
Image m_aNormalImage
Definition: fmexpl.hxx:138
virtual bool Close() override
virtual void Resize() override
Definition: fmexpl.cxx:544
const sal_uInt16 OBJ_FM_PATTERNFIELD
Definition: fmglob.hxx:42
void SetText(const OUString &rText)
Definition: fmexpl.hxx:154
const sal_uInt16 OBJ_FM_EDIT
Definition: fmglob.hxx:27
void FillInfo(SfxChildWinInfo &rInfo) const override
Definition: fmexpl.cxx:520
FmEntryData * pParent
Definition: fmexpl.hxx:143
VclPtr< ::svxform::NavigatorTree > m_pNavigatorTree
Definition: fmexpl.hxx:514
virtual ~FmNavNameChangedHint() override
Definition: fmexpl.cxx:109
virtual bool IsEqualWithoutChildren(FmEntryData *pEntryData)
Definition: fmexpl.cxx:211
virtual ~FmNavInsertedHint() override
Definition: fmexpl.cxx:76
const OUString & GetText() const
Definition: fmexpl.hxx:159
Shell * GetShell()
const css::uno::Reference< css::form::XForm > & GetFormIface() const
Definition: fmexpl.hxx:235
virtual void dispose()
const sal_uInt16 OBJ_FM_GROUPBOX
Definition: fmglob.hxx:34
virtual Size CalcDockingSize(SfxChildAlignment)
std::vector< std::unique_ptr< FmEntryData > > maEntryDataList
Definition: fmexpl.hxx:188
NavigatorFrame(SfxBindings *pBindings, SfxChildWindow *pMgr, vcl::Window *pParent)
Definition: fmexpl.cxx:456
void newObject(const css::uno::Reference< css::uno::XInterface > &_rxIFace)
Definition: fmexpl.cxx:179
const Image & GetNormalImage() const
Definition: fmexpl.hxx:157
int i
css::uno::Reference< css::container::XChild > m_xChild
Definition: fmexpl.hxx:135
const sal_uInt16 OBJ_FM_FILECONTROL
Definition: fmglob.hxx:37
const sal_uInt16 OBJ_FM_COMBOBOX
Definition: fmglob.hxx:32
virtual std::unique_ptr< FmEntryData > Clone()=0
const css::uno::Reference< css::form::XFormComponent > & GetFormComponent() const
Definition: fmexpl.hxx:257
#define HID_FORM_NAVIGATOR_WIN
Definition: helpids.h:45
FmNavNameChangedHint(FmEntryData *pData, const OUString &rNewName)
Definition: fmexpl.cxx:102
virtual ~FmEntryData()
Definition: fmexpl.cxx:173
void clear()
Definition: fmexpl.cxx:158
const sal_uInt16 OBJ_FM_CHECKBOX
Definition: fmglob.hxx:31
virtual bool IsEqualWithoutChildren(FmEntryData *pEntryData) override
Definition: fmexpl.cxx:275
const sal_uInt16 OBJ_FM_SCROLLBAR
Definition: fmglob.hxx:46
const sal_uInt16 OBJ_FM_FIXEDTEXT
Definition: fmglob.hxx:29
const sal_uInt16 OBJ_FM_SPINBUTTON
Definition: fmglob.hxx:47
const sal_uInt16 OBJ_FM_GRID
Definition: fmglob.hxx:35
virtual ~NavigatorFrame() override
Definition: fmexpl.cxx:470
size_t size() const
Definition: fmexpl.hxx:197
WinBits const WB_3DLOOK
virtual std::unique_ptr< FmEntryData > Clone() override
Definition: fmexpl.cxx:269
WinBits const WB_SIZEABLE
FmNavModelReplacedHint(FmEntryData *pAffectedEntryData)
Definition: fmexpl.cxx:82
FmEntryData(FmEntryData *pParentData, const css::uno::Reference< css::uno::XInterface > &_rIFace)
const sal_uInt16 OBJ_FM_RADIOBUTTON
Definition: fmglob.hxx:33
void StateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem *pState) override
Definition: fmexpl.cxx:489
virtual void FillInfo(SfxChildWinInfo &) const
SfxItemState
SfxChildAlignment
const sal_uInt16 OBJ_FM_FORMATTEDFIELD
Definition: fmglob.hxx:45
FmControlData(const css::uno::Reference< css::form::XFormComponent > &_rxComponent, FmFormData *_pParent)
static VclPtr< reference_type > Create(Arg &&...arg)
const sal_uInt16 OBJ_FM_LISTBOX
Definition: fmglob.hxx:30
void ModelReplaced(const css::uno::Reference< css::form::XFormComponent > &_rxNew)
Definition: fmexpl.cxx:445
char aEntryName[20]
const sal_uInt16 OBJ_FM_IMAGECONTROL
Definition: fmglob.hxx:44
virtual ~FmNavRemovedHint() override
Definition: fmexpl.cxx:98
virtual bool Close() override
Definition: fmexpl.cxx:513
class FmSearchEngine - Impl class for FmSearchDialog
Image GetImage() const
Definition: fmexpl.cxx:324
virtual void Resize() override
WinBits const WB_STDMODELESS
virtual std::unique_ptr< FmEntryData > Clone() override
Definition: fmexpl.cxx:318
FmFormData(const css::uno::Reference< css::form::XForm > &_rxForm, FmFormData *_pParent)
OUString getString(const Any &_rAny)
css::uno::Reference< css::form::XFormComponent > m_xFormComponent
Definition: fmexpl.hxx:244
virtual void dispose() override
const sal_uInt16 OBJ_FM_HIDDEN
Definition: fmglob.hxx:43
struct _ADOIndex Index
const sal_uInt16 OBJ_FM_BUTTON
Definition: fmglob.hxx:28
const sal_uInt16 OBJ_FM_TIMEFIELD
Definition: fmglob.hxx:39
const sal_uInt16 OBJ_FM_CURRENCYFIELD
Definition: fmglob.hxx:41
virtual void dispose() override
Definition: fmexpl.cxx:475
FmEntryDataList * GetChildList() const
Definition: fmexpl.hxx:161
const sal_uInt16 OBJ_FM_DATEFIELD
Definition: fmglob.hxx:38
sal_uInt16 nPos
FmNavInsertedHint(FmEntryData *pInsertedEntryData, sal_uInt32 nRelPos)
Definition: fmexpl.cxx:68
virtual ~FmFormData() override
Definition: fmexpl.cxx:258
OUString aText
Definition: fmexpl.hxx:139