1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29*cdf0e10cSrcweir #include "precompiled_sd.hxx" 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir #ifdef SD_DLLIMPLEMENTATION 32*cdf0e10cSrcweir #undef SD_DLLIMPLEMENTATION 33*cdf0e10cSrcweir #endif 34*cdf0e10cSrcweir 35*cdf0e10cSrcweir #include "morphdlg.hxx" 36*cdf0e10cSrcweir 37*cdf0e10cSrcweir #include "strings.hrc" 38*cdf0e10cSrcweir #include "sdresid.hxx" 39*cdf0e10cSrcweir #include "sdmod.hxx" 40*cdf0e10cSrcweir #include "sdiocmpt.hxx" 41*cdf0e10cSrcweir #include "morphdlg.hrc" 42*cdf0e10cSrcweir #include <tools/config.hxx> 43*cdf0e10cSrcweir #include <svx/xfillit0.hxx> 44*cdf0e10cSrcweir #include <svx/xlineit0.hxx> 45*cdf0e10cSrcweir #include <svx/xenum.hxx> 46*cdf0e10cSrcweir #include <svx/svdobj.hxx> 47*cdf0e10cSrcweir #include <svl/itemset.hxx> 48*cdf0e10cSrcweir #include <svl/itempool.hxx> 49*cdf0e10cSrcweir 50*cdf0e10cSrcweir namespace sd { 51*cdf0e10cSrcweir 52*cdf0e10cSrcweir 53*cdf0e10cSrcweir /******************************************************************************/ 54*cdf0e10cSrcweir 55*cdf0e10cSrcweir 56*cdf0e10cSrcweir #define FADE_STEP "FadeSteps" 57*cdf0e10cSrcweir #define FADE_ATTRIB "FadeAttributes" 58*cdf0e10cSrcweir #define FADE_ORIENT "FadeOrientation" 59*cdf0e10cSrcweir #define FADE_TRUE "true" 60*cdf0e10cSrcweir #define FADE_FALSE "false" 61*cdf0e10cSrcweir 62*cdf0e10cSrcweir 63*cdf0e10cSrcweir /******************************************************************************/ 64*cdf0e10cSrcweir 65*cdf0e10cSrcweir 66*cdf0e10cSrcweir /****************************************************************************** 67*cdf0e10cSrcweir |* 68*cdf0e10cSrcweir |* 69*cdf0e10cSrcweir |* 70*cdf0e10cSrcweir \******************************************************************************/ 71*cdf0e10cSrcweir 72*cdf0e10cSrcweir MorphDlg::MorphDlg( ::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2 ) : 73*cdf0e10cSrcweir ModalDialog ( pParent, SdResId( DLG_MORPH ) ), 74*cdf0e10cSrcweir aGrpPreset ( this, SdResId( GRP_PRESET ) ), 75*cdf0e10cSrcweir aFtSteps ( this, SdResId( FT_STEPS ) ), 76*cdf0e10cSrcweir aMtfSteps ( this, SdResId( MTF_STEPS ) ), 77*cdf0e10cSrcweir aCbxAttributes ( this, SdResId( CBX_ATTRIBUTES ) ), 78*cdf0e10cSrcweir aCbxOrientation ( this, SdResId( CBX_ORIENTATION ) ), 79*cdf0e10cSrcweir aBtnOK ( this, SdResId( BTN_OK ) ), 80*cdf0e10cSrcweir aBtnCancel ( this, SdResId( BTN_CANCEL ) ), 81*cdf0e10cSrcweir aBtnHelp ( this, SdResId( BTN_HELP ) ) 82*cdf0e10cSrcweir { 83*cdf0e10cSrcweir FreeResource(); 84*cdf0e10cSrcweir LoadSettings(); 85*cdf0e10cSrcweir 86*cdf0e10cSrcweir SfxItemPool* pPool = (SfxItemPool*) pObj1->GetObjectItemPool(); 87*cdf0e10cSrcweir SfxItemSet aSet1( *pPool ); 88*cdf0e10cSrcweir SfxItemSet aSet2( *pPool ); 89*cdf0e10cSrcweir 90*cdf0e10cSrcweir aSet1.Put(pObj1->GetMergedItemSet()); 91*cdf0e10cSrcweir aSet2.Put(pObj2->GetMergedItemSet()); 92*cdf0e10cSrcweir 93*cdf0e10cSrcweir const XLineStyle eLineStyle1 = ( (const XLineStyleItem&) aSet1.Get( XATTR_LINESTYLE ) ).GetValue(); 94*cdf0e10cSrcweir const XLineStyle eLineStyle2 = ( (const XLineStyleItem&) aSet2.Get( XATTR_LINESTYLE ) ).GetValue(); 95*cdf0e10cSrcweir const XFillStyle eFillStyle1 = ( (const XFillStyleItem&) aSet1.Get( XATTR_FILLSTYLE ) ).GetValue(); 96*cdf0e10cSrcweir const XFillStyle eFillStyle2 = ( (const XFillStyleItem&) aSet2.Get( XATTR_FILLSTYLE ) ).GetValue(); 97*cdf0e10cSrcweir 98*cdf0e10cSrcweir if ( ( ( eLineStyle1 == XLINE_NONE ) || ( eLineStyle2 == XLINE_NONE ) ) && 99*cdf0e10cSrcweir ( ( eFillStyle1 != XFILL_SOLID ) || ( eFillStyle2 != XFILL_SOLID ) ) ) 100*cdf0e10cSrcweir { 101*cdf0e10cSrcweir aCbxAttributes.Disable(); 102*cdf0e10cSrcweir } 103*cdf0e10cSrcweir } 104*cdf0e10cSrcweir 105*cdf0e10cSrcweir 106*cdf0e10cSrcweir /****************************************************************************** 107*cdf0e10cSrcweir |* 108*cdf0e10cSrcweir |* 109*cdf0e10cSrcweir |* 110*cdf0e10cSrcweir \******************************************************************************/ 111*cdf0e10cSrcweir 112*cdf0e10cSrcweir MorphDlg::~MorphDlg() 113*cdf0e10cSrcweir { 114*cdf0e10cSrcweir } 115*cdf0e10cSrcweir 116*cdf0e10cSrcweir 117*cdf0e10cSrcweir /****************************************************************************** 118*cdf0e10cSrcweir |* 119*cdf0e10cSrcweir |* 120*cdf0e10cSrcweir |* 121*cdf0e10cSrcweir \******************************************************************************/ 122*cdf0e10cSrcweir 123*cdf0e10cSrcweir void MorphDlg::LoadSettings() 124*cdf0e10cSrcweir { 125*cdf0e10cSrcweir SvStorageStreamRef xIStm( SD_MOD()->GetOptionStream( UniString::CreateFromAscii( 126*cdf0e10cSrcweir RTL_CONSTASCII_STRINGPARAM( SD_OPTION_MORPHING ) ), 127*cdf0e10cSrcweir SD_OPTION_LOAD ) ); 128*cdf0e10cSrcweir sal_uInt16 nSteps; 129*cdf0e10cSrcweir sal_Bool bOrient, bAttrib; 130*cdf0e10cSrcweir 131*cdf0e10cSrcweir if( xIStm.Is() ) 132*cdf0e10cSrcweir { 133*cdf0e10cSrcweir SdIOCompat aCompat( *xIStm, STREAM_READ ); 134*cdf0e10cSrcweir 135*cdf0e10cSrcweir *xIStm >> nSteps >> bOrient >> bAttrib; 136*cdf0e10cSrcweir } 137*cdf0e10cSrcweir else 138*cdf0e10cSrcweir { 139*cdf0e10cSrcweir nSteps = 16; 140*cdf0e10cSrcweir bOrient = bAttrib = sal_True; 141*cdf0e10cSrcweir } 142*cdf0e10cSrcweir 143*cdf0e10cSrcweir aMtfSteps.SetValue( nSteps ); 144*cdf0e10cSrcweir aCbxOrientation.Check( bOrient ); 145*cdf0e10cSrcweir aCbxAttributes.Check( bAttrib ); 146*cdf0e10cSrcweir } 147*cdf0e10cSrcweir 148*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 149*cdf0e10cSrcweir 150*cdf0e10cSrcweir void MorphDlg::SaveSettings() const 151*cdf0e10cSrcweir { 152*cdf0e10cSrcweir SvStorageStreamRef xOStm( SD_MOD()->GetOptionStream( UniString::CreateFromAscii( 153*cdf0e10cSrcweir RTL_CONSTASCII_STRINGPARAM( SD_OPTION_MORPHING ) ), 154*cdf0e10cSrcweir SD_OPTION_STORE ) ); 155*cdf0e10cSrcweir 156*cdf0e10cSrcweir if( xOStm.Is() ) 157*cdf0e10cSrcweir { 158*cdf0e10cSrcweir SdIOCompat aCompat( *xOStm, STREAM_WRITE, 1 ); 159*cdf0e10cSrcweir 160*cdf0e10cSrcweir *xOStm << (sal_uInt16) aMtfSteps.GetValue() 161*cdf0e10cSrcweir << aCbxOrientation.IsChecked() 162*cdf0e10cSrcweir << aCbxAttributes.IsChecked(); 163*cdf0e10cSrcweir } 164*cdf0e10cSrcweir } 165*cdf0e10cSrcweir 166*cdf0e10cSrcweir } // end of namespace sd 167