1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
19 #ifndef INCLUDED_SFX2_DINFDLG_HXX
20 #define INCLUDED_SFX2_DINFDLG_HXX
22 #include <config_options.h>
23 #include <sal/config.h>
24 #include <sfx2/dllapi.h>
26 #include <com/sun/star/beans/PropertyValue.hpp>
27 #include <com/sun/star/util/DateTime.hpp>
28 #include <com/sun/star/util/Duration.hpp>
29 #include <com/sun/star/document/CmisProperty.hpp>
31 #include <svl/numformat.hxx>
32 #include <svl/stritem.hxx>
33 #include <svtools/ctrlbox.hxx>
35 #include <vcl/idle.hxx>
36 #include <vcl/weldutils.hxx>
38 #include <sfx2/tabdlg.hxx>
42 #include <vcl/abstdlg.hxx>
44 namespace com::sun::star::beans
{ struct PropertyValue
; }
46 namespace com::sun::star
{
48 class XDocumentProperties
;
52 struct CustomProperty
;
55 // class SfxDocumentInfoItem ---------------------------------------------
57 class UNLESS_MERGELIBS(SFX2_DLLPUBLIC
) SfxDocumentInfoItem final
: public SfxStringItem
60 sal_Int32 m_AutoloadDelay
;
61 OUString m_AutoloadURL
;
62 bool m_isAutoloadEnabled
;
63 OUString m_DefaultTarget
;
64 OUString m_TemplateName
;
66 css::util::DateTime m_CreationDate
;
67 OUString m_ModifiedBy
;
68 css::util::DateTime m_ModificationDate
;
70 css::util::DateTime m_PrintDate
;
71 sal_Int16 m_EditingCycles
;
72 sal_Int32 m_EditingDuration
;
73 OUString m_Description
;
78 bool m_bDeleteUserData
;
80 bool m_bUseThumbnailSave
;
81 std::vector
< std::unique_ptr
<CustomProperty
> > m_aCustomProperties
;
82 css::uno::Sequence
< css::document::CmisProperty
> m_aCmisProperties
;
85 static SfxPoolItem
* CreateDefault();
86 SfxDocumentInfoItem();
87 SfxDocumentInfoItem( const OUString
&rFileName
,
88 const css::uno::Reference
< css::document::XDocumentProperties
> & i_xDocProps
,
89 const css::uno::Sequence
< css::document::CmisProperty
> & i_cmisProps
,
90 bool bUseUserData
, bool bUseThumbnailSave
);
91 SfxDocumentInfoItem( const SfxDocumentInfoItem
& );
92 virtual ~SfxDocumentInfoItem() override
;
94 /// update i_xDocProps with the data in this object
95 void UpdateDocumentInfo(
96 const css::uno::Reference
< css::document::XDocumentProperties
> & i_xDocProps
,
97 bool i_bDoNotUpdateUserDefined
= false)
99 bool isCmisDocument() const { return m_aCmisProperties
.hasElements();}
101 bool isAutoloadEnabled() const { return m_isAutoloadEnabled
; }
102 sal_Int32
getAutoloadDelay() const { return m_AutoloadDelay
; }
103 const OUString
& getAutoloadURL() const { return m_AutoloadURL
; }
104 const OUString
& getDefaultTarget() const { return m_DefaultTarget
; }
105 const OUString
& getTemplateName() const { return m_TemplateName
; }
106 const OUString
& getAuthor() const { return m_Author
; }
108 const css::util::DateTime
&
109 getCreationDate() const { return m_CreationDate
; }
110 const OUString
& getModifiedBy() const { return m_ModifiedBy
; }
112 const css::util::DateTime
&
113 getModificationDate() const { return m_ModificationDate
; }
114 const OUString
& getPrintedBy() const { return m_PrintedBy
; }
115 const css::util::DateTime
&
116 getPrintDate() const { return m_PrintDate
; }
117 sal_Int16
getEditingCycles() const { return m_EditingCycles
; }
118 sal_Int32
getEditingDuration() const { return m_EditingDuration
; }
119 const OUString
& getDescription() const { return m_Description
; }
120 void setDescription(const OUString
& i_val
) { m_Description
= i_val
; }
121 const OUString
& getKeywords() const { return m_Keywords
; }
122 void setKeywords(const OUString
& i_val
) { m_Keywords
= i_val
; }
123 const OUString
& getSubject() const { return m_Subject
; }
124 void setSubject(const OUString
& i_val
) { m_Subject
= i_val
; }
125 const OUString
& getTitle() const { return m_Title
; }
126 void setTitle(const OUString
& i_val
) { m_Title
= i_val
; }
128 /// reset user-specific data (author, modified-by, ...)
129 void resetUserData(const OUString
& i_rAuthor
);
131 void SetTemplate( bool b
) { m_bHasTemplate
= b
; }
132 bool HasTemplate() const { return m_bHasTemplate
; }
133 void SetDeleteUserData( bool bSet
);
134 void SetUseUserData( bool bSet
);
135 void SetUseThumbnailSave( bool bSet
);
136 bool IsUseUserData() const { return m_bUseUserData
;}
137 bool IsUseThumbnailSave() const { return m_bUseThumbnailSave
;}
140 std::vector
< std::unique_ptr
<CustomProperty
> > GetCustomProperties() const;
141 void ClearCustomProperties();
142 void AddCustomProperty( const OUString
& sName
,
143 const css::uno::Any
& rValue
);
145 const css::uno::Sequence
< css::document::CmisProperty
>&
146 GetCmisProperties() const { return m_aCmisProperties
;}
148 void SetCmisProperties(const css::uno::Sequence
< css::document::CmisProperty
>& cmisProps
);
149 virtual SfxDocumentInfoItem
* Clone( SfxItemPool
* pPool
= nullptr ) const override
;
150 virtual bool operator==( const SfxPoolItem
& ) const override
;
151 virtual bool QueryValue( css::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 ) const override
;
152 virtual bool PutValue( const css::uno::Any
& rVal
, sal_uInt8 nMemberId
) override
;
155 // class SfxDocumentPage -------------------------------------------------
157 class SfxDocumentPage final
: public SfxTabPage
160 OUString m_aUnknownSize
;
161 OUString m_aMultiSignedStr
;
163 bool bEnableUseUserData
: 1,
166 std::unique_ptr
<weld::Image
> m_xBmp
;
167 std::unique_ptr
<weld::Label
> m_xNameED
;
168 std::unique_ptr
<weld::Button
> m_xChangePassBtn
;
170 std::unique_ptr
<weld::Label
> m_xShowTypeFT
;
171 std::unique_ptr
<weld::LinkButton
> m_xFileValEd
;
172 std::unique_ptr
<weld::Label
> m_xShowSizeFT
;
174 std::unique_ptr
<weld::Label
> m_xCreateValFt
;
175 std::unique_ptr
<weld::Label
> m_xChangeValFt
;
176 std::unique_ptr
<weld::Label
> m_xSignedValFt
;
177 std::unique_ptr
<weld::Button
> m_xSignatureBtn
;
178 std::unique_ptr
<weld::Label
> m_xPrintValFt
;
179 std::unique_ptr
<weld::Label
> m_xTimeLogValFt
;
180 std::unique_ptr
<weld::Label
> m_xDocNoValFt
;
182 std::unique_ptr
<weld::CheckButton
> m_xUseUserDataCB
;
183 std::unique_ptr
<weld::Button
> m_xDeleteBtn
;
184 std::unique_ptr
<weld::CheckButton
> m_xUseThumbnailSaveCB
;
186 std::unique_ptr
<weld::Label
> m_xTemplFt
;
187 std::unique_ptr
<weld::Label
> m_xTemplValFt
;
188 std::unique_ptr
<weld::CheckButton
> m_xImagePreferredDpiCheckButton
;
189 std::unique_ptr
<weld::ComboBox
> m_xImagePreferredDpiComboBox
;
191 DECL_LINK(DeleteHdl
, weld::Button
&, void);
192 DECL_LINK(SignatureHdl
, weld::Button
&, void);
193 DECL_LINK(ChangePassHdl
, weld::Button
&, void);
194 DECL_LINK(ImagePreferredDPICheckBoxClicked
, weld::Toggleable
&, void);
196 void ImplUpdateSignatures();
197 void ImplCheckPasswordState();
199 virtual bool FillItemSet( SfxItemSet
* ) override
;
200 virtual void Reset( const SfxItemSet
* ) override
;
201 VclPtr
<AbstractPasswordToOpenModifyDialog
> m_xPasswordDialog
;
204 SfxDocumentPage(weld::Container
* pPage
, weld::DialogController
* pController
, const SfxItemSet
&);
205 static std::unique_ptr
<SfxTabPage
> Create( weld::Container
* pPage
, weld::DialogController
* pController
, const SfxItemSet
* );
206 virtual ~SfxDocumentPage() override
;
208 void EnableUseUserData();
211 // class SfxDocumentDescPage ---------------------------------------------
213 class SfxDocumentDescPage final
: public SfxTabPage
216 SfxDocumentInfoItem
* m_pInfoItem
;
217 std::unique_ptr
<weld::Entry
> m_xTitleEd
;
218 std::unique_ptr
<weld::Entry
> m_xThemaEd
;
219 std::unique_ptr
<weld::Entry
> m_xKeywordsEd
;
220 std::unique_ptr
<weld::TextView
> m_xCommentEd
;
222 virtual bool FillItemSet( SfxItemSet
* ) override
;
223 virtual void Reset( const SfxItemSet
* ) override
;
226 SfxDocumentDescPage(weld::Container
* pPage
, weld::DialogController
* pController
, const SfxItemSet
&);
227 virtual ~SfxDocumentDescPage() override
;
228 static std::unique_ptr
<SfxTabPage
> Create( weld::Container
* pPage
, weld::DialogController
* pController
, const SfxItemSet
* );
231 // class SfxDocumentInfoDialog -------------------------------------------
233 class SFX2_DLLPUBLIC SfxDocumentInfoDialog final
: public SfxTabDialogController
235 virtual void PageCreated(const OUString
& rId
, SfxTabPage
& rPage
) override
;
238 SfxDocumentInfoDialog(weld::Window
* pParent
, const SfxItemSet
&);
239 void AddFontTabPage();
242 // class CustomPropertiesRemoveButton ------------------------------------
243 struct CustomPropertyLine
;
245 class CustomPropertiesDateField
248 std::unique_ptr
<SvtCalendarBox
> m_xDateField
;
250 ::std::optional
<sal_Int16
> m_TZ
;
252 CustomPropertiesDateField(SvtCalendarBox
* pDateField
);
253 void set_visible(bool bVisible
);
254 Date
get_date() const;
255 void set_date(const Date
& rDate
);
256 ~CustomPropertiesDateField();
264 class CustomPropertiesTimeField
267 std::unique_ptr
<weld::FormattedSpinButton
> m_xTimeField
;
268 std::unique_ptr
<weld::TimeFormatter
> m_xFormatter
;
271 CustomPropertiesTimeField(std::unique_ptr
<weld::FormattedSpinButton
> xTimeField
);
272 void set_visible(bool bVisible
) { m_xTimeField
->set_visible(bVisible
); }
273 tools::Time
get_value() const;
274 void set_value(const tools::Time
& rTime
);
276 ~CustomPropertiesTimeField();
279 class DurationDialog_Impl
: public weld::GenericDialogController
281 std::unique_ptr
<weld::CheckButton
> m_xNegativeCB
;
282 std::unique_ptr
<weld::SpinButton
> m_xYearNF
;
283 std::unique_ptr
<weld::SpinButton
> m_xMonthNF
;
284 std::unique_ptr
<weld::SpinButton
> m_xDayNF
;
285 std::unique_ptr
<weld::SpinButton
> m_xHourNF
;
286 std::unique_ptr
<weld::SpinButton
> m_xMinuteNF
;
287 std::unique_ptr
<weld::SpinButton
> m_xSecondNF
;
288 std::unique_ptr
<weld::SpinButton
> m_xMSecondNF
;
291 DurationDialog_Impl(weld::Widget
* pParent
, const css::util::Duration
& rDuration
);
292 css::util::Duration
GetDuration() const;
295 class CustomPropertiesDurationField
297 css::util::Duration m_aDuration
;
298 std::unique_ptr
<weld::Entry
> m_xEntry
;
299 std::unique_ptr
<weld::Button
> m_xEditButton
;
300 std::shared_ptr
<DurationDialog_Impl
> m_xDurationDialog
;
302 DECL_LINK(ClickHdl
, weld::Button
&, void);
304 CustomPropertiesDurationField(std::unique_ptr
<weld::Entry
> xEntry
,
305 std::unique_ptr
<weld::Button
> xEditButton
);
307 void SetDuration( const css::util::Duration
& rDuration
);
308 const css::util::Duration
& GetDuration() const { return m_aDuration
; }
310 void set_visible(bool bVisible
);
312 ~CustomPropertiesDurationField();
315 class CustomPropertiesYesNoButton
318 std::unique_ptr
<weld::Widget
> m_xTopLevel
;
319 std::unique_ptr
<weld::RadioButton
> m_xYesButton
;
320 std::unique_ptr
<weld::RadioButton
> m_xNoButton
;
323 CustomPropertiesYesNoButton(std::unique_ptr
<weld::Widget
>,
324 std::unique_ptr
<weld::RadioButton
> xYesButton
,
325 std::unique_ptr
<weld::RadioButton
> xNoButton
);
326 ~CustomPropertiesYesNoButton();
328 void CheckYes() { m_xYesButton
->set_active(true); }
329 void CheckNo() { m_xNoButton
->set_active(true); }
330 bool IsYesChecked() const { return m_xYesButton
->get_active(); }
331 void set_visible(bool bVisible
) { m_xTopLevel
->set_visible(bVisible
); }
334 class CustomPropertiesWindow
;
336 // struct CustomPropertyLine ---------------------------------------------
337 struct CustomPropertyLine
339 CustomPropertiesWindow
* m_pParent
;
341 std::unique_ptr
<weld::Builder
> m_xBuilder
;
342 std::unique_ptr
<weld::Container
> m_xLine
;
343 std::unique_ptr
<weld::ComboBox
> m_xNameBox
;
344 std::unique_ptr
<weld::ComboBox
> m_xTypeBox
;
345 std::unique_ptr
<weld::Entry
> m_xValueEdit
;
346 std::unique_ptr
<weld::Widget
> m_xDateTimeBox
;
347 std::unique_ptr
<CustomPropertiesDateField
> m_xDateField
;
348 std::unique_ptr
<CustomPropertiesTimeField
> m_xTimeField
;
349 std::unique_ptr
<weld::Widget
> m_xDurationBox
;
350 std::unique_ptr
<CustomPropertiesDurationField
> m_xDurationField
;
351 std::unique_ptr
<CustomPropertiesYesNoButton
> m_xYesNoButton
;
352 std::unique_ptr
<weld::Button
> m_xRemoveButton
;
354 bool m_bTypeLostFocus
;
356 CustomPropertyLine(CustomPropertiesWindow
* pParent
, weld::Widget
* pContainer
);
357 DECL_LINK(TypeHdl
, weld::ComboBox
&, void);
358 DECL_LINK(RemoveHdl
, weld::Button
&, void);
359 DECL_LINK(EditLoseFocusHdl
, weld::Widget
&, void);
360 DECL_LINK(BoxLoseFocusHdl
, weld::Widget
&, void);
362 void DoTypeHdl(const weld::ComboBox
& rBox
);
368 // class CustomPropertiesWindow ------------------------------------------
370 class CustomPropertiesWindow
374 sal_Int32 m_nLineHeight
;
375 sal_Int32 m_nScrollPos
;
376 std::vector
<std::unique_ptr
<CustomProperty
>> m_aCustomProperties
;
377 std::vector
<std::unique_ptr
<CustomPropertyLine
>> m_aCustomPropertiesLines
;
378 CustomPropertyLine
* m_pCurrentLine
;
379 SvNumberFormatter m_aNumberFormatter
;
380 Idle m_aEditLoseFocusIdle
;
381 Idle m_aBoxLoseFocusIdle
;
382 Link
<void*,void> m_aRemovedHdl
;
384 weld::Container
& m_rBody
;
385 weld::Label
& m_rHeaderAccName
;
386 weld::Label
& m_rHeaderAccType
;
387 weld::Label
& m_rHeaderAccValue
;
389 DECL_LINK(EditTimeoutHdl
, Timer
*, void);
390 DECL_LINK(BoxTimeoutHdl
, Timer
*, void);
392 bool IsLineValid( CustomPropertyLine
* pLine
) const;
393 void ValidateLine( CustomPropertyLine
* pLine
, bool bIsFromTypeBox
);
394 void CreateNewLine();
395 void StoreCustomProperties();
396 sal_uInt32
GetCurrentDataModelPosition() const { return -1 * m_nScrollPos
/ m_nLineHeight
; }
399 CustomPropertiesWindow(weld::Container
& rParent
, weld::Label
& rHeaderAccName
,
400 weld::Label
& rHeaderAccType
, weld::Label
& rHeaderAccValue
);
401 ~CustomPropertiesWindow();
403 sal_uInt16
GetExistingLineCount() const { return m_aCustomPropertiesLines
.size(); }
404 sal_uInt16
GetTotalLineCount() const { return m_aCustomProperties
.size(); }
405 void SetVisibleLineCount(sal_uInt32 nCount
);
406 sal_Int32
GetHeight() const { return m_nHeight
; }
407 void SetHeight(int nHeight
) { m_nHeight
= nHeight
; }
408 sal_Int32
GetLineHeight() const { return m_nLineHeight
; }
409 void SetLineHeight(sal_Int32 nLineHeight
) { m_nLineHeight
= nLineHeight
; }
410 void AddLine( const OUString
& sName
, css::uno::Any
const & rAny
);
411 bool AreAllLinesValid() const;
412 void ClearAllLines();
413 void DoScroll( sal_Int32 nNewPos
);
414 void ReloadLinesContent();
416 css::uno::Sequence
< css::beans::PropertyValue
>
417 GetCustomProperties();
418 void SetCustomProperties(std::vector
< std::unique_ptr
<CustomProperty
> >&& rProperties
);
419 void SetRemovedHdl( const Link
<void*,void>& rLink
) { m_aRemovedHdl
= rLink
; }
421 void BoxLoseFocus(CustomPropertyLine
* pLine
);
422 void EditLoseFocus(CustomPropertyLine
* pLine
);
423 void Remove(const CustomPropertyLine
* pLine
);
426 // class CustomPropertiesControl -----------------------------------------
428 class CustomPropertiesControl
431 sal_Int32 m_nThumbPos
;
433 std::unique_ptr
<weld::Widget
> m_xBox
;
434 std::unique_ptr
<weld::Container
> m_xBody
;
435 std::unique_ptr
<weld::ScrolledWindow
> m_xVertScroll
;
436 std::unique_ptr
<CustomPropertiesWindow
> m_xPropertiesWin
;
437 std::unique_ptr
<weld::Label
> m_xName
;
438 std::unique_ptr
<weld::Label
> m_xType
;
439 std::unique_ptr
<weld::Label
> m_xValue
;
441 DECL_LINK( ResizeHdl
, const Size
&, void );
442 DECL_LINK( ScrollHdl
, weld::ScrolledWindow
&, void );
443 DECL_LINK( RemovedHdl
, void*, void );
446 CustomPropertiesControl();
447 ~CustomPropertiesControl();
449 void AddLine(css::uno::Any
const & rAny
);
451 bool AreAllLinesValid() const { return m_xPropertiesWin
->AreAllLinesValid(); }
452 void ClearAllLines() { m_xPropertiesWin
->ClearAllLines(); }
454 css::uno::Sequence
<css::beans::PropertyValue
>
455 GetCustomProperties() const
456 { return m_xPropertiesWin
->GetCustomProperties(); }
457 void SetCustomProperties(std::vector
< std::unique_ptr
<CustomProperty
> >&& rProperties
);
459 void Init(weld::Builder
& rParent
);
462 // class SfxCustomPropertiesPage -----------------------------------------
464 class SfxCustomPropertiesPage final
: public SfxTabPage
467 DECL_LINK(AddHdl
, weld::Button
&, void);
469 std::unique_ptr
<CustomPropertiesControl
> m_xPropertiesCtrl
;
470 std::unique_ptr
<weld::Button
> m_xAdd
;
472 virtual bool FillItemSet( SfxItemSet
* ) override
;
473 virtual void Reset( const SfxItemSet
* ) override
;
474 virtual DeactivateRC
DeactivatePage( SfxItemSet
* pSet
) override
;
477 SfxCustomPropertiesPage(weld::Container
* pPage
, weld::DialogController
* pController
, const SfxItemSet
&);
478 static std::unique_ptr
<SfxTabPage
> Create( weld::Container
* pPage
, weld::DialogController
* pController
, const SfxItemSet
* );
479 virtual ~SfxCustomPropertiesPage() override
;
484 std::unique_ptr
<weld::Builder
> m_xBuilder
;
485 std::unique_ptr
<weld::Frame
> m_xFrame
;
486 std::unique_ptr
<weld::Entry
> m_xValueEdit
;
488 CmisValue(weld::Widget
* pParent
, const OUString
& rStr
);
493 std::unique_ptr
<weld::Builder
> m_xBuilder
;
494 std::unique_ptr
<weld::Frame
> m_xFrame
;
495 std::unique_ptr
<SvtCalendarBox
> m_xDateField
;
496 std::unique_ptr
<weld::FormattedSpinButton
> m_xTimeField
;
497 std::unique_ptr
<weld::TimeFormatter
> m_xFormatter
;
499 CmisDateTime(weld::Widget
* pParent
, const css::util::DateTime
& rDateTime
);
504 std::unique_ptr
<weld::Builder
> m_xBuilder
;
505 std::unique_ptr
<weld::Frame
> m_xFrame
;
506 std::unique_ptr
<weld::RadioButton
> m_xYesButton
;
507 std::unique_ptr
<weld::RadioButton
> m_xNoButton
;
509 CmisYesNo(weld::Widget
* pParent
, bool bValue
);
512 // struct CmisPropertyLine ---------------------------------------------
514 struct CmisPropertyLine
516 std::unique_ptr
<weld::Builder
> m_xBuilder
;
523 std::unique_ptr
<weld::Frame
> m_xFrame
;
524 std::unique_ptr
<weld::Label
> m_xName
;
525 std::unique_ptr
<weld::Label
> m_xType
;
526 std::vector
< std::unique_ptr
<CmisValue
> > m_aValues
;
527 std::vector
< std::unique_ptr
<CmisDateTime
> > m_aDateTimes
;
528 std::vector
< std::unique_ptr
<CmisYesNo
> > m_aYesNos
;
529 CmisPropertyLine(weld::Widget
* pParent
);
533 // class CmisPropertiesWindow ------------------------------------------
535 class CmisPropertiesWindow
538 std::unique_ptr
<weld::Container
> m_xBox
;
539 SvNumberFormatter m_aNumberFormatter
;
540 std::vector
< std::unique_ptr
<CmisPropertyLine
> > m_aCmisPropertiesLines
;
542 CmisPropertiesWindow(std::unique_ptr
<weld::Container
> xParent
);
543 ~CmisPropertiesWindow();
545 void AddLine( const OUString
& sId
, const OUString
& sName
,
546 const OUString
& sType
, const bool bUpdatable
,
547 const bool bRequired
, const bool bMultiValued
,
548 const bool bOpenChoice
,
549 css::uno::Any
& aChoices
,
550 css::uno::Any
const & rAny
);
551 void ClearAllLines();
553 css::uno::Sequence
< css::document::CmisProperty
>
554 GetCmisProperties() const;
557 // class CmisPropertiesControl -----------------------------------------
559 class CmisPropertiesControl
562 CmisPropertiesWindow m_aPropertiesWin
;
563 std::unique_ptr
<weld::ScrolledWindow
> m_xScrolledWindow
;
566 CmisPropertiesControl(weld::Builder
& rBuilder
);
568 void AddLine( const OUString
& sId
, const OUString
& sName
,
569 const OUString
& sType
, const bool bUpdatable
,
570 const bool bRequired
, const bool bMultiValude
,
571 const bool bOpenChoice
,
572 css::uno::Any
& aChoices
,
573 css::uno::Any
const & rAny
);
575 void ClearAllLines();
576 css::uno::Sequence
< css::document::CmisProperty
>
577 GetCmisProperties() const
578 { return m_aPropertiesWin
.GetCmisProperties(); }
581 // class SfxCmisPropertiesPage -------------------------------------------------
583 class SfxCmisPropertiesPage final
: public SfxTabPage
586 std::unique_ptr
<CmisPropertiesControl
> m_xPropertiesCtrl
;
588 virtual bool FillItemSet( SfxItemSet
* ) override
;
589 virtual void Reset( const SfxItemSet
* ) override
;
590 virtual DeactivateRC
DeactivatePage( SfxItemSet
* pSet
) override
;
593 SfxCmisPropertiesPage(weld::Container
* pPage
, weld::DialogController
* pController
, const SfxItemSet
&);
594 virtual ~SfxCmisPropertiesPage() override
;
595 static std::unique_ptr
<SfxTabPage
> Create(weld::Container
* pPage
, weld::DialogController
* pController
, const SfxItemSet
*);
598 #endif // #ifndef _ INCLUDED_SFX2_DINFDLG_HXX
600 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */