/* -*- 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/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #ifndef INCLUDED_CUI_SOURCE_INC_PAGE_HXX #define INCLUDED_CUI_SOURCE_INC_PAGE_HXX #include #include #include #include #include #include #include #include // class SvxPageDescPage ------------------------------------------------- /* [Description] TabPage for page settings (size, margins, ...) [Items] : : : : : : : : : : : : : : : : : : : : : : : */ typedef sal_uInt16 MarginPosition; class SvxPageDescPage : public SfxTabPage { friend class VclPtr; using TabPage::ActivatePage; using TabPage::DeactivatePage; static const sal_uInt16 pRanges[]; private: OUString sStandardRegister; long nFirstLeftMargin; long nFirstRightMargin; long nFirstTopMargin; long nFirstBottomMargin; long nLastLeftMargin; long nLastRightMargin; long nLastTopMargin; long nLastBottomMargin; bool bLandscape; bool bBorderModified; SvxModeType eMode; Paper ePaperStart; MarginPosition m_nPos; VclPtr mpDefPrinter; bool mbDelPrinter : 1; bool mbEnableDrawingLayerFillStyles : 1; SvxPageWindow m_aBspWin; // paper format std::unique_ptr m_xPaperSizeBox; std::unique_ptr m_xPaperWidthEdit; std::unique_ptr m_xPaperHeightEdit; std::unique_ptr m_xOrientationFT; std::unique_ptr m_xPortraitBtn; std::unique_ptr m_xLandscapeBtn; std::unique_ptr m_xTextFlowLbl; std::unique_ptr m_xTextFlowBox; std::unique_ptr m_xPaperTrayBox; // Margins std::unique_ptr m_xLeftMarginLbl; std::unique_ptr m_xLeftMarginEdit; std::unique_ptr m_xRightMarginLbl; std::unique_ptr m_xRightMarginEdit; std::unique_ptr m_xTopMarginEdit; std::unique_ptr m_xBottomMarginEdit; // layout settings std::unique_ptr m_xPageText; std::unique_ptr m_xLayoutBox; std::unique_ptr m_xNumberFormatBox; //Extras Calc std::unique_ptr m_xTblAlignFT; std::unique_ptr m_xHorzBox; std::unique_ptr m_xVertBox; // Impress and Draw std::unique_ptr m_xAdaptBox; //Register Writer std::unique_ptr m_xRegisterCB; std::unique_ptr m_xRegisterFT; std::unique_ptr m_xRegisterLB; std::unique_ptr m_xInsideLbl; std::unique_ptr m_xOutsideLbl; std::unique_ptr m_xPrintRangeQueryText; std::unique_ptr m_xBspWin; void Init_Impl(); DECL_LINK(LayoutHdl_Impl, weld::ComboBox&, void); DECL_LINK(PaperBinHdl_Impl, weld::Widget&, void); DECL_LINK(SwapOrientation_Impl, weld::Button&, void); void SwapFirstValues_Impl( bool bSet ); DECL_LINK(BorderModify_Impl, weld::MetricSpinButton&, void); void InitHeadFoot_Impl( const SfxItemSet& rSet ); DECL_LINK(CenterHdl_Impl, weld::ToggleButton&, void); void UpdateExample_Impl( bool bResetbackground = false ); DECL_LINK(PaperSizeSelect_Impl, weld::ComboBox&, void ); DECL_LINK(PaperSizeModify_Impl, weld::MetricSpinButton&, void); DECL_LINK(FrameDirectionModify_Impl, weld::ComboBox&, void ); void ResetBackground_Impl( const SfxItemSet& rSet ); void RangeHdl_Impl(); void CalcMargin_Impl(); DECL_LINK(RegisterModify, weld::ToggleButton&, void); // page direction /** Disables vertical page direction entries in the text flow listbox. */ void DisableVerticalPageDir(); bool IsPrinterRangeOverflow(weld::MetricSpinButton& rField, long nFirstMargin, long nLastMargin, MarginPosition nPos); void CheckMarginEdits( bool _bClear ); bool IsMarginOutOfRange(); SvxPageDescPage(TabPageParent pParent, const SfxItemSet& rSet); protected: virtual void ActivatePage( const SfxItemSet& rSet ) override; virtual DeactivateRC DeactivatePage( SfxItemSet* pSet ) override; public: static VclPtr Create( TabPageParent pParent, const SfxItemSet* rSet ); // returns the range of the Which values static const sal_uInt16* GetRanges() { return pRanges; } virtual bool FillItemSet( SfxItemSet* rOutSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; virtual void FillUserData() override; virtual ~SvxPageDescPage() override; virtual void dispose() override; void SetPaperFormatRanges( Paper eStart ) { ePaperStart = eStart; } void SetCollectionList(const std::vector &aList); virtual void PageCreated(const SfxAllItemSet& aSet) override; }; #endif // INCLUDED_CUI_SOURCE_INC_PAGE_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */