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 #pragma once 20 21 #include <svtools/valueset.hxx> 22 #include <sfx2/tabdlg.hxx> 23 #include <svx/sxctitm.hxx> 24 #include <svx/sxcecitm.hxx> 25 #include <svx/anchorid.hxx> 26 #include <vcl/image.hxx> 27 28 class SdrView; 29 30 // class SvxCaptionTabPage ----------------------------------------------- 31 32 const sal_uInt16 CAPTYPE_BITMAPS_COUNT = 3; 33 34 class SvxCaptionTabPage : public SfxTabPage 35 { 36 private: 37 static const WhichRangesContainer pCaptionRanges; 38 39 Image m_aBmpCapTypes[CAPTYPE_BITMAPS_COUNT]; 40 41 std::vector<OUString> m_aStrHorzList; 42 std::vector<OUString> m_aStrVertList; 43 44 SdrCaptionType nCaptionType; 45 sal_Int32 nGap; 46 SdrCaptionEscDir nEscDir; 47 bool bEscRel; 48 sal_Int32 nEscAbs; 49 sal_Int32 nEscRel; 50 sal_Int32 nLineLen; 51 bool bFitLineLen; 52 53 sal_uInt16 nPosition; 54 sal_uInt16 nExtension; 55 56 const SfxItemSet& rOutAttrs; 57 const SdrView* pView; 58 59 std::unique_ptr<weld::MetricSpinButton> m_xMF_SPACING; 60 std::unique_ptr<weld::ComboBox> m_xLB_EXTENSION; 61 std::unique_ptr<weld::Label> m_xFT_BYFT; 62 std::unique_ptr<weld::MetricSpinButton> m_xMF_BY; 63 std::unique_ptr<weld::Label> m_xFT_POSITIONFT; 64 std::unique_ptr<weld::ComboBox> m_xLB_POSITION; 65 std::unique_ptr<weld::ComboBox> m_xLineTypes; 66 std::unique_ptr<weld::Label> m_xFT_LENGTHFT; 67 std::unique_ptr<weld::MetricSpinButton> m_xMF_LENGTH; 68 std::unique_ptr<weld::CheckButton> m_xCB_OPTIMAL; 69 std::unique_ptr<ValueSet> m_xCT_CAPTTYPE; 70 std::unique_ptr<weld::CustomWeld> m_xCT_CAPTTYPEWin; 71 72 void SetupExtension_Impl( sal_uInt16 nType ); 73 void SetupType_Impl( SdrCaptionType nType ); 74 DECL_LINK(ExtensionSelectHdl_Impl, weld::ComboBox&, void); 75 DECL_LINK(PositionSelectHdl_Impl, weld::ComboBox&, void); 76 DECL_LINK(LineOptHdl_Impl, weld::Toggleable&, void); 77 DECL_LINK(SelectCaptTypeHdl_Impl, ValueSet*, void); 78 79 public: 80 SvxCaptionTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs); 81 virtual ~SvxCaptionTabPage() override; 82 83 static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); GetRanges()84 static WhichRangesContainer GetRanges() { return pCaptionRanges; } 85 86 virtual bool FillItemSet( SfxItemSet* ) override; 87 virtual void Reset( const SfxItemSet * ) override; 88 void Construct(); SetView(const SdrView * pSdrView)89 void SetView( const SdrView* pSdrView ) 90 { pView = pSdrView; } 91 92 void FillValueSet(); 93 }; 94 95 // class SvxCaptionTabDialog --------------------------------------------- 96 struct SvxSwFrameValidation; 97 class SvxCaptionTabDialog : public SfxTabDialogController 98 { 99 private: 100 const SdrView* pView; 101 SvxAnchorIds nAnchorCtrls; 102 103 Link<SvxSwFrameValidation&,void> aValidateLink; 104 105 virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override; 106 107 public: 108 SvxCaptionTabDialog(weld::Window* pParent, const SdrView* pView, 109 SvxAnchorIds nAnchorTypes); 110 111 /// link for the Writer to validate positions 112 void SetValidateFramePosLink( const Link<SvxSwFrameValidation&,void>& rLink ); 113 }; 114 115 116 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 117
