/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * */ #ifndef INCLUDED_SVX_CLASSIFICATIONDIALOG_HXX #define INCLUDED_SVX_CLASSIFICATIONDIALOG_HXX #include #include #include #include #include #include #include #include #include #include #include #include namespace svx { class IntellectualPropertyPartEdit : public Edit { public: IntellectualPropertyPartEdit(vcl::Window* pParent); protected: virtual void KeyInput(const KeyEvent &rKEvt) override; }; class SVX_DLLPUBLIC ClassificationDialog : public ModalDialog { private: VclPtr m_pOkButton; VclPtr m_pEditWindow; VclPtr m_pSignButton; VclPtr m_pToolBox; VclPtr m_pClassificationListBox; VclPtr m_pRecentlyUsedListBox; VclPtr m_pInternationalClassificationListBox; VclPtr m_pMarkingLabel; VclPtr m_pMarkingListBox; VclPtr m_pIntellectualPropertyPartListBox; VclPtr m_pIntellectualPropertyPartNumberListBox; VclPtr m_pIntellectualPropertyPartAddButton; VclPtr m_pIntellectualPropertyPartEdit; VclPtr m_pIntellectualPropertyExpander; SfxClassificationHelper maHelper; SfxClassificationHelper maInternationalHelper; const bool m_bPerParagraph; const std::function m_aParagraphSignHandler; sal_Int32 m_nCurrentSelectedCategory; sal_Int16 m_nInsertMarkings; DECL_LINK(ButtonClicked, Button*, void); DECL_LINK(SelectToolboxHdl, ToolBox*, void); DECL_LINK(SelectClassificationHdl, ListBox&, void); DECL_LINK(SelectMarkingHdl, ListBox&, void); DECL_LINK(SelectIPPartNumbersHdl, ListBox&, void); DECL_LINK(SelectRecentlyUsedHdl, ListBox&, void); DECL_LINK(SelectIPPartHdl, ListBox&, void); DECL_LINK(EditWindowModifiedHdl, LinkParamNone*, void); DECL_LINK(ExpandedHdl, VclExpander&, void); void insertField(ClassificationType eType, OUString const & rString, OUString const & rFullString, OUString const & rIdentifier = OUString()); void insertCategoryField(sal_Int32 nID); std::vector> m_aRecentlyUsedValuesCollection; std::vector m_aInitialValues; void readIn(std::vector const & rInput); void readRecentlyUsed(); void writeRecentlyUsed(); void toggleWidgetsDependingOnCategory(); public: ClassificationDialog(vcl::Window* pParent, bool bPerParagraph, const std::function& rParagraphSignHandler = [](){}); ~ClassificationDialog() override; void dispose() override; short Execute() override; std::vector getResult(); void setupValues(std::vector const & rInput); }; } // end svx namespace #endif // INCLUDED_SVX_CLASSIFICATIONDIALOG_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */