Line data Source code
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 :
10 : #ifndef INCLUDED_CUI_SOURCE_OPTIONS_OPTABOUTCONFIG_HXX
11 : #define INCLUDED_CUI_SOURCE_OPTIONS_OPTABOUTCONFIG_HXX
12 :
13 : #include <com/sun/star/container/XNameAccess.hpp>
14 : #include <com/sun/star/beans/NamedValue.hpp>
15 : #include <com/sun/star/util/SearchOptions.hpp>
16 :
17 : #include <sfx2/tabdlg.hxx>
18 : #include <svtools/simptabl.hxx>
19 : #include <vcl/edit.hxx>
20 :
21 : #include <vector>
22 : #include <boost/scoped_ptr.hpp>
23 : #include <boost/shared_ptr.hpp>
24 :
25 : namespace svx { class OptHeaderTabListBox; }
26 : class CuiAboutConfigTabPage;
27 : class CuiAboutConfigValueDialog;
28 : struct Prop_Impl;
29 :
30 0 : class CuiCustomMultilineEdit : public Edit
31 : {
32 : public:
33 : bool bNumericOnly;
34 0 : CuiCustomMultilineEdit( vcl::Window* pParent, WinBits nStyle )
35 : : Edit( pParent, nStyle )
36 0 : , bNumericOnly(false)
37 0 : {}
38 :
39 : virtual void KeyInput( const KeyEvent& rKeyEvent ) SAL_OVERRIDE;
40 : virtual Size GetOptimalSize() const SAL_OVERRIDE;
41 : };
42 :
43 : class CuiAboutConfigTabPage : public ModelessDialog
44 : {
45 : private:
46 : VclPtr<SvSimpleTableContainer> m_pPrefCtrl;
47 : VclPtr<PushButton> m_pResetBtn;
48 : VclPtr<PushButton> m_pEditBtn;
49 : VclPtr<PushButton> m_pSearchBtn;
50 : VclPtr<Edit> m_pSearchEdit;
51 :
52 : std::vector< boost::shared_ptr< Prop_Impl > > m_vectorOfModified;
53 : VclPtr< SvSimpleTable > m_pPrefBox;
54 :
55 : //for search
56 : ::com::sun::star::util::SearchOptions m_options;
57 : SvTreeListEntries m_prefBoxEntries;
58 :
59 : void AddToModifiedVector( const boost::shared_ptr< Prop_Impl >& rProp );
60 : static std::vector< OUString > commaStringToSequence( const OUString& rCommaSepString );
61 :
62 : DECL_LINK( StandardHdl_Impl, void * );
63 : DECL_LINK( ResetBtnHdl_Impl, void * );
64 : DECL_LINK( SearchHdl_Impl, void* );
65 :
66 : public:
67 : CuiAboutConfigTabPage(vcl::Window* pParent);
68 : virtual ~CuiAboutConfigTabPage();
69 : virtual void dispose() SAL_OVERRIDE;
70 : void InsertEntry(const OUString& rProp, const OUString& rStatus, const OUString& rType, const OUString& rValue);
71 : void Reset();
72 : void FillItems(const com::sun::star::uno::Reference<com::sun::star::container::XNameAccess>& xNameAccess);
73 : static com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > getConfigAccess( const OUString& sNodePath, bool bUpdate );
74 : bool FillItemSet();
75 : };
76 :
77 : class CuiAboutConfigValueDialog : public ModalDialog
78 : {
79 : private:
80 : VclPtr<CuiCustomMultilineEdit> m_pEDValue;
81 :
82 : public:
83 : CuiAboutConfigValueDialog( vcl::Window* pWindow, const OUString& rValue , int limit = 0);
84 : virtual ~CuiAboutConfigValueDialog();
85 : virtual void dispose() SAL_OVERRIDE;
86 :
87 0 : OUString getValue()
88 : {
89 0 : return m_pEDValue->GetText();
90 : }
91 : };
92 :
93 : #endif
94 :
95 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|