2000-09-18 16:15:01 +00:00
|
|
|
/*************************************************************************
|
|
|
|
|
*
|
|
|
|
|
* $RCSfile: modcfg.cxx,v $
|
|
|
|
|
*
|
2000-10-12 05:37:59 +00:00
|
|
|
* $Revision: 1.3 $
|
2000-09-18 16:15:01 +00:00
|
|
|
*
|
2000-10-12 05:37:59 +00:00
|
|
|
* last change: $Author: os $ $Date: 2000-10-12 06:34:45 $
|
2000-09-18 16:15:01 +00:00
|
|
|
*
|
|
|
|
|
* The Contents of this file are made available subject to the terms of
|
|
|
|
|
* either of the following licenses
|
|
|
|
|
*
|
|
|
|
|
* - GNU Lesser General Public License Version 2.1
|
|
|
|
|
* - Sun Industry Standards Source License Version 1.1
|
|
|
|
|
*
|
|
|
|
|
* Sun Microsystems Inc., October, 2000
|
|
|
|
|
*
|
|
|
|
|
* GNU Lesser General Public License Version 2.1
|
|
|
|
|
* =============================================
|
|
|
|
|
* Copyright 2000 by Sun Microsystems, Inc.
|
|
|
|
|
* 901 San Antonio Road, Palo Alto, CA 94303, USA
|
|
|
|
|
*
|
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
|
* License version 2.1, as published by the Free Software Foundation.
|
|
|
|
|
*
|
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
|
|
|
|
* MA 02111-1307 USA
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* Sun Industry Standards Source License Version 1.1
|
|
|
|
|
* =================================================
|
|
|
|
|
* The contents of this file are subject to the Sun Industry Standards
|
|
|
|
|
* Source License Version 1.1 (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.openoffice.org/license.html.
|
|
|
|
|
*
|
|
|
|
|
* Software provided under this License is provided on an "AS IS" basis,
|
|
|
|
|
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
|
|
|
|
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
|
|
|
|
|
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
|
|
|
|
|
* See the License for the specific provisions governing your rights and
|
|
|
|
|
* obligations concerning the Software.
|
|
|
|
|
*
|
|
|
|
|
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
|
|
|
|
|
*
|
|
|
|
|
* Copyright: 2000 by Sun Microsystems, Inc.
|
|
|
|
|
*
|
|
|
|
|
* All Rights Reserved.
|
|
|
|
|
*
|
|
|
|
|
* Contributor(s): _______________________________________
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
#ifdef PRECOMPILED
|
|
|
|
|
#include "ui_pch.hxx"
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#pragma hdrstop
|
|
|
|
|
|
|
|
|
|
#ifndef _HINTIDS_HXX
|
|
|
|
|
#include <hintids.hxx>
|
|
|
|
|
#endif
|
2000-10-12 05:37:59 +00:00
|
|
|
#ifndef _SO_CLSIDS_HXX
|
|
|
|
|
#include <so3/clsids.hxx>
|
|
|
|
|
#endif
|
2000-09-18 16:15:01 +00:00
|
|
|
#ifndef _STREAM_HXX //autogen
|
|
|
|
|
#include <tools/stream.hxx>
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef _SV_SVAPP_HXX //autogen
|
|
|
|
|
#include <vcl/svapp.hxx>
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef _MAILENUM_HXX //autogen
|
|
|
|
|
#include <goodies/mailenum.hxx>
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef _SVX_SVXIDS_HRC //autogen
|
|
|
|
|
#include <svx/svxids.hrc>
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef _SVX_SVXENUM_HXX //autogen
|
|
|
|
|
#include <svx/svxenum.hxx>
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef _WORDSEL_HXX
|
|
|
|
|
#include <svtools/wordsel.hxx>
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef _TOOLS_DEBUG_HXX //autogen
|
|
|
|
|
#include <tools/debug.hxx>
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef _FACTORY_HXX //autogen
|
|
|
|
|
#include <so3/factory.hxx>
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef _SWTYPES_HXX
|
|
|
|
|
#include <swtypes.hxx>
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef _ITABENUM_HXX
|
|
|
|
|
#include <itabenum.hxx>
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef _MODCFG_HXX
|
|
|
|
|
#include <modcfg.hxx>
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef _FLDUPDE_HXX
|
|
|
|
|
#include <fldupde.hxx>
|
|
|
|
|
#endif
|
|
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
|
|
|
|
|
#include <com/sun/star/uno/Any.hxx>
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
|
|
|
|
|
#include <com/sun/star/uno/Sequence.hxx>
|
|
|
|
|
#endif
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
using namespace utl;
|
|
|
|
|
using namespace rtl;
|
|
|
|
|
using namespace com::sun::star::uno;
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
#define C2U(cChar) OUString::createFromAscii(cChar)
|
|
|
|
|
#define GLOB_NAME_CALC 0
|
|
|
|
|
#define GLOB_NAME_IMPRESS 1
|
|
|
|
|
#define GLOB_NAME_DRAW 2
|
|
|
|
|
#define GLOB_NAME_MATH 3
|
|
|
|
|
#define GLOB_NAME_SIM 4
|
|
|
|
|
#define GLOB_NAME_CHART 5
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
SV_IMPL_PTRARR_SORT(InsCapOptArr, InsCaptionOptPtr)
|
2000-09-18 16:15:01 +00:00
|
|
|
/* -----------------03.11.98 13:46-------------------
|
|
|
|
|
*
|
|
|
|
|
* --------------------------------------------------*/
|
|
|
|
|
InsCaptionOpt* InsCaptionOptArr::Find(const SwCapObjType eType, const SvGlobalName *pOleId) const
|
|
|
|
|
{
|
|
|
|
|
for (USHORT i = 0; i < Count(); i++ )
|
|
|
|
|
{
|
|
|
|
|
InsCaptionOpt* pObj = GetObject(i);
|
|
|
|
|
if (pObj->GetObjType() == eType &&
|
|
|
|
|
(eType != OLE_CAP ||
|
|
|
|
|
(pOleId &&
|
|
|
|
|
(pObj->GetOleId() == *pOleId ||
|
|
|
|
|
SvFactory::GetAutoConvertTo(pObj->GetOleId()) == *pOleId))))
|
|
|
|
|
return pObj;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -----------------03.11.98 15:05-------------------
|
|
|
|
|
*
|
|
|
|
|
* --------------------------------------------------*/
|
|
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
const InsCaptionOpt* SwModuleOptions::GetCapOption(
|
|
|
|
|
BOOL bHTML, const SwCapObjType eType, const SvGlobalName *pOleId)
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
if(bHTML)
|
|
|
|
|
{
|
|
|
|
|
DBG_ERROR("no caption option in sw/web!")
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
sal_Bool bFound = FALSE;
|
|
|
|
|
if(eType == OLE_CAP && pOleId)
|
|
|
|
|
{
|
|
|
|
|
for( USHORT nId = 0; nId <= GLOB_NAME_CHART; nId++)
|
|
|
|
|
bFound = *pOleId == aInsertConfig.aGlobalNames[nId ];
|
|
|
|
|
if(!bFound)
|
|
|
|
|
return aInsertConfig.pOLEMiscOpt;
|
|
|
|
|
}
|
|
|
|
|
return aInsertConfig.pCapOptions->Find(eType, pOleId);
|
|
|
|
|
}
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -----------------03.11.98 15:05-------------------
|
|
|
|
|
*
|
|
|
|
|
* --------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
BOOL SwModuleOptions::SetCapOption(BOOL bHTML, const InsCaptionOpt* pOpt)
|
|
|
|
|
{
|
|
|
|
|
BOOL bRet = FALSE;
|
|
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
if(bHTML)
|
|
|
|
|
{
|
|
|
|
|
DBG_ERROR("no caption option in sw/web!")
|
|
|
|
|
}
|
|
|
|
|
else if (pOpt)
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
sal_Bool bFound = FALSE;
|
|
|
|
|
if(pOpt->GetObjType() == OLE_CAP && &pOpt->GetOleId())
|
|
|
|
|
{
|
|
|
|
|
for( USHORT nId = 0; nId <= GLOB_NAME_CHART; nId++)
|
|
|
|
|
bFound = pOpt->GetOleId() == aInsertConfig.aGlobalNames[nId ];
|
|
|
|
|
if(!bFound)
|
|
|
|
|
{
|
|
|
|
|
if(aInsertConfig.pOLEMiscOpt)
|
|
|
|
|
*aInsertConfig.pOLEMiscOpt = *pOpt;
|
|
|
|
|
else
|
|
|
|
|
aInsertConfig.pOLEMiscOpt = new InsCaptionOpt(*pOpt);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
InsCaptionOptArr& rArr = *aInsertConfig.pCapOptions;
|
2000-09-18 16:15:01 +00:00
|
|
|
InsCaptionOpt *pObj = rArr.Find(pOpt->GetObjType(), &pOpt->GetOleId());
|
|
|
|
|
|
|
|
|
|
if (pObj)
|
|
|
|
|
{
|
|
|
|
|
*pObj = *pOpt;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
rArr.Insert(new InsCaptionOpt(*pOpt));
|
|
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
aInsertConfig.SetModified();
|
2000-09-18 16:15:01 +00:00
|
|
|
bRet = TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return bRet;
|
|
|
|
|
}
|
|
|
|
|
/*-----------------13.01.97 12.44-------------------
|
|
|
|
|
|
|
|
|
|
--------------------------------------------------*/
|
2000-10-12 05:37:59 +00:00
|
|
|
SwModuleOptions::SwModuleOptions() :
|
|
|
|
|
aRevisionConfig(),
|
|
|
|
|
aInsertConfig(FALSE),
|
|
|
|
|
aWebInsertConfig(TRUE),
|
|
|
|
|
aTableConfig(FALSE),
|
|
|
|
|
aWebTableConfig(TRUE)
|
|
|
|
|
{
|
|
|
|
|
aRevisionConfig.Load();
|
|
|
|
|
}
|
|
|
|
|
/* -----------------------------10.10.00 16:22--------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
---------------------------------------------------------------------------*/
|
|
|
|
|
Sequence<OUString> SwRevisionConfig::GetPropertyNames()
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
static const char* aPropNames[] =
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
"TextDisplay/Insert/Attribute", // 0
|
|
|
|
|
"TextDisplay/Insert/Color", // 1
|
|
|
|
|
"TextDisplay/Delete/Attribute", // 2
|
|
|
|
|
"TextDisplay/Delete/Color", // 3
|
|
|
|
|
"TextDisplay/ChangedAttribute/Attribute", // 4
|
|
|
|
|
"TextDisplay/ChangedAttribute/Color", // 5
|
|
|
|
|
"LinesChanged/Mark", // 6
|
|
|
|
|
"LinesChanged/Color" // 7
|
|
|
|
|
};
|
|
|
|
|
const int nCount = 8;
|
|
|
|
|
Sequence<OUString> aNames(nCount);
|
|
|
|
|
OUString* pNames = aNames.getArray();
|
|
|
|
|
for(int i = 0; i < nCount; i++)
|
|
|
|
|
pNames[i] = OUString::createFromAscii(aPropNames[i]);
|
|
|
|
|
return aNames;
|
|
|
|
|
}
|
|
|
|
|
/*-- 10.10.00 16:22:22---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
SwRevisionConfig::SwRevisionConfig() :
|
|
|
|
|
ConfigItem(C2U("Office.Writer/Revision"))
|
|
|
|
|
{
|
|
|
|
|
aInsertAttr.nItemId = SID_ATTR_CHAR_UNDERLINE;
|
|
|
|
|
aInsertAttr.nAttr = UNDERLINE_SINGLE;
|
|
|
|
|
aInsertAttr.nColor = COL_TRANSPARENT;
|
|
|
|
|
aDeletedAttr.nItemId = SID_ATTR_CHAR_STRIKEOUT;
|
|
|
|
|
aDeletedAttr.nAttr = STRIKEOUT_SINGLE;
|
|
|
|
|
aDeletedAttr.nColor = COL_TRANSPARENT;
|
|
|
|
|
aFormatAttr.nItemId = SID_ATTR_CHAR_WEIGHT;
|
|
|
|
|
aFormatAttr.nAttr = WEIGHT_BOLD;
|
|
|
|
|
aFormatAttr.nColor = COL_BLACK;
|
|
|
|
|
Load();
|
|
|
|
|
}
|
|
|
|
|
/*-- 10.10.00 16:22:23---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
SwRevisionConfig::~SwRevisionConfig()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
/*-- 10.10.00 16:22:56---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
void SwRevisionConfig::Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames)
|
|
|
|
|
{
|
|
|
|
|
Load();
|
|
|
|
|
}
|
|
|
|
|
/*-- 10.10.00 16:22:56---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
void SwRevisionConfig::Commit()
|
|
|
|
|
{
|
|
|
|
|
Sequence<OUString> aNames = GetPropertyNames();
|
|
|
|
|
OUString* pNames = aNames.getArray();
|
|
|
|
|
Sequence<Any> aValues(aNames.getLength());
|
|
|
|
|
Any* pValues = aValues.getArray();
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
const Type& rType = ::getBooleanCppuType();
|
|
|
|
|
for(int nProp = 0; nProp < aNames.getLength(); nProp++)
|
|
|
|
|
{
|
|
|
|
|
sal_Int32 nVal = -1;
|
|
|
|
|
switch(nProp)
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
case 0 : nVal = aInsertAttr.nAttr ; break;
|
|
|
|
|
case 1 : nVal = aInsertAttr.nColor ; break;
|
|
|
|
|
case 2 : nVal = aDeletedAttr.nAttr ; break;
|
|
|
|
|
case 3 : nVal = aDeletedAttr.nColor ; break;
|
|
|
|
|
case 4 : nVal = aFormatAttr.nAttr ; break;
|
|
|
|
|
case 5 : nVal = aFormatAttr.nColor ; break;
|
|
|
|
|
case 6 : nVal = nMarkAlign ; break;
|
|
|
|
|
case 7 : nVal = aMarkColor.GetColor(); break;
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
pValues[nProp] <<= nVal;
|
|
|
|
|
}
|
|
|
|
|
PutProperties(aNames, aValues);
|
|
|
|
|
}
|
|
|
|
|
/*-- 10.10.00 16:22:56---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
void SwRevisionConfig::Load()
|
|
|
|
|
{
|
|
|
|
|
Sequence<OUString> aNames = GetPropertyNames();
|
|
|
|
|
Sequence<Any> aValues = GetProperties(aNames);
|
|
|
|
|
EnableNotification(aNames);
|
|
|
|
|
const Any* pValues = aValues.getConstArray();
|
|
|
|
|
DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed")
|
|
|
|
|
if(aValues.getLength() == aNames.getLength())
|
|
|
|
|
{
|
|
|
|
|
for(int nProp = 0; nProp < aNames.getLength(); nProp++)
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
if(pValues[nProp].hasValue())
|
|
|
|
|
{
|
|
|
|
|
sal_Int32 nVal;
|
|
|
|
|
pValues[nProp] >>= nVal;
|
|
|
|
|
switch(nProp)
|
|
|
|
|
{
|
|
|
|
|
case 0 : aInsertAttr.nAttr = nVal; break;
|
|
|
|
|
case 1 : aInsertAttr.nColor = nVal; break;
|
|
|
|
|
case 2 : aDeletedAttr.nAttr = nVal; break;
|
|
|
|
|
case 3 : aDeletedAttr.nColor = nVal; break;
|
|
|
|
|
case 4 : aFormatAttr.nAttr = nVal; break;
|
|
|
|
|
case 5 : aFormatAttr.nColor = nVal; break;
|
|
|
|
|
case 6 : nMarkAlign = nVal; break;
|
|
|
|
|
case 7 : aMarkColor.SetColor(nVal); break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/* -----------------------------10.10.00 16:22--------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
---------------------------------------------------------------------------*/
|
|
|
|
|
Sequence<OUString> SwInsertConfig::GetPropertyNames()
|
|
|
|
|
{
|
|
|
|
|
static const char* aPropNames[] =
|
|
|
|
|
{
|
|
|
|
|
"Table/Header", // 0
|
|
|
|
|
"Table/RepeatHeader", // 1
|
|
|
|
|
"Table/Border", // 2
|
|
|
|
|
"Table/Split", // 3 from here not in writer/web
|
|
|
|
|
"Caption/Automatic", // 4
|
|
|
|
|
"Caption/StarWriterObject/Table/Category", // 5
|
|
|
|
|
"Caption/StarWriterObject/Table/Numbering", // 6
|
|
|
|
|
"Caption/StarWriterObject/Table/CaptionText", // 7
|
|
|
|
|
"Caption/StarWriterObject/Table/Delimiter", // 8
|
|
|
|
|
"Caption/StarWriterObject/Table/Level", // 9
|
|
|
|
|
"Caption/StarWriterObject/Table/Position", //10
|
|
|
|
|
"Caption/StarWriterObject/Frame/Category", //11
|
|
|
|
|
"Caption/StarWriterObject/Frame/Numbering", //12
|
|
|
|
|
"Caption/StarWriterObject/Frame/CaptionText", //13
|
|
|
|
|
"Caption/StarWriterObject/Frame/Delimiter", //14
|
|
|
|
|
"Caption/StarWriterObject/Frame/Level", //15
|
|
|
|
|
"Caption/StarWriterObject/Frame/Position", //16
|
|
|
|
|
"Caption/StarWriterObject/Graphic/Category", //17
|
|
|
|
|
"Caption/StarWriterObject/Graphic/Numbering", //18
|
|
|
|
|
"Caption/StarWriterObject/Graphic/CaptionText", //19
|
|
|
|
|
"Caption/StarWriterObject/Graphic/Delimiter", //20
|
|
|
|
|
"Caption/StarWriterObject/Graphic/Level", //21
|
|
|
|
|
"Caption/StarOfficeObject/Calc/Category", //22
|
|
|
|
|
"Caption/StarOfficeObject/Calc/Numbering", //23
|
|
|
|
|
"Caption/StarOfficeObject/Calc/CaptionText", //24
|
|
|
|
|
"Caption/StarOfficeObject/Calc/Delimiter", //25
|
|
|
|
|
"Caption/StarOfficeObject/Calc/Level", //26
|
|
|
|
|
"Caption/StarOfficeObject/Calc/Position", //27
|
|
|
|
|
"Caption/StarOfficeObject/Impress/Category", //28
|
|
|
|
|
"Caption/StarOfficeObject/Impress/Numbering", //29
|
|
|
|
|
"Caption/StarOfficeObject/Impress/CaptionText", //30
|
|
|
|
|
"Caption/StarOfficeObject/Impress/Delimiter", //31
|
|
|
|
|
"Caption/StarOfficeObject/Impress/Level", //32
|
|
|
|
|
"Caption/StarOfficeObject/Impress/Position", //33
|
|
|
|
|
"Caption/StarOfficeObject/Chart/Category", //34
|
|
|
|
|
"Caption/StarOfficeObject/Chart/Numbering", //35
|
|
|
|
|
"Caption/StarOfficeObject/Chart/CaptionText", //36
|
|
|
|
|
"Caption/StarOfficeObject/Chart/Delimiter", //37
|
|
|
|
|
"Caption/StarOfficeObject/Chart/Level", //38
|
|
|
|
|
"Caption/StarOfficeObject/Chart/Position", //39
|
|
|
|
|
"Caption/StarOfficeObject/Image/Category", //40
|
|
|
|
|
"Caption/StarOfficeObject/Image/Numbering", //41
|
|
|
|
|
"Caption/StarOfficeObject/Image/CaptionText", //42
|
|
|
|
|
"Caption/StarOfficeObject/Image/Delimiter", //43
|
|
|
|
|
"Caption/StarOfficeObject/Image/Level", //44
|
|
|
|
|
"Caption/StarOfficeObject/Image/Position", //45
|
|
|
|
|
"Caption/StarOfficeObject/Formula/Category", //46
|
|
|
|
|
"Caption/StarOfficeObject/Formula/Numbering", //47
|
|
|
|
|
"Caption/StarOfficeObject/Formula/CaptionText", //48
|
|
|
|
|
"Caption/StarOfficeObject/Formula/Delimiter", //49
|
|
|
|
|
"Caption/StarOfficeObject/Formula/Level", //50
|
|
|
|
|
"Caption/StarOfficeObject/Formula/Position", //51
|
|
|
|
|
"Caption/StarOfficeObject/Draw/Category", //52
|
|
|
|
|
"Caption/StarOfficeObject/Draw/Numbering", //53
|
|
|
|
|
"Caption/StarOfficeObject/Draw/CaptionText", //54
|
|
|
|
|
"Caption/StarOfficeObject/Draw/Delimiter", //55
|
|
|
|
|
"Caption/StarOfficeObject/Draw/Level", //56
|
|
|
|
|
"Caption/StarOfficeObject/Draw/Position", //57
|
|
|
|
|
"Caption/StarOfficeObject/OLEMisc/Category", //58
|
|
|
|
|
"Caption/StarOfficeObject/OLEMisc/Numbering", //59
|
|
|
|
|
"Caption/StarOfficeObject/OLEMisc/CaptionText", //60
|
|
|
|
|
"Caption/StarOfficeObject/OLEMisc/Delimiter", //61
|
|
|
|
|
"Caption/StarOfficeObject/OLEMisc/Level", //62
|
|
|
|
|
"Caption/StarOfficeObject/OLEMisc/Position", //63
|
|
|
|
|
};
|
|
|
|
|
const int nCount = bIsWeb ? 3: 64;
|
|
|
|
|
Sequence<OUString> aNames(nCount);
|
|
|
|
|
OUString* pNames = aNames.getArray();
|
|
|
|
|
for(int i = 0; i < nCount; i++)
|
|
|
|
|
pNames[i] = OUString::createFromAscii(aPropNames[i]);
|
|
|
|
|
return aNames;
|
|
|
|
|
}
|
|
|
|
|
/*-- 10.10.00 16:22:22---------------------------------------------------
|
|
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
SwInsertConfig::SwInsertConfig(sal_Bool bWeb) :
|
|
|
|
|
ConfigItem(bWeb ? C2U("Office.WriterWeb/Insert") : C2U("Office.Writer/Insert")),
|
|
|
|
|
bIsWeb(bWeb),
|
|
|
|
|
pCapOptions(0),
|
|
|
|
|
pOLEMiscOpt(0)
|
|
|
|
|
{
|
|
|
|
|
aGlobalNames[GLOB_NAME_CALC ] = SvGlobalName(SO3_SC_CLASSID);;
|
|
|
|
|
aGlobalNames[GLOB_NAME_IMPRESS] = SvGlobalName(SO3_SIMPRESS_CLASSID);
|
|
|
|
|
aGlobalNames[GLOB_NAME_DRAW ] = SvGlobalName(SO3_SDRAW_CLASSID);
|
|
|
|
|
aGlobalNames[GLOB_NAME_MATH ] = SvGlobalName(SO3_SM_CLASSID);
|
|
|
|
|
aGlobalNames[GLOB_NAME_SIM ] = SvGlobalName(SO3_SIM_CLASSID);
|
|
|
|
|
aGlobalNames[GLOB_NAME_CHART ] = SvGlobalName(SO3_SCH_CLASSID);
|
|
|
|
|
if(!bIsWeb)
|
|
|
|
|
pCapOptions = new InsCaptionOptArr;
|
|
|
|
|
Load();
|
|
|
|
|
}
|
|
|
|
|
/*-- 10.10.00 16:22:23---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
SwInsertConfig::~SwInsertConfig()
|
|
|
|
|
{
|
|
|
|
|
delete pCapOptions;
|
|
|
|
|
delete pOLEMiscOpt;
|
|
|
|
|
}
|
|
|
|
|
/*-- 10.10.00 16:22:56---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
void SwInsertConfig::Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames)
|
|
|
|
|
{
|
|
|
|
|
Load();
|
|
|
|
|
}
|
|
|
|
|
/*-- 10.10.00 16:22:56---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
void lcl_WriteOpt(const InsCaptionOpt& rOpt, Any* pValues, sal_Int32 nProp, sal_Int32 nOffset)
|
|
|
|
|
{
|
|
|
|
|
switch(nOffset)
|
|
|
|
|
{
|
|
|
|
|
case 0: pValues[nProp] <<= OUString(rOpt.GetCategory()); break;//Category
|
|
|
|
|
case 1: pValues[nProp] <<= (sal_Int32)rOpt.GetNumType(); break;//Numbering",
|
|
|
|
|
case 2: pValues[nProp] <<= OUString(rOpt.GetCaption()); break;//CaptionText",
|
|
|
|
|
case 3: pValues[nProp] <<= OUString(rOpt.GetSeparator());break;//Delimiter",
|
|
|
|
|
case 4: pValues[nProp] <<= (sal_Int32)rOpt.GetLevel(); break;//Level",
|
|
|
|
|
case 5: pValues[nProp] <<= (sal_Int32)rOpt.GetPos(); break;//Position",
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
void SwInsertConfig::Commit()
|
|
|
|
|
{
|
|
|
|
|
Sequence<OUString> aNames = GetPropertyNames();
|
|
|
|
|
OUString* pNames = aNames.getArray();
|
|
|
|
|
Sequence<Any> aValues(aNames.getLength());
|
|
|
|
|
Any* pValues = aValues.getArray();
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
const Type& rType = ::getBooleanCppuType();
|
|
|
|
|
for(int nProp = 0; nProp < aNames.getLength(); nProp++)
|
|
|
|
|
{
|
|
|
|
|
sal_Int32 nVal = -1;
|
|
|
|
|
const InsCaptionOpt* pWriterTableOpt = 0;
|
|
|
|
|
const InsCaptionOpt* pWriterFrameOpt = 0;
|
|
|
|
|
const InsCaptionOpt* pWriterGraphicOpt = 0;
|
|
|
|
|
const InsCaptionOpt* pOLECalcOpt = 0;
|
|
|
|
|
const InsCaptionOpt* pOLEImpressOpt = 0;
|
|
|
|
|
const InsCaptionOpt* pOLEChartOpt = 0;
|
|
|
|
|
const InsCaptionOpt* pOLEImageOpt = 0;
|
|
|
|
|
const InsCaptionOpt* pOLEFormulaOpt = 0;
|
|
|
|
|
const InsCaptionOpt* pOLEDrawOpt = 0;
|
|
|
|
|
if(pCapOptions)
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
pWriterTableOpt = pCapOptions->Find(TABLE_CAP, 0);
|
|
|
|
|
pWriterFrameOpt = pCapOptions->Find(FRAME_CAP, 0);
|
|
|
|
|
pWriterGraphicOpt = pCapOptions->Find(GRAPHIC_CAP, 0);
|
|
|
|
|
pOLECalcOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_CALC]);
|
|
|
|
|
pOLEImpressOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_IMPRESS]);
|
|
|
|
|
pOLEDrawOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_DRAW ]);
|
|
|
|
|
pOLEFormulaOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_MATH ]);
|
|
|
|
|
pOLEChartOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_CHART ]);
|
|
|
|
|
pOLEImageOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_SIM ]);
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
switch(nProp)
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
case 0:
|
|
|
|
|
{
|
|
|
|
|
sal_Bool bVal = 0 !=(nInsTblFlags&HEADLINE); pValues[nProp].setValue(&bVal, rType);
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
break;//"Table/Header",
|
|
|
|
|
case 1:
|
|
|
|
|
{
|
|
|
|
|
sal_Bool bVal = 0 !=(nInsTblFlags&REPEAT); pValues[nProp].setValue(&bVal, rType);
|
|
|
|
|
}
|
|
|
|
|
break;//"Table/RepeatHeader",
|
|
|
|
|
case 2:
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
sal_Bool bVal = 0 !=(nInsTblFlags&DEFAULT_BORDER ); pValues[nProp].setValue(&bVal, rType);
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
break;//"Table/Border",
|
|
|
|
|
case 3:
|
|
|
|
|
{
|
|
|
|
|
sal_Bool bVal = 0 !=(nInsTblFlags&SPLIT_LAYOUT); pValues[nProp].setValue(&bVal, rType);
|
|
|
|
|
}
|
|
|
|
|
break;//"Table/Split",
|
|
|
|
|
case 4: pValues[nProp].setValue(&bInsWithCaption, rType);break;//"Caption/Automatic",
|
|
|
|
|
|
|
|
|
|
case 5: case 6: case 7: case 8: case 9: case 10: //"Caption/StarWriterObject/Table/Position",
|
|
|
|
|
if(pWriterTableOpt)
|
|
|
|
|
lcl_WriteOpt(*pWriterTableOpt, pValues, nProp, nProp - 5);
|
|
|
|
|
break;
|
|
|
|
|
case 11: case 12: case 13: case 14: case 15: case 16:
|
|
|
|
|
if(pWriterFrameOpt)
|
|
|
|
|
lcl_WriteOpt(*pWriterFrameOpt, pValues, nProp, nProp - 11);
|
|
|
|
|
case 17: case 18: case 19: case 20: case 21:
|
|
|
|
|
if(pWriterGraphicOpt)
|
|
|
|
|
lcl_WriteOpt(*pWriterGraphicOpt, pValues, nProp, nProp - 17);
|
|
|
|
|
break;
|
|
|
|
|
case 22: case 23: case 24: case 25: case 26: case 27:
|
|
|
|
|
if(pOLECalcOpt)
|
|
|
|
|
lcl_WriteOpt(*pOLECalcOpt, pValues, nProp, nProp - 22);
|
|
|
|
|
break;
|
|
|
|
|
case 28: case 29: case 30: case 31: case 32:
|
|
|
|
|
case 33:
|
|
|
|
|
if(pOLEImpressOpt)
|
|
|
|
|
lcl_WriteOpt(*pOLEImpressOpt, pValues, nProp, nProp - 28);
|
|
|
|
|
break;
|
|
|
|
|
case 34: case 35: case 36: case 37: case 38: case 39:
|
|
|
|
|
if(pOLEChartOpt)
|
|
|
|
|
lcl_WriteOpt(*pOLEChartOpt, pValues, nProp, nProp - 34);
|
|
|
|
|
break;
|
|
|
|
|
case 40: case 41: case 42: case 43: case 44: case 45:
|
|
|
|
|
if(pOLEImageOpt)
|
|
|
|
|
lcl_WriteOpt(*pOLEImageOpt, pValues, nProp, nProp - 40);
|
|
|
|
|
break;
|
|
|
|
|
case 46: case 47: case 48: case 49: case 50: case 51:
|
|
|
|
|
if(pOLEFormulaOpt)
|
|
|
|
|
lcl_WriteOpt(*pOLEFormulaOpt, pValues, nProp, nProp - 46);
|
|
|
|
|
break;
|
|
|
|
|
case 52: case 53: case 54: case 55: case 56: case 57:
|
|
|
|
|
if(pOLEDrawOpt)
|
|
|
|
|
lcl_WriteOpt(*pOLEDrawOpt, pValues, nProp, nProp - 52);
|
|
|
|
|
break;
|
|
|
|
|
case 58: case 59: case 60: case 61: case 62: case 63:
|
|
|
|
|
if(pOLEMiscOpt)
|
|
|
|
|
lcl_WriteOpt(*pOLEMiscOpt, pValues, nProp, nProp - 58);
|
|
|
|
|
break;
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
}
|
|
|
|
|
PutProperties(aNames, aValues);
|
|
|
|
|
}
|
|
|
|
|
/*-- 10.10.00 16:22:56---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
void lcl_ReadOpt(InsCaptionOpt& rOpt, const Any* pValues, sal_Int32 nProp, sal_Int32 nOffset)
|
|
|
|
|
{
|
|
|
|
|
switch(nOffset)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
{
|
|
|
|
|
OUString sTemp; pValues[nProp] >>= sTemp;
|
|
|
|
|
rOpt.SetCategory(sTemp);
|
|
|
|
|
}
|
|
|
|
|
break;//Category
|
|
|
|
|
case 1:
|
|
|
|
|
{
|
|
|
|
|
sal_Int32 nTemp; pValues[nProp] >>= nTemp;
|
|
|
|
|
rOpt.SetNumType(nTemp);
|
|
|
|
|
}
|
|
|
|
|
break;//Numbering",
|
|
|
|
|
case 2:
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
OUString sTemp; pValues[nProp] >>= sTemp;
|
|
|
|
|
rOpt.SetCaption(sTemp);
|
|
|
|
|
}
|
|
|
|
|
break;//CaptionText",
|
|
|
|
|
case 3:
|
|
|
|
|
{
|
|
|
|
|
OUString sTemp; pValues[nProp] >>= sTemp;
|
|
|
|
|
if(sTemp.getLength())
|
|
|
|
|
rOpt.SetSeparator(sTemp[0]);
|
|
|
|
|
}
|
|
|
|
|
break;//Delimiter",
|
|
|
|
|
case 4:
|
|
|
|
|
{
|
|
|
|
|
sal_Int32 nTemp; pValues[nProp] >>= nTemp;
|
|
|
|
|
rOpt.SetLevel(nTemp);
|
|
|
|
|
}
|
|
|
|
|
break;//Level",
|
|
|
|
|
case 5:
|
|
|
|
|
{
|
|
|
|
|
sal_Int32 nTemp; pValues[nProp] >>= nTemp;
|
|
|
|
|
rOpt.SetPos(nTemp);
|
|
|
|
|
}
|
|
|
|
|
break;//Position",
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
void SwInsertConfig::Load()
|
|
|
|
|
{
|
|
|
|
|
Sequence<OUString> aNames = GetPropertyNames();
|
|
|
|
|
Sequence<Any> aValues = GetProperties(aNames);
|
|
|
|
|
EnableNotification(aNames);
|
|
|
|
|
const Any* pValues = aValues.getConstArray();
|
|
|
|
|
DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed")
|
|
|
|
|
if(aValues.getLength() == aNames.getLength())
|
|
|
|
|
{
|
|
|
|
|
InsCaptionOpt* pWriterTableOpt = 0;
|
|
|
|
|
InsCaptionOpt* pWriterFrameOpt = 0;
|
|
|
|
|
InsCaptionOpt* pWriterGraphicOpt = 0;
|
|
|
|
|
InsCaptionOpt* pOLECalcOpt = 0;
|
|
|
|
|
InsCaptionOpt* pOLEImpressOpt = 0;
|
|
|
|
|
InsCaptionOpt* pOLEChartOpt = 0;
|
|
|
|
|
InsCaptionOpt* pOLEImageOpt = 0;
|
|
|
|
|
InsCaptionOpt* pOLEFormulaOpt = 0;
|
|
|
|
|
InsCaptionOpt* pOLEDrawOpt = 0;
|
|
|
|
|
if(pCapOptions)
|
|
|
|
|
{
|
|
|
|
|
pWriterTableOpt = pCapOptions->Find(TABLE_CAP, 0);
|
|
|
|
|
pWriterFrameOpt = pCapOptions->Find(FRAME_CAP, 0);
|
|
|
|
|
pWriterGraphicOpt = pCapOptions->Find(GRAPHIC_CAP, 0);
|
|
|
|
|
pOLECalcOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_CALC]);
|
|
|
|
|
pOLEImpressOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_IMPRESS]);
|
|
|
|
|
pOLEDrawOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_DRAW ]);
|
|
|
|
|
pOLEFormulaOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_MATH ]);
|
|
|
|
|
pOLEChartOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_CHART ]);
|
|
|
|
|
pOLEImageOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_SIM ]);
|
|
|
|
|
}
|
|
|
|
|
else if(aNames.getLength() > 2)
|
|
|
|
|
return;
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
nInsTblFlags = 0;
|
|
|
|
|
for(int nProp = 0; nProp < aNames.getLength(); nProp++)
|
|
|
|
|
{
|
|
|
|
|
if(pValues[nProp].hasValue())
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
switch(nProp)
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
case 0:
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
sal_Bool bVal = *(sal_Bool*)pValues[nProp].getValue();
|
|
|
|
|
if(bVal)
|
|
|
|
|
nInsTblFlags|= HEADLINE;
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
break;//"Table/Header",
|
|
|
|
|
case 1:
|
|
|
|
|
{
|
|
|
|
|
sal_Bool bVal = *(sal_Bool*)pValues[nProp].getValue();
|
|
|
|
|
if(bVal)
|
|
|
|
|
nInsTblFlags|= REPEAT;
|
|
|
|
|
}
|
|
|
|
|
break;//"Table/RepeatHeader",
|
|
|
|
|
case 2:
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
sal_Bool bVal = *(sal_Bool*)pValues[nProp].getValue();
|
|
|
|
|
if(bVal)
|
|
|
|
|
nInsTblFlags|= DEFAULT_BORDER;
|
|
|
|
|
}
|
|
|
|
|
break;//"Table/Border",
|
|
|
|
|
case 3:
|
|
|
|
|
{
|
|
|
|
|
sal_Bool bVal = *(sal_Bool*)pValues[nProp].getValue();
|
|
|
|
|
if(bVal)
|
|
|
|
|
nInsTblFlags|= SPLIT_LAYOUT;
|
|
|
|
|
}
|
|
|
|
|
break;//"Table/Split",
|
|
|
|
|
case 5: case 6: case 7: case 8: case 9: case 10:
|
|
|
|
|
if(!pWriterTableOpt)
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
pWriterTableOpt = new InsCaptionOpt(TABLE_CAP);
|
|
|
|
|
pCapOptions->Insert(pWriterTableOpt);
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
lcl_ReadOpt(*pWriterTableOpt, pValues, nProp, nProp - 5);
|
|
|
|
|
break;
|
|
|
|
|
case 11: case 12: case 13: case 14: case 15: case 16:
|
|
|
|
|
if(!pWriterFrameOpt)
|
|
|
|
|
{
|
|
|
|
|
pWriterFrameOpt = new InsCaptionOpt(FRAME_CAP);
|
|
|
|
|
pCapOptions->Insert(pWriterFrameOpt);
|
|
|
|
|
}
|
|
|
|
|
lcl_ReadOpt(*pWriterFrameOpt, pValues, nProp, nProp - 11);
|
|
|
|
|
case 17: case 18: case 19: case 20: case 21:
|
|
|
|
|
if(!pWriterGraphicOpt)
|
|
|
|
|
{
|
|
|
|
|
pWriterGraphicOpt = new InsCaptionOpt(GRAPHIC_CAP);
|
|
|
|
|
pCapOptions->Insert(pWriterGraphicOpt);
|
|
|
|
|
}
|
|
|
|
|
lcl_ReadOpt(*pWriterGraphicOpt, pValues, nProp, nProp - 17);
|
|
|
|
|
break;
|
|
|
|
|
case 22: case 23: case 24: case 25: case 26: case 27:
|
|
|
|
|
if(!pOLECalcOpt)
|
|
|
|
|
{
|
|
|
|
|
pOLECalcOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_CALC]);
|
|
|
|
|
pCapOptions->Insert(pOLECalcOpt);
|
|
|
|
|
}
|
|
|
|
|
lcl_ReadOpt(*pOLECalcOpt, pValues, nProp, nProp - 22);
|
|
|
|
|
break;
|
|
|
|
|
case 28: case 29: case 30: case 31: case 32:
|
|
|
|
|
case 33:
|
|
|
|
|
if(!pOLEImpressOpt)
|
|
|
|
|
{
|
|
|
|
|
pOLEImpressOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_IMPRESS]);
|
|
|
|
|
pCapOptions->Insert(pOLEImpressOpt);
|
|
|
|
|
}
|
|
|
|
|
lcl_ReadOpt(*pOLEImpressOpt, pValues, nProp, nProp - 28);
|
|
|
|
|
break;
|
|
|
|
|
case 34: case 35: case 36: case 37: case 38: case 39:
|
|
|
|
|
if(!pOLEChartOpt)
|
|
|
|
|
{
|
|
|
|
|
pOLEChartOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_CHART]);
|
|
|
|
|
pCapOptions->Insert(pOLEChartOpt);
|
|
|
|
|
}
|
|
|
|
|
lcl_ReadOpt(*pOLEChartOpt, pValues, nProp, nProp - 34);
|
|
|
|
|
break;
|
|
|
|
|
case 40: case 41: case 42: case 43: case 44: case 45:
|
|
|
|
|
if(!pOLEImageOpt)
|
|
|
|
|
{
|
|
|
|
|
pOLEImageOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_SIM]);
|
|
|
|
|
pCapOptions->Insert(pOLEImageOpt);
|
|
|
|
|
}
|
|
|
|
|
lcl_ReadOpt(*pOLEImageOpt, pValues, nProp, nProp - 40);
|
|
|
|
|
break;
|
|
|
|
|
case 46: case 47: case 48: case 49: case 50: case 51:
|
|
|
|
|
if(!pOLEFormulaOpt)
|
|
|
|
|
{
|
|
|
|
|
pOLEFormulaOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_MATH]);
|
|
|
|
|
pCapOptions->Insert(pOLEFormulaOpt);
|
|
|
|
|
}
|
|
|
|
|
lcl_ReadOpt(*pOLEFormulaOpt, pValues, nProp, nProp - 46);
|
|
|
|
|
break;
|
|
|
|
|
case 52: case 53: case 54: case 55: case 56: case 57:
|
|
|
|
|
if(!pOLEDrawOpt)
|
|
|
|
|
{
|
|
|
|
|
pOLEDrawOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_DRAW]);
|
|
|
|
|
pCapOptions->Insert(pOLEDrawOpt);
|
|
|
|
|
}
|
|
|
|
|
lcl_ReadOpt(*pOLEDrawOpt, pValues, nProp, nProp - 52);
|
|
|
|
|
break;
|
|
|
|
|
case 58: case 59: case 60: case 61: case 62: case 63:
|
|
|
|
|
if(!pOLEMiscOpt)
|
|
|
|
|
{
|
|
|
|
|
pOLEMiscOpt = new InsCaptionOpt(OLE_CAP);
|
|
|
|
|
}
|
|
|
|
|
lcl_ReadOpt(*pOLEMiscOpt, pValues, nProp, nProp - 58);
|
|
|
|
|
break;
|
|
|
|
|
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
/* -----------------------------10.10.00 16:22--------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
---------------------------------------------------------------------------*/
|
|
|
|
|
Sequence<OUString> SwTableConfig::GetPropertyNames()
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
static const char* aPropNames[] =
|
|
|
|
|
{
|
|
|
|
|
"Shift/Row", // 0
|
|
|
|
|
"Shift/Column", // 1
|
|
|
|
|
"Insert/Row", // 2
|
|
|
|
|
"Insert/Column", // 3
|
|
|
|
|
"Change/Effect", // 4
|
|
|
|
|
"Input/NumberRecognition", // 5
|
|
|
|
|
"Input/NumberFormatRecognition",// 6
|
|
|
|
|
"Input/Alignment" // 7
|
|
|
|
|
};
|
|
|
|
|
const int nCount = 8;
|
|
|
|
|
Sequence<OUString> aNames(nCount);
|
|
|
|
|
OUString* pNames = aNames.getArray();
|
|
|
|
|
for(int i = 0; i < nCount; i++)
|
|
|
|
|
pNames[i] = OUString::createFromAscii(aPropNames[i]);
|
|
|
|
|
return aNames;
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
/*-- 10.10.00 16:22:22---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
SwTableConfig::SwTableConfig(sal_Bool bWeb) :
|
|
|
|
|
ConfigItem(bWeb ? C2U("Office.WriterWeb/Table") : C2U("Office.Writer/Table"))
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
Load();
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
/*-- 10.10.00 16:22:23---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
SwTableConfig::~SwTableConfig()
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
|
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
/*-- 10.10.00 16:22:56---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
void SwTableConfig::Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames)
|
2000-09-18 16:15:01 +00:00
|
|
|
{
|
2000-10-12 05:37:59 +00:00
|
|
|
Load();
|
2000-09-18 16:15:01 +00:00
|
|
|
}
|
2000-10-12 05:37:59 +00:00
|
|
|
/*-- 10.10.00 16:22:56---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
void SwTableConfig::Commit()
|
|
|
|
|
{
|
|
|
|
|
Sequence<OUString> aNames = GetPropertyNames();
|
|
|
|
|
OUString* pNames = aNames.getArray();
|
|
|
|
|
Sequence<Any> aValues(aNames.getLength());
|
|
|
|
|
Any* pValues = aValues.getArray();
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
const Type& rType = ::getBooleanCppuType();
|
|
|
|
|
for(int nProp = 0; nProp < aNames.getLength(); nProp++)
|
|
|
|
|
{
|
|
|
|
|
switch(nProp)
|
|
|
|
|
{
|
|
|
|
|
case 0 : pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100(nTblHMove); break; //"Shift/Row",
|
|
|
|
|
case 1 : pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100(nTblVMove); break; //"Shift/Column",
|
|
|
|
|
case 2 : pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100(nTblHInsert); break; //"Insert/Row",
|
|
|
|
|
case 3 : pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100(nTblVInsert); break; //"Insert/Column",
|
|
|
|
|
case 4 : pValues[nProp] <<= (sal_Int32)eTblChgMode; break; //"Change/Effect",
|
|
|
|
|
case 5 : pValues[nProp].setValue(&bInsTblFormatNum, rType); break; //"Input/NumberRecognition",
|
|
|
|
|
case 6 : pValues[nProp].setValue(&bInsTblChangeNumFormat, rType); break; //"Input/NumberFormatRecognition",
|
|
|
|
|
case 7 : pValues[nProp].setValue(&bInsTblAlignNum, rType); break; //"Input/Alignment"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
PutProperties(aNames, aValues);
|
|
|
|
|
}
|
|
|
|
|
/*-- 10.10.00 16:22:56---------------------------------------------------
|
2000-09-18 16:15:01 +00:00
|
|
|
|
2000-10-12 05:37:59 +00:00
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
|
void SwTableConfig::Load()
|
|
|
|
|
{
|
|
|
|
|
Sequence<OUString> aNames = GetPropertyNames();
|
|
|
|
|
Sequence<Any> aValues = GetProperties(aNames);
|
|
|
|
|
EnableNotification(aNames);
|
|
|
|
|
const Any* pValues = aValues.getConstArray();
|
|
|
|
|
DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed")
|
|
|
|
|
if(aValues.getLength() == aNames.getLength())
|
|
|
|
|
{
|
|
|
|
|
for(int nProp = 0; nProp < aNames.getLength(); nProp++)
|
|
|
|
|
{
|
|
|
|
|
if(pValues[nProp].hasValue())
|
|
|
|
|
{
|
|
|
|
|
sal_Int32 nTemp;
|
|
|
|
|
switch(nProp)
|
|
|
|
|
{
|
|
|
|
|
case 0 : pValues[nProp] >>= nTemp; nTblHMove = (USHORT)MM100_TO_TWIP(nTemp); break; //"Shift/Row",
|
|
|
|
|
case 1 : pValues[nProp] >>= nTemp; nTblVMove = (USHORT)MM100_TO_TWIP(nTemp); break; //"Shift/Column",
|
|
|
|
|
case 2 : pValues[nProp] >>= nTemp; nTblHInsert = (USHORT)MM100_TO_TWIP(nTemp); break; //"Insert/Row",
|
|
|
|
|
case 3 : pValues[nProp] >>= nTemp; nTblVInsert = (USHORT)MM100_TO_TWIP(nTemp); break; //"Insert/Column",
|
|
|
|
|
case 4 : pValues[nProp] >>= nTemp; eTblChgMode = (TblChgMode)nTemp; break; //"Change/Effect",
|
|
|
|
|
case 5 : bInsTblFormatNum = *(sal_Bool*)pValues[nProp].getValue(); break; //"Input/NumberRecognition",
|
|
|
|
|
case 6 : bInsTblChangeNumFormat = *(sal_Bool*)pValues[nProp].getValue(); break; //"Input/NumberFormatRecognition",
|
|
|
|
|
case 7 : bInsTblAlignNum = *(sal_Bool*)pValues[nProp].getValue(); break; //"Input/Alignment"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2000-09-18 16:15:01 +00:00
|
|
|
|