LibreOffice Module sw (master)  1
optcomp.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 <optcomp.hxx>
21 
22 #include <docsh.hxx>
23 #include <swmodule.hxx>
24 #include <swtypes.hxx>
25 #include <uiitems.hxx>
26 #include <view.hxx>
27 #include <wrtsh.hxx>
28 
29 #include <globals.hrc>
30 #include <unotools/configmgr.hxx>
31 #include <vcl/weld.hxx>
32 #include <sfx2/docfile.hxx>
33 #include <sfx2/docfilt.hxx>
34 #include <sfx2/fcontnr.hxx>
35 #include <vcl/treelistentry.hxx>
37 #include <vector>
40 #include <officecfg/Office/Compatibility.hxx>
41 #include <vcl/svlbitm.hxx>
42 
43 #include <com/sun/star/beans/PropertyValue.hpp>
44 
45 using namespace ::com::sun::star::beans;
46 using namespace ::com::sun::star::document;
47 using namespace ::com::sun::star::uno;
48 using namespace ::std;
49 
51 {
52  std::vector< SvtCompatibilityEntry > m_aList;
53 };
54 
56  : SfxTabPage(pParent, "OptCompatPage", "modules/swriter/ui/optcompatpage.ui", &rSet)
57  , m_pWrtShell(nullptr)
58  , m_pImpl(new SwCompatibilityOptPage_Impl)
59  , m_nSavedOptions(0)
60  , m_bSavedMSFormsMenuOption(false)
61 {
62  get(m_pMain, "compatframe");
63  get(m_pGlobalOptionsFrame, "globalcompatframe");
64  get(m_pFormattingLB, "format");
65  get(m_pGlobalOptionsLB, "globaloptions");
66  get(m_pOptionsLB, "options");
67  get(m_pGlobalOptionsCLB, "globaloptioncheckbox");
68  get(m_pDefaultPB, "default");
69 
70  for ( int i = static_cast<int>(SvtCompatibilityEntry::Index::Module) + 1; i < static_cast<int>(SvtCompatibilityEntry::Index::INVALID); ++i )
71  {
72  int nCoptIdx = i - 2; /* Do not consider "Name" & "Module" indexes */
73 
74  const OUString sEntry = m_pFormattingLB->GetEntry( nCoptIdx );
75  SvTreeListEntry* pEntry = m_pOptionsLB->SvTreeListBox::InsertEntry( sEntry );
76  if ( pEntry )
77  {
78  m_pOptionsLB->SetCheckButtonState( pEntry, SvButtonState::Unchecked );
79  }
80  }
81 
83 
85 
86  m_pOptionsLB->SetStyle( m_pOptionsLB->GetStyle() | WB_HSCROLL | WB_HIDESELECTION );
87  m_pOptionsLB->SetHighlightRange();
88 
89 
90  // Set MSOCompatibleFormsMenu entry attributes
91  const bool bReadOnly = officecfg::Office::Compatibility::View::MSCompatibleFormsMenu::isReadOnly();
92  const bool bChecked = m_aViewConfigItem.HasMSOCompatibleFormsMenu();
93 
94  SvTreeListEntry* pEntry;
95  if(bReadOnly)
96  {
97  pEntry = m_pGlobalOptionsCLB->SvTreeListBox::InsertEntry( m_pGlobalOptionsLB->GetEntry( 0 ), nullptr, false,
98  TREELIST_APPEND, nullptr, SvLBoxButtonKind::DisabledCheckbox);
99  }
100  else
101  {
102  pEntry = m_pGlobalOptionsCLB->SvTreeListBox::InsertEntry( m_pGlobalOptionsLB->GetEntry( 0 ) );
103  }
104 
105  if ( pEntry )
106  {
107  SvLBoxButton* pButton = static_cast<SvLBoxButton*>(pEntry->GetFirstItem(SvLBoxItemType::Button));
108  if(bChecked)
109  pButton->SetStateChecked();
110  else
111  pButton->SetStateUnchecked();
112  }
113 
115 
117  m_pGlobalOptionsCLB->SetHighlightRange();
118  // tdf#125799, we let only the doc options grow/shrink but give this one more than its bare
119  // min request height because there's only one row in it and that looks somewhat abrupt
120  m_pGlobalOptionsCLB->set_height_request(m_pGlobalOptionsCLB->get_preferred_size().Height() * 2);
121 
122  InitControls( rSet );
123 
124  // set handler
126  m_pDefaultPB->SetClickHdl( LINK( this, SwCompatibilityOptPage, UseAsDefaultHdl ) );
127 }
128 
130 {
131  disposeOnce();
132 }
133 
135 {
136  m_pImpl.reset();
137  m_pMain.clear();
145 }
146 
148 (
149  bool _bUsePrtMetrics,
150  bool _bAddSpacing,
151  bool _bAddSpacingAtPages,
152  bool _bUseOurTabStops,
153  bool _bNoExtLeading,
154  bool _bUseLineSpacing,
155  bool _bAddTableSpacing,
156  bool _bUseObjPos,
157  bool _bUseOurTextWrapping,
158  bool _bConsiderWrappingStyle,
159  bool _bExpandWordSpace,
160  bool _bProtectForm,
161  bool _bMsWordCompTrailingBlanks,
162  bool bSubtractFlysAnchoredAtFlys,
163  bool bEmptyDbFieldHidesPara
164 )
165 {
166  sal_uLong nRet = 0;
167  sal_uLong nSetBit = 1;
168 
169  if ( _bUsePrtMetrics )
170  nRet |= nSetBit;
171  nSetBit = nSetBit << 1;
172  if ( _bAddSpacing )
173  nRet |= nSetBit;
174  nSetBit = nSetBit << 1;
175  if ( _bAddSpacingAtPages )
176  nRet |= nSetBit;
177  nSetBit = nSetBit << 1;
178  if ( _bUseOurTabStops )
179  nRet |= nSetBit;
180  nSetBit = nSetBit << 1;
181  if ( _bNoExtLeading )
182  nRet |= nSetBit;
183  nSetBit = nSetBit << 1;
184  if ( _bUseLineSpacing )
185  nRet |= nSetBit;
186  nSetBit = nSetBit << 1;
187  if ( _bAddTableSpacing )
188  nRet |= nSetBit;
189  nSetBit = nSetBit << 1;
190  if ( _bUseObjPos )
191  nRet |= nSetBit;
192  nSetBit = nSetBit << 1;
193  if ( _bUseOurTextWrapping )
194  nRet |= nSetBit;
195  nSetBit = nSetBit << 1;
196  if ( _bConsiderWrappingStyle )
197  nRet |= nSetBit;
198  nSetBit = nSetBit << 1;
199  if ( _bExpandWordSpace )
200  nRet |= nSetBit;
201  nSetBit = nSetBit << 1;
202  if ( _bProtectForm )
203  nRet |= nSetBit;
204  nSetBit = nSetBit << 1;
205  if ( _bMsWordCompTrailingBlanks )
206  nRet |= nSetBit;
207  nSetBit = nSetBit << 1;
208  if (bSubtractFlysAnchoredAtFlys)
209  nRet |= nSetBit;
210  nSetBit = nSetBit << 1;
211  if (bEmptyDbFieldHidesPara)
212  nRet |= nSetBit;
213 
214  return nRet;
215 }
216 
218 {
219  // init objectshell and detect document name
220  OUString sDocTitle;
221  const SfxPoolItem* pItem = nullptr;
222  SfxObjectShell* pObjShell = nullptr;
223  if ( SfxItemState::SET == rSet.GetItemState( FN_PARAM_WRTSHELL, false, &pItem ) )
224  m_pWrtShell = static_cast<SwWrtShell*>(static_cast<const SwPtrItem*>(pItem)->GetValue());
225  if ( m_pWrtShell )
226  {
227  pObjShell = m_pWrtShell->GetView().GetDocShell();
228  if ( pObjShell )
229  sDocTitle = pObjShell->GetTitle();
230  }
231  else
232  {
233  m_pMain->Disable();
235  }
236  const OUString& rText = m_pMain->get_label();
237  m_pMain->set_label(rText.replaceAll("%DOCNAME", sDocTitle));
238 
239  // loading file formats
240  Sequence< Sequence< PropertyValue > > aList = m_aConfigItem.GetList();
241 
242  SvtCompatibilityEntry aEntry;
244 
245  const sal_Int32 nCount = aList.getLength();
246  for ( sal_Int32 i = 0; i < nCount; ++i )
247  {
248  const Sequence< PropertyValue >& rEntry = aList[i];
249  const sal_Int32 nEntries = rEntry.getLength();
250  for ( sal_Int32 j = 0; j < nEntries; j++ )
251  {
252  PropertyValue aValue = rEntry[j];
253  aEntry.setValue( SvtCompatibilityEntry::getIndex(aValue.Name), aValue.Value );
254  }
255 
256  const OUString sEntryName = aEntry.getValue<OUString>( SvtCompatibilityEntry::Index::Name );
257 
258  const bool bIsUserEntry = ( sEntryName == SvtCompatibilityEntry::getUserEntryName() );
259  const bool bIsDefaultEntry = ( sEntryName == SvtCompatibilityEntry::getDefaultEntryName() );
260 
261  aEntry.setDefaultEntry( bIsDefaultEntry );
262 
263  m_pImpl->m_aList.push_back( aEntry );
264 
265  if ( aEntry.isDefaultEntry() )
266  continue;
267 
268  OUString sNewEntry;
269  if ( bIsUserEntry )
270  sNewEntry = m_sUserEntry;
271 
272  else if ( pObjShell && !sEntryName.isEmpty() )
273  {
274  SfxFilterContainer* pFacCont = pObjShell->GetFactory().GetFilterContainer();
275  std::shared_ptr<const SfxFilter> pFilter = pFacCont->GetFilter4FilterName( sEntryName );
276  if ( pFilter )
277  sNewEntry = pFilter->GetUIName();
278  }
279 
280  if ( sNewEntry.isEmpty() )
281  sNewEntry = sEntryName;
282 
283  const sal_Int32 nPos = m_pFormattingLB->InsertEntry( sNewEntry );
295  aEntry.getValue<bool>( SvtCompatibilityEntry::Index::ExpandWordSpace ),
300  m_pFormattingLB->SetEntryData( nPos, reinterpret_cast<void*>(static_cast<sal_IntPtr>(nOptions)) );
301  }
302 
304 }
305 
307 {
308  const sal_Int32 nPos = m_pFormattingLB->GetSelectedEntryPos();
309  sal_uLong nOptions = reinterpret_cast<sal_uLong>(m_pFormattingLB->GetEntryData( nPos ));
310  SetCurrentOptions( nOptions );
311 }
312 
314 {
315  std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "modules/swriter/ui/querydefaultcompatdialog.ui"));
316  std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("QueryDefaultCompatDialog"));
317  if (xQueryBox->run() == RET_YES)
318  {
319  auto pItem = std::find_if(m_pImpl->m_aList.begin(), m_pImpl->m_aList.end(),
320  [](const SvtCompatibilityEntry& rItem) { return rItem.isDefaultEntry(); });
321  if (pItem != m_pImpl->m_aList.end())
322  {
323  const sal_Int32 nCount = m_pOptionsLB->GetEntryCount();
324  for ( sal_Int32 i = 0; i < nCount; ++i )
325  {
326  bool bChecked = m_pOptionsLB->IsChecked(static_cast< sal_uLong >( i ));
327 
328  int nCoptIdx = i + 2; /* Consider "Name" & "Module" indexes */
329  pItem->setValue<bool>( SvtCompatibilityEntry::Index(nCoptIdx), bChecked );
330  }
331  }
332 
333  WriteOptions();
334  }
335 }
336 
338 {
339  const sal_uLong nCount = m_pOptionsLB->GetEntryCount();
340  OSL_ENSURE( nCount <= 32, "SwCompatibilityOptPage::Reset(): entry overflow" );
341  for ( sal_uLong i = 0; i < nCount; ++i )
342  {
343  bool bChecked = ( ( nOptions & 0x00000001 ) == 0x00000001 );
344  m_pOptionsLB->CheckEntryPos( i, bChecked );
345  nOptions = nOptions >> 1;
346  }
347 }
348 
350 {
351  sal_uLong nRet = 0;
352  if ( m_pWrtShell )
353  {
354  const IDocumentSettingAccess& rIDocumentSettingAccess = m_pWrtShell->getIDocumentSettingAccess();
356  !rIDocumentSettingAccess.get( DocumentSettingId::USE_VIRTUAL_DEVICE ),
357  rIDocumentSettingAccess.get( DocumentSettingId::PARA_SPACE_MAX ),
358  rIDocumentSettingAccess.get( DocumentSettingId::PARA_SPACE_MAX_AT_PAGES ),
359  !rIDocumentSettingAccess.get( DocumentSettingId::TAB_COMPAT ),
360  !rIDocumentSettingAccess.get( DocumentSettingId::ADD_EXT_LEADING ),
361  rIDocumentSettingAccess.get( DocumentSettingId::OLD_LINE_SPACING ),
362  rIDocumentSettingAccess.get( DocumentSettingId::ADD_PARA_SPACING_TO_TABLE_CELLS ),
363  rIDocumentSettingAccess.get( DocumentSettingId::USE_FORMER_OBJECT_POS ),
364  rIDocumentSettingAccess.get( DocumentSettingId::USE_FORMER_TEXT_WRAPPING ),
365  rIDocumentSettingAccess.get( DocumentSettingId::CONSIDER_WRAP_ON_OBJECT_POSITION ),
367  rIDocumentSettingAccess.get( DocumentSettingId::PROTECT_FORM ),
368  rIDocumentSettingAccess.get( DocumentSettingId::MS_WORD_COMP_TRAILING_BLANKS ),
369  rIDocumentSettingAccess.get( DocumentSettingId::SUBTRACT_FLYS ),
370  rIDocumentSettingAccess.get( DocumentSettingId::EMPTY_DB_FIELD_HIDES_PARA ) );
371  }
372  return nRet;
373 }
374 
376 {
378  for ( const auto& rItem : m_pImpl->m_aList )
379  m_aConfigItem.AppendItem(rItem);
380 }
381 
383 {
384  return VclPtr<SwCompatibilityOptPage>::Create( pParent.pParent, *rAttrSet );
385 }
386 
388 {
389  bool bModified = false;
390  if ( m_pWrtShell )
391  {
392  sal_uLong nSavedOptions = m_nSavedOptions;
393  const sal_uLong nCount = m_pOptionsLB->GetEntryCount();
394  OSL_ENSURE( nCount <= 32, "SwCompatibilityOptPage::Reset(): entry overflow" );
395 
396  for ( sal_uLong i = 0; i < nCount; ++i )
397  {
398  bool bChecked = m_pOptionsLB->IsChecked(i);
399  bool bSavedChecked = ( ( nSavedOptions & 0x00000001 ) == 0x00000001 );
400  if ( bChecked != bSavedChecked )
401  {
402  int nCoptIdx = i + 2; /* Consider "Name" & "Module" indexes */
403  switch ( SvtCompatibilityEntry::Index(nCoptIdx) )
404  {
406  m_pWrtShell->SetUseVirDev( !bChecked );
407  break;
408 
410  m_pWrtShell->SetParaSpaceMax( bChecked );
411  break;
412 
414  m_pWrtShell->SetParaSpaceMaxAtPages( bChecked );
415  break;
416 
418  m_pWrtShell->SetTabCompat( !bChecked );
419  break;
420 
422  m_pWrtShell->SetAddExtLeading( !bChecked );
423  break;
424 
427  break;
428 
431  break;
432 
435  break;
436 
439  break;
440 
443  break;
444 
447  break;
448 
450  m_pWrtShell->SetProtectForm( bChecked );
451  break;
452 
455  break;
456 
459  break;
460 
463  break;
464 
465  default:
466  break;
467  }
468  bModified = true;
469  }
470 
471  nSavedOptions = nSavedOptions >> 1;
472  }
473  }
474 
475  if ( bModified )
476  WriteOptions();
477 
478  bool bNewMSFormsMenuOption = m_pGlobalOptionsCLB->IsChecked(0);
479  if (m_bSavedMSFormsMenuOption != bNewMSFormsMenuOption)
480  {
481  m_aViewConfigItem.SetMSOCompatibleFormsMenu(bNewMSFormsMenuOption);
482  m_bSavedMSFormsMenuOption = bNewMSFormsMenuOption;
483  bModified = true;
484 
485  // Show a message about that the option needs a restart to be applied
486  {
487  SolarMutexGuard aGuard;
490  {
491  GetParentDialog()->EndDialog(RET_OK);
492  }
493  }
494  }
495 
496  return bModified;
497 }
498 
500 {
502 
503  sal_uLong nOptions = GetDocumentOptions();
504  SetCurrentOptions( nOptions );
505  m_nSavedOptions = nOptions;
506 
509 }
510 
511 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void SetMSOCompatibleFormsMenu(bool bSet)
void SetAddExtLeading(bool bNew)
Definition: viewsh.cxx:801
virtual SfxObjectFactory & GetFactory() const =0
void SetMsWordCompTrailingBlanks(bool _bMsWordCompTrailingBlanks)
Definition: viewsh.cxx:920
SvtCompatibilityOptions m_aConfigItem
Definition: optcomp.hxx:47
OUString GetTitle(sal_uInt16 nMaxLen=0) const
IMPL_LINK_NOARG(SwCompatibilityOptPage, SelectHdl, ListBox &, void)
Definition: optcomp.cxx:306
void SetClickHdl(const Link< Button *, void > &rLink)
void SetDoNotJustifyLinesWithManualBreak(bool _bDoNotJustifyLinesWithManualBreak)
Definition: viewsh.cxx:902
void SetParaSpaceMaxAtPages(bool bNew)
Definition: viewsh.cxx:777
void SetAddParaSpacingToTableCells(bool _bAddParaSpacingToTableCells)
Sets if paragraph and table spacing is added at bottom of table cells.
Definition: viewsh.cxx:832
css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > > GetList() const
sal_uLong m_nSavedOptions
Definition: optcomp.hxx:57
sal_uIntPtr sal_uLong
void SetCurrentOptions(sal_uLong nOptions)
Definition: optcomp.cxx:337
static Index getIndex(const OUString &rName)
const IDocumentSettingAccess & getIDocumentSettingAccess() const
Provides access to the document setting interface.
Definition: viewsh.cxx:2588
void SetDropDownLineCount(sal_uInt16 nLines)
static OUString getUserEntryName()
void Clear()
virtual ~SwCompatibilityOptPage() override
Definition: optcomp.cxx:129
VclPtr< SvxCheckListBox > m_pGlobalOptionsCLB
Definition: optcomp.hxx:44
virtual void Reset(const SfxItemSet *rSet) override
Definition: optcomp.cxx:499
void SetUseFormerTextWrapping(bool _bUseFormerTextWrapping)
Definition: viewsh.cxx:889
const SwView & GetView() const
Definition: wrtsh.hxx:426
RET_YES
sal_Int32 GetEntryCount() const
WinBits const WB_HSCROLL
VclPtr< SvxCheckListBox > m_pOptionsLB
Definition: optcomp.hxx:43
void SetEmptyDbFieldHidesPara(bool bEmptyDbFieldHidesPara)
Definition: viewsh.cxx:938
std::vector< SvtCompatibilityEntry > m_aList
Definition: optcomp.cxx:52
OUString GetEntry(sal_Int32 nPos) const
virtual void dispose() override
bool HasMSOCompatibleFormsMenu() const
SwCompatibilityOptPage(vcl::Window *pParent, const SfxItemSet &rSet)
Definition: optcomp.cxx:55
SVT_DLLPUBLIC bool executeRestartDialog(css::uno::Reference< css::uno::XComponentContext > const &context, weld::Window *parent, RestartReason reason)
VclPtr< vcl::Window > pParent
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
void SetStateUnchecked()
void CheckEntryPos(sal_uLong nPos, bool bCheck=true)
OUString get_label() const
#define FN_PARAM_WRTSHELL
Definition: cmdid.h:767
int i
bool isDefaultEntry() const
VclPtr< PushButton > m_pDefaultPB
Definition: optcomp.hxx:45
weld::Window * GetFrameWeld(SfxFrame *pFrame)
Definition: dialoghelp.cxx:20
void setValue(const Index rIdx, css::uno::Any const &rValue)
Provides access to settings of a document.
bool m_bSavedMSFormsMenuOption
Definition: optcomp.hxx:58
sal_Int32 InsertEntry(const OUString &rStr, sal_Int32 nPos=LISTBOX_APPEND)
static OUString getDefaultEntryName()
sal_uLong GetDocumentOptions() const
Definition: optcomp.cxx:349
SwWrtShell * m_pWrtShell
Definition: optcomp.hxx:53
void SetSelectHdl(const Link< ListBox &, void > &rLink)
void InitControls(const SfxItemSet &rSet)
Definition: optcomp.cxx:217
void AppendItem(const SvtCompatibilityEntry &aItem)
SwDocShell * GetDocShell()
Definition: view.cxx:1115
void Disable(bool bChild=true)
VclPtr< ListBox > m_pFormattingLB
Definition: optcomp.hxx:41
void SetConsiderWrapOnObjPos(bool _bConsiderWrapOnObjPos)
Definition: viewsh.cxx:878
WinBits const WB_HIDESELECTION
static VclPtr< SfxTabPage > Create(TabPageParent pParent, const SfxItemSet *rAttrSet)
Definition: optcomp.cxx:382
VclPtr< ListBox > m_pGlobalOptionsLB
Definition: optcomp.hxx:42
void SetUseFormerLineSpacing(bool _bUseFormerLineSpacing)
Sets if former formatting of text lines with proportional line spacing should used.
Definition: viewsh.cxx:849
std::unique_ptr< SwCompatibilityOptPage_Impl > m_pImpl
Definition: optcomp.hxx:55
VclPtr< VclFrame > m_pMain
Definition: optcomp.hxx:39
bool IsChecked(sal_uLong nPos) const
void SetUseFormerObjectPositioning(bool _bUseFormerObjPos)
Sets IDocumentSettingAccess if former object positioning should be used.
Definition: viewsh.cxx:866
std::shared_ptr< const SfxFilter > GetFilter4FilterName(const OUString &rName, SfxFilterFlags nMust=SfxFilterFlags::NONE, SfxFilterFlags nDont=SFX_FILTER_NOTINSTALLED) const
VclPtr< VclFrame > m_pGlobalOptionsFrame
Definition: optcomp.hxx:40
RET_OK
static VclPtr< reference_type > Create(Arg &&...arg)
const SvLBoxItem * GetFirstItem(SvLBoxItemType eType) const
Reference< XComponentContext > getProcessComponentContext()
void SetUseVirDev(bool bNew)
Definition: viewsh.cxx:816
static sal_uLong convertBools2Ulong_Impl(bool _bUsePrtMetrics, bool _bAddSpacing, bool _bAddSpacingAtPages, bool _bUseOurTabStops, bool _bNoExtLeading, bool _bUseLineSpacing, bool _bAddTableSpacing, bool _bUseObjPos, bool _bUseOurTextWrapping, bool _bConsiderWrappingStyle, bool _bExpandWordSpace, bool _bProtectForm, bool _bMsWordCompTrailingBlanks, bool bSubtractFlysAnchoredAtFlys, bool bEmptyDbFieldHidesPara)
Definition: optcomp.cxx:148
void SetParaSpaceMax(bool bNew)
Definition: viewsh.cxx:765
virtual bool get(DocumentSettingId id) const =0
Return the specified document setting.
static weld::Builder * CreateBuilder(weld::Widget *pParent, const OUString &rUIFile)
void SetSubtractFlysAnchoredAtFlys(bool bSubtractFlysAnchoredAtFlys)
Definition: viewsh.cxx:932
css::uno::Any getValue(const Index rIdx) const
RESTART_REASON_MSCOMPATIBLE_FORMS_MENU
void setDefaultEntry(bool rValue)
virtual bool FillItemSet(SfxItemSet *rSet) override
Definition: optcomp.cxx:387
void SetEntryData(sal_Int32 nPos, void *pNewData)
SvtCompatibilityViewOptions m_aViewConfigItem
Definition: optcomp.hxx:49
SfxFilterContainer * GetFilterContainer() const
void SetProtectForm(bool _bProtectForm)
Definition: viewsh.cxx:914
void SetTabCompat(bool bNew)
Definition: viewsh.cxx:789
sal_Int32 nPos
void set_label(const OUString &rLabel)
virtual void dispose() override
Definition: optcomp.cxx:134
void SelectEntryPos(sal_uLong nPos)
void SetStateChecked()
#define TREELIST_APPEND