/* -*- 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_SW_SOURCE_UIBASE_INC_FRMPAGE_HXX #define INCLUDED_SW_SOURCE_UIBASE_INC_FRMPAGE_HXX #include #include #include #include #include #include #include #include #include #include #include namespace sfx2{class FileDialogHelper;} class SwWrtShell; struct FrmMap; // OD 12.11.2003 #i22341# struct SwPosition; // frame dialog class SwFrmPage: public SfxTabPage { // size VclPtr m_pWidthFT; VclPtr m_pWidthAutoFT; PercentField m_aWidthED; VclPtr m_pRelWidthCB; VclPtr m_pRelWidthRelationLB; VclPtr m_pAutoWidthCB; VclPtr m_pHeightFT; VclPtr m_pHeightAutoFT; PercentField m_aHeightED; VclPtr m_pRelHeightCB; VclPtr m_pRelHeightRelationLB; VclPtr m_pAutoHeightCB; VclPtr m_pFixedRatioCB; VclPtr m_pRealSizeBT; // anchor VclPtr m_pAnchorFrame; VclPtr m_pAnchorAtPageRB; VclPtr m_pAnchorAtParaRB; VclPtr m_pAnchorAtCharRB; VclPtr m_pAnchorAsCharRB; VclPtr m_pAnchorAtFrameRB; // position VclPtr m_pHorizontalFT; VclPtr m_pHorizontalDLB; VclPtr m_pAtHorzPosFT; VclPtr m_pAtHorzPosED; VclPtr m_pHoriRelationFT; VclPtr m_pHoriRelationLB; VclPtr m_pMirrorPagesCB; VclPtr m_pVerticalFT; VclPtr m_pVerticalDLB; VclPtr m_pAtVertPosFT; VclPtr m_pAtVertPosED; VclPtr m_pVertRelationFT; VclPtr m_pVertRelationLB; // #i18732# - check box for new option 'FollowTextFlow' VclPtr m_pFollowTextFlowCB; // example VclPtr m_pExampleWN; //'string provider' SvxSwFramePosString aFramePosString; bool bAtHorzPosModified; bool bAtVertPosModified; bool bFormat; bool bNew; bool bNoModifyHdl; bool bIsVerticalFrame; //current frame is in vertical environment - strings are exchanged // --> OD 2009-08-31 #mongolianlayou# bool bIsVerticalL2R; bool bIsInRightToLeft; // current frame is in right-to-left environment - strings are exchanged bool bHtmlMode; sal_uInt16 nHtmlMode; OUString sDlgType; Size aGrfSize; SwTwips nUpperBorder; SwTwips nLowerBorder; double fWidthHeightRatio; //width-to-height ratio to support the KeepRatio button // OD 12.11.2003 #i22341# - keep content position of character for // to character anchored objects. const SwPosition* mpToCharContentPos; // old alignment sal_Int16 nOldH; sal_Int16 nOldHRel; sal_Int16 nOldV; sal_Int16 nOldVRel; FrmMap* pVMap; FrmMap* pHMap; bool m_bAllowVertPositioning; bool m_bIsMathOLE; bool m_bIsMathBaselineAlignment; virtual void ActivatePage(const SfxItemSet& rSet) SAL_OVERRIDE; virtual sfxpg DeactivatePage(SfxItemSet *pSet) SAL_OVERRIDE; DECL_LINK(RangeModifyHdl, void *); DECL_LINK(AnchorTypeHdl, void *); DECL_LINK( PosHdl, ListBox * ); DECL_LINK( RelHdl, ListBox * ); void InitPos(RndStdIds eId, sal_Int16 nH, sal_Int16 nHRel, sal_Int16 nV, sal_Int16 nVRel, long nX, long nY); DECL_LINK(RealSizeHdl, void *); DECL_LINK( RelSizeClickHdl, CheckBox * ); DECL_LINK(MirrorHdl, void *); DECL_LINK( AutoWidthClickHdl, void* ); DECL_LINK( AutoHeightClickHdl, void* ); // update example void UpdateExample(); DECL_LINK( ModifyHdl, Edit * ); void Init(const SfxItemSet& rSet, bool bReset = false); // OD 12.11.2003 #i22341# - adjustment to handle maps, that are ambigous // in the alignment. sal_Int32 FillPosLB( const FrmMap* _pMap, const sal_Int16 _nAlign, const sal_Int16 _nRel, ListBox& _rLB ); // OD 14.11.2003 #i22341# - adjustment to handle maps, that are ambigous // in their string entries. sal_uLong FillRelLB( const FrmMap* _pMap, const sal_uInt16 _nLBSelPos, const sal_Int16 _nAlign, const sal_Int16 _nRel, ListBox& _rLB, FixedText& _rFT ); sal_Int32 GetMapPos( const FrmMap *pMap, ListBox &rAlignLB ); static sal_Int16 GetAlignment(FrmMap *pMap, sal_Int32 nMapPos, ListBox &rAlignLB, ListBox &rRelationLB); static sal_Int16 GetRelation(FrmMap *pMap, ListBox &rRelationLB); RndStdIds GetAnchor(); void setOptimalFrmWidth(); void setOptimalRelWidth(); void EnableGraficMode(); // hides auto check boxes and re-org controls for "Real Size" button SwWrtShell *getFrmDlgParentShell(); using SfxTabPage::ActivatePage; using SfxTabPage::DeactivatePage; static const sal_uInt16 aPageRg[]; public: SwFrmPage(vcl::Window *pParent, const SfxItemSet &rSet); virtual ~SwFrmPage(); virtual void dispose() SAL_OVERRIDE; static VclPtr Create(vcl::Window *pParent, const SfxItemSet *rSet); static const sal_uInt16* GetRanges() { return aPageRg; } virtual bool FillItemSet(SfxItemSet *rSet) SAL_OVERRIDE; virtual void Reset(const SfxItemSet *rSet) SAL_OVERRIDE; void SetNewFrame(bool bNewFrame) { bNew = bNewFrame; } void SetFormatUsed(bool bFormat); void SetFrmType(const OUString &rType) { sDlgType = rType; } inline bool IsInGraficMode() { return sDlgType == "PictureDialog" || sDlgType == "ObjectDialog"; } void EnableVerticalPositioning( bool bEnable ); }; class SwGrfExtPage: public SfxTabPage { // mirror VclPtr m_pMirror; VclPtr m_pMirrorVertBox; VclPtr m_pMirrorHorzBox; VclPtr m_pAllPagesRB; VclPtr m_pLeftPagesRB; VclPtr m_pRightPagesRB; VclPtr m_pBmpWin; VclPtr m_pConnectED; VclPtr m_pBrowseBT; OUString aFilterName; OUString aGrfName, aNewGrfName; ::sfx2::FileDialogHelper* pGrfDlg; bool bHtmlMode; // handler for mirroring DECL_LINK(MirrorHdl, void *); DECL_LINK(BrowseHdl, void *); virtual void ActivatePage(const SfxItemSet& rSet) SAL_OVERRIDE; virtual ~SwGrfExtPage(); virtual void dispose() SAL_OVERRIDE; using SfxTabPage::ActivatePage; using SfxTabPage::DeactivatePage; public: SwGrfExtPage(vcl::Window *pParent, const SfxItemSet &rSet); static VclPtr Create(vcl::Window *pParent, const SfxItemSet *rSet); virtual bool FillItemSet(SfxItemSet *rSet) SAL_OVERRIDE; virtual void Reset(const SfxItemSet *rSet) SAL_OVERRIDE; virtual sfxpg DeactivatePage(SfxItemSet *pSet) SAL_OVERRIDE; }; class SwFrmURLPage : public SfxTabPage { // hyperlink VclPtr pURLED; VclPtr pSearchPB; VclPtr pNameED; VclPtr pFrameCB; // image map VclPtr pServerCB; VclPtr pClientCB; DECL_LINK(InsertFileHdl, void *); using SfxTabPage::ActivatePage; using SfxTabPage::DeactivatePage; public: SwFrmURLPage(vcl::Window *pParent, const SfxItemSet &rSet); virtual ~SwFrmURLPage(); virtual void dispose() SAL_OVERRIDE; static VclPtr Create(vcl::Window *pParent, const SfxItemSet *rSet); virtual bool FillItemSet(SfxItemSet *rSet) SAL_OVERRIDE; virtual void Reset(const SfxItemSet *rSet) SAL_OVERRIDE; }; class SwFrmAddPage : public SfxTabPage { VclPtr pNameFrame; VclPtr pNameFT; VclPtr pNameED; VclPtr pAltNameFT; VclPtr pAltNameED; VclPtr pPrevFT; VclPtr pPrevLB; VclPtr pNextFT; VclPtr pNextLB; VclPtr pProtectFrame; VclPtr pProtectContentCB; VclPtr pProtectFrameCB; VclPtr pProtectSizeCB; VclPtr m_pContentAlignFrame; VclPtr m_pVertAlignLB; VclPtr pPropertiesFrame; VclPtr pEditInReadonlyCB; VclPtr pPrintFrameCB; VclPtr pTextFlowFT; VclPtr pTextFlowLB; SwWrtShell* pWrtSh; OUString sDlgType; bool bHtmlMode; bool bFormat; bool bNew; DECL_LINK(EditModifyHdl, void *); DECL_LINK(ChainModifyHdl, ListBox*); static const sal_uInt16 aAddPgRg[]; public: SwFrmAddPage(vcl::Window *pParent, const SfxItemSet &rSet); virtual ~SwFrmAddPage(); virtual void dispose() SAL_OVERRIDE; static VclPtr Create(vcl::Window *pParent, const SfxItemSet *rSet); static const sal_uInt16* GetRanges() { return aAddPgRg; } virtual bool FillItemSet(SfxItemSet *rSet) SAL_OVERRIDE; virtual void Reset(const SfxItemSet *rSet) SAL_OVERRIDE; void SetFormatUsed(bool bFormat); void SetFrmType(const OUString &rType) { sDlgType = rType; } void SetNewFrame(bool bNewFrame) { bNew = bNewFrame; } void SetShell(SwWrtShell* pSh) { pWrtSh = pSh; } }; #endif // INCLUDED_SW_SOURCE_UIBASE_INC_FRMPAGE_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */