| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_sw.hxx" |
| |
| |
| #include <hintids.hxx> |
| #include <sot/clsids.hxx> |
| #include <tools/stream.hxx> |
| #include <vcl/svapp.hxx> |
| #include <svl/mailenum.hxx> |
| #ifndef _SVX_SVXIDS_HRC //autogen |
| #include <svx/svxids.hrc> |
| #endif |
| #include <editeng/svxenum.hxx> |
| #include <tools/debug.hxx> |
| |
| #include <tools/globname.hxx> |
| #include <swtypes.hxx> |
| #include <itabenum.hxx> |
| #ifndef _MODCFG_HXX |
| #include <modcfg.hxx> |
| #endif |
| #include <fldupde.hxx> |
| #include <unotools/syslocaleoptions.hxx> |
| #include <caption.hxx> |
| #include <com/sun/star/uno/Any.hxx> |
| |
| #include <unomid.h> |
| |
| using namespace utl; |
| using rtl::OUString; |
| using namespace com::sun::star::uno; |
| |
| #define GLOB_NAME_CALC 0 |
| #define GLOB_NAME_IMPRESS 1 |
| #define GLOB_NAME_DRAW 2 |
| #define GLOB_NAME_MATH 3 |
| #define GLOB_NAME_CHART 4 |
| |
| SV_IMPL_PTRARR_SORT(InsCapOptArr, InsCaptionOptPtr) |
| /* -----------------03.11.98 13:46------------------- |
| * |
| * --------------------------------------------------*/ |
| InsCaptionOpt* InsCaptionOptArr::Find(const SwCapObjType eType, const SvGlobalName *pOleId) const |
| { |
| for (sal_uInt16 i = 0; i < Count(); i++ ) |
| { |
| InsCaptionOpt* pObj = GetObject(i); |
| if (pObj->GetObjType() == eType && |
| (eType != OLE_CAP || |
| (pOleId && |
| pObj->GetOleId() == *pOleId))) |
| return pObj; |
| } |
| |
| return 0; |
| } |
| |
| /* -----------------03.11.98 15:05------------------- |
| * |
| * --------------------------------------------------*/ |
| |
| const InsCaptionOpt* SwModuleOptions::GetCapOption( |
| sal_Bool bHTML, const SwCapObjType eType, const SvGlobalName *pOleId) |
| { |
| if(bHTML) |
| { |
| DBG_ERROR("no caption option in sw/web!"); |
| return 0; |
| } |
| else |
| { |
| sal_Bool bFound = sal_False; |
| if(eType == OLE_CAP && pOleId) |
| { |
| for( sal_uInt16 nId = 0; nId <= GLOB_NAME_CHART && !bFound; nId++) |
| bFound = *pOleId == aInsertConfig.aGlobalNames[nId ]; |
| if(!bFound) |
| return aInsertConfig.pOLEMiscOpt; |
| } |
| return aInsertConfig.pCapOptions->Find(eType, pOleId); |
| } |
| } |
| |
| /* -----------------03.11.98 15:05------------------- |
| * |
| * --------------------------------------------------*/ |
| |
| sal_Bool SwModuleOptions::SetCapOption(sal_Bool bHTML, const InsCaptionOpt* pOpt) |
| { |
| sal_Bool bRet = sal_False; |
| |
| if(bHTML) |
| { |
| DBG_ERROR("no caption option in sw/web!"); |
| } |
| else if (pOpt) |
| { |
| sal_Bool bFound = sal_False; |
| if(pOpt->GetObjType() == OLE_CAP && &pOpt->GetOleId()) |
| { |
| for( sal_uInt16 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; |
| InsCaptionOpt *pObj = rArr.Find(pOpt->GetObjType(), &pOpt->GetOleId()); |
| |
| if (pObj) |
| { |
| *pObj = *pOpt; |
| } |
| else |
| rArr.Insert(new InsCaptionOpt(*pOpt)); |
| |
| aInsertConfig.SetModified(); |
| bRet = sal_True; |
| } |
| |
| return bRet; |
| } |
| /*-----------------13.01.97 12.44------------------- |
| |
| --------------------------------------------------*/ |
| SwModuleOptions::SwModuleOptions() : |
| aInsertConfig(sal_False), |
| aWebInsertConfig(sal_True), |
| aTableConfig(sal_False), |
| aWebTableConfig(sal_True), |
| bHideFieldTips(sal_False) |
| { |
| } |
| /* -----------------------------19.01.01 12:26-------------------------------- |
| |
| ---------------------------------------------------------------------------*/ |
| String SwModuleOptions::ConvertWordDelimiter(const String& rDelim, sal_Bool bFromUI) |
| { |
| String sReturn; |
| if(bFromUI) |
| { |
| String sChar; |
| |
| xub_StrLen i = 0; |
| sal_Unicode c; |
| |
| while (i < rDelim.Len()) |
| { |
| c = rDelim.GetChar(i++); |
| |
| if (c == '\\') |
| { |
| c = rDelim.GetChar(i++); |
| |
| switch (c) |
| { |
| case 'n': sReturn += '\n'; break; |
| case 't': sReturn += '\t'; break; |
| case '\\': sReturn += '\\'; break; |
| |
| case 'x': |
| { |
| sal_Unicode nVal, nChar; |
| sal_Bool bValidData = sal_True; |
| xub_StrLen n; |
| for( n = 0, nChar = 0; n < 2 && i < rDelim.Len(); ++n, ++i ) |
| { |
| if( ((nVal = rDelim.GetChar( i )) >= '0') && ( nVal <= '9') ) |
| nVal -= '0'; |
| else if( (nVal >= 'A') && (nVal <= 'F') ) |
| nVal -= 'A' - 10; |
| else if( (nVal >= 'a') && (nVal <= 'f') ) |
| nVal -= 'a' - 10; |
| else |
| { |
| DBG_ERROR( "ungueltiger Hex-Wert" ); |
| bValidData = sal_False; |
| break; |
| } |
| |
| (nChar <<= 4 ); |
| nChar = nChar + nVal; |
| } |
| if( bValidData ) |
| sReturn += nChar; |
| break; |
| } |
| |
| default: // Unbekannt, daher nur Backslash einfuegen |
| sReturn += '\\'; |
| i--; |
| break; |
| } |
| } |
| else |
| sReturn += c; |
| } |
| } |
| else |
| { |
| for (xub_StrLen i = 0; i < rDelim.Len(); i++) |
| { |
| sal_Unicode c = rDelim.GetChar(i); |
| |
| switch (c) |
| { |
| case '\n': sReturn.AppendAscii(RTL_CONSTASCII_STRINGPARAM("\\n")); break; |
| case '\t': sReturn.AppendAscii(RTL_CONSTASCII_STRINGPARAM("\\t")); break; |
| case '\\': sReturn.AppendAscii(RTL_CONSTASCII_STRINGPARAM("\\\\")); break; |
| |
| default: |
| if( c <= 0x1f || c >= 0x7f ) |
| { |
| sReturn.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "\\x" )) |
| += String::CreateFromInt32( c, 16 ); |
| } |
| else |
| sReturn += c; |
| } |
| } |
| } |
| return sReturn; |
| } |
| /* -----------------------------10.10.00 16:22-------------------------------- |
| |
| ---------------------------------------------------------------------------*/ |
| const Sequence<OUString>& SwRevisionConfig::GetPropertyNames() |
| { |
| static Sequence<OUString> aNames; |
| if(!aNames.getLength()) |
| { |
| const int nCount = 8; |
| aNames.realloc(nCount); |
| static const char* aPropNames[] = |
| { |
| "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 |
| }; |
| 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--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| SwRevisionConfig::SwRevisionConfig() : |
| ConfigItem(C2U("Office.Writer/Revision"), |
| CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE) |
| { |
| 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--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| SwRevisionConfig::~SwRevisionConfig() |
| { |
| } |
| /*-- 10.10.00 16:22:56--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| sal_Int32 lcl_ConvertAttrToCfg(const AuthorCharAttr& rAttr) |
| { |
| sal_Int32 nRet = 0; |
| switch(rAttr.nItemId) |
| { |
| case SID_ATTR_CHAR_WEIGHT: nRet = 1; break; |
| case SID_ATTR_CHAR_POSTURE: nRet = 2; break; |
| case SID_ATTR_CHAR_UNDERLINE: nRet = UNDERLINE_SINGLE == rAttr.nAttr ? 3 : 4; break; |
| case SID_ATTR_CHAR_STRIKEOUT: nRet = 3; break; |
| case SID_ATTR_CHAR_CASEMAP: |
| { |
| switch(rAttr.nAttr) |
| { |
| case SVX_CASEMAP_VERSALIEN : nRet = 5;break; |
| case SVX_CASEMAP_GEMEINE : nRet = 6;break; |
| case SVX_CASEMAP_KAPITAELCHEN: nRet = 7;break; |
| case SVX_CASEMAP_TITEL : nRet = 8;break; |
| } |
| } |
| break; |
| case SID_ATTR_BRUSH : nRet = 9; break; |
| } |
| return nRet; |
| } |
| //----------------------------------------------------------------------------- |
| void SwRevisionConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} |
| |
| void SwRevisionConfig::Commit() |
| { |
| const Sequence<OUString>& aNames = GetPropertyNames(); |
| Sequence<Any> aValues(aNames.getLength()); |
| Any* pValues = aValues.getArray(); |
| |
| for(int nProp = 0; nProp < aNames.getLength(); nProp++) |
| { |
| sal_Int32 nVal = -1; |
| switch(nProp) |
| { |
| case 0 : nVal = lcl_ConvertAttrToCfg(aInsertAttr); break; |
| case 1 : nVal = aInsertAttr.nColor ; break; |
| case 2 : nVal = lcl_ConvertAttrToCfg(aDeletedAttr); break; |
| case 3 : nVal = aDeletedAttr.nColor ; break; |
| case 4 : nVal = lcl_ConvertAttrToCfg(aFormatAttr); break; |
| case 5 : nVal = aFormatAttr.nColor ; break; |
| case 6 : nVal = nMarkAlign ; break; |
| case 7 : nVal = aMarkColor.GetColor(); break; |
| } |
| pValues[nProp] <<= nVal; |
| } |
| PutProperties(aNames, aValues); |
| } |
| /*-- 10.10.00 16:22:56--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| void lcl_ConvertCfgToAttr(sal_Int32 nVal, AuthorCharAttr& rAttr, sal_Bool bDelete = sal_False) |
| { |
| rAttr.nItemId = rAttr.nAttr = 0; |
| switch(nVal) |
| { |
| case 1: rAttr.nItemId = SID_ATTR_CHAR_WEIGHT; rAttr.nAttr = WEIGHT_BOLD ; break; |
| case 2: rAttr.nItemId = SID_ATTR_CHAR_POSTURE; rAttr.nAttr = ITALIC_NORMAL ; break; |
| case 3: if(bDelete) |
| { |
| rAttr.nItemId = SID_ATTR_CHAR_STRIKEOUT; |
| rAttr.nAttr = STRIKEOUT_SINGLE; |
| } |
| else |
| { |
| rAttr.nItemId = SID_ATTR_CHAR_UNDERLINE; |
| rAttr.nAttr = UNDERLINE_SINGLE; |
| } |
| break; |
| case 4: rAttr.nItemId = SID_ATTR_CHAR_UNDERLINE;rAttr.nAttr = UNDERLINE_DOUBLE ; break; |
| case 5: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_VERSALIEN ; break; |
| case 6: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_GEMEINE ; break; |
| case 7: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_KAPITAELCHEN ; break; |
| case 8: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_TITEL ; break; |
| case 9: rAttr.nItemId = SID_ATTR_BRUSH; break; |
| } |
| } |
| void SwRevisionConfig::Load() |
| { |
| const Sequence<OUString>& aNames = GetPropertyNames(); |
| Sequence<Any> aValues = GetProperties(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 nVal = 0; |
| pValues[nProp] >>= nVal; |
| switch(nProp) |
| { |
| case 0 : lcl_ConvertCfgToAttr(nVal, aInsertAttr); break; |
| case 1 : aInsertAttr.nColor = nVal; break; |
| case 2 : lcl_ConvertCfgToAttr(nVal, aDeletedAttr, sal_True); break; |
| case 3 : aDeletedAttr.nColor = nVal; break; |
| case 4 : lcl_ConvertCfgToAttr(nVal, aFormatAttr); break; |
| case 5 : aFormatAttr.nColor = nVal; break; |
| case 6 : nMarkAlign = sal::static_int_cast< sal_uInt16, sal_Int32>(nVal); break; |
| case 7 : aMarkColor.SetColor(nVal); break; |
| } |
| } |
| } |
| } |
| } |
| /* -----------------------------10.10.00 16:22-------------------------------- |
| |
| ---------------------------------------------------------------------------*/ |
| enum InsertConfigProp |
| { |
| INS_PROP_TABLE_HEADER = 0, |
| INS_PROP_TABLE_REPEATHEADER, // 1 |
| INS_PROP_TABLE_BORDER, // 2 |
| INS_PROP_TABLE_SPLIT, // 3 from here not in writer/web |
| INS_PROP_CAP_AUTOMATIC, // 4 |
| INS_PROP_CAP_CAPTIONORDERNUMBERINGFIRST, // 5 |
| INS_PROP_CAP_OBJECT_TABLE_ENABLE, // 6 |
| INS_PROP_CAP_OBJECT_TABLE_CATEGORY, // 7 |
| INS_PROP_CAP_OBJECT_TABLE_NUMBERING, // 8 |
| INS_PROP_CAP_OBJECT_TABLE_NUMBERINGSEPARATOR, // 9 |
| INS_PROP_CAP_OBJECT_TABLE_CAPTIONTEXT, //10 |
| INS_PROP_CAP_OBJECT_TABLE_DELIMITER, //11 |
| INS_PROP_CAP_OBJECT_TABLE_LEVEL, //12 |
| INS_PROP_CAP_OBJECT_TABLE_POSITION, //13 |
| INS_PROP_CAP_OBJECT_TABLE_CHARACTERSTYLE, //14 |
| INS_PROP_CAP_OBJECT_FRAME_ENABLE, //15 |
| INS_PROP_CAP_OBJECT_FRAME_CATEGORY, //16 |
| INS_PROP_CAP_OBJECT_FRAME_NUMBERING, //17 |
| INS_PROP_CAP_OBJECT_FRAME_NUMBERINGSEPARATOR, //18 |
| INS_PROP_CAP_OBJECT_FRAME_CAPTIONTEXT, //19 |
| INS_PROP_CAP_OBJECT_FRAME_DELIMITER, //20 |
| INS_PROP_CAP_OBJECT_FRAME_LEVEL, //21 |
| INS_PROP_CAP_OBJECT_FRAME_POSITION, //22 |
| INS_PROP_CAP_OBJECT_FRAME_CHARACTERSTYLE, //23 |
| INS_PROP_CAP_OBJECT_GRAPHIC_ENABLE, //24 |
| INS_PROP_CAP_OBJECT_GRAPHIC_CATEGORY, //25 |
| INS_PROP_CAP_OBJECT_GRAPHIC_NUMBERING, //26 |
| INS_PROP_CAP_OBJECT_GRAPHIC_NUMBERINGSEPARATOR, //27 |
| INS_PROP_CAP_OBJECT_GRAPHIC_CAPTIONTEXT, //28 |
| INS_PROP_CAP_OBJECT_GRAPHIC_DELIMITER, //29 |
| INS_PROP_CAP_OBJECT_GRAPHIC_LEVEL, //30 |
| INS_PROP_CAP_OBJECT_GRAPHIC_POSITION, //31 |
| INS_PROP_CAP_OBJECT_GRAPHIC_CHARACTERSTYLE, //32 |
| INS_PROP_CAP_OBJECT_GRAPHIC_APPLYATTRIBUTES, //33 |
| INS_PROP_CAP_OBJECT_CALC_ENABLE, //34 |
| INS_PROP_CAP_OBJECT_CALC_CATEGORY, //35 |
| INS_PROP_CAP_OBJECT_CALC_NUMBERING, //36 |
| INS_PROP_CAP_OBJECT_CALC_NUMBERINGSEPARATOR, //37 |
| INS_PROP_CAP_OBJECT_CALC_CAPTIONTEXT, //38 |
| INS_PROP_CAP_OBJECT_CALC_DELIMITER, //39 |
| INS_PROP_CAP_OBJECT_CALC_LEVEL, //40 |
| INS_PROP_CAP_OBJECT_CALC_POSITION, //41 |
| INS_PROP_CAP_OBJECT_CALC_CHARACTERSTYLE, //42 |
| INS_PROP_CAP_OBJECT_CALC_APPLYATTRIBUTES, //43 |
| INS_PROP_CAP_OBJECT_IMPRESS_ENABLE, //44 |
| INS_PROP_CAP_OBJECT_IMPRESS_CATEGORY, //45 |
| INS_PROP_CAP_OBJECT_IMPRESS_NUMBERING, //46 |
| INS_PROP_CAP_OBJECT_IMPRESS_NUMBERINGSEPARATOR, //47 |
| INS_PROP_CAP_OBJECT_IMPRESS_CAPTIONTEXT, //48 |
| INS_PROP_CAP_OBJECT_IMPRESS_DELIMITER, //49 |
| INS_PROP_CAP_OBJECT_IMPRESS_LEVEL, //50 |
| INS_PROP_CAP_OBJECT_IMPRESS_POSITION, //51 |
| INS_PROP_CAP_OBJECT_IMPRESS_CHARACTERSTYLE, //52 |
| INS_PROP_CAP_OBJECT_IMPRESS_APPLYATTRIBUTES, //53 |
| INS_PROP_CAP_OBJECT_CHART_ENABLE, //54 |
| INS_PROP_CAP_OBJECT_CHART_CATEGORY, //55 |
| INS_PROP_CAP_OBJECT_CHART_NUMBERING, //56 |
| INS_PROP_CAP_OBJECT_CHART_NUMBERINGSEPARATOR, //57 |
| INS_PROP_CAP_OBJECT_CHART_CAPTIONTEXT, //58 |
| INS_PROP_CAP_OBJECT_CHART_DELIMITER, //59 |
| INS_PROP_CAP_OBJECT_CHART_LEVEL, //60 |
| INS_PROP_CAP_OBJECT_CHART_POSITION, //61 |
| INS_PROP_CAP_OBJECT_CHART_CHARACTERSTYLE, //62 |
| INS_PROP_CAP_OBJECT_CHART_APPLYATTRIBUTES, //63 |
| INS_PROP_CAP_OBJECT_FORMULA_ENABLE, //64 |
| INS_PROP_CAP_OBJECT_FORMULA_CATEGORY, //65 |
| INS_PROP_CAP_OBJECT_FORMULA_NUMBERING, //66 |
| INS_PROP_CAP_OBJECT_FORMULA_NUMBERINGSEPARATOR, //67 |
| INS_PROP_CAP_OBJECT_FORMULA_CAPTIONTEXT, //68 |
| INS_PROP_CAP_OBJECT_FORMULA_DELIMITER, //69 |
| INS_PROP_CAP_OBJECT_FORMULA_LEVEL, //70 |
| INS_PROP_CAP_OBJECT_FORMULA_POSITION, //71 |
| INS_PROP_CAP_OBJECT_FORMULA_CHARACTERSTYLE, //72 |
| INS_PROP_CAP_OBJECT_FORMULA_APPLYATTRIBUTES, //73 |
| INS_PROP_CAP_OBJECT_DRAW_ENABLE, //74 |
| INS_PROP_CAP_OBJECT_DRAW_CATEGORY, //75 |
| INS_PROP_CAP_OBJECT_DRAW_NUMBERING, //76 |
| INS_PROP_CAP_OBJECT_DRAW_NUMBERINGSEPARATOR, //77 |
| INS_PROP_CAP_OBJECT_DRAW_CAPTIONTEXT, //78 |
| INS_PROP_CAP_OBJECT_DRAW_DELIMITER, //79 |
| INS_PROP_CAP_OBJECT_DRAW_LEVEL, //80 |
| INS_PROP_CAP_OBJECT_DRAW_POSITION, //81 |
| INS_PROP_CAP_OBJECT_DRAW_CHARACTERSTYLE, //82 |
| INS_PROP_CAP_OBJECT_DRAW_APPLYATTRIBUTES, //83 |
| INS_PROP_CAP_OBJECT_OLEMISC_ENABLE, //84 |
| INS_PROP_CAP_OBJECT_OLEMISC_CATEGORY, //85 |
| INS_PROP_CAP_OBJECT_OLEMISC_NUMBERING, //86 |
| INS_PROP_CAP_OBJECT_OLEMISC_NUMBERINGSEPARATOR, //87 |
| INS_PROP_CAP_OBJECT_OLEMISC_CAPTIONTEXT, //88 |
| INS_PROP_CAP_OBJECT_OLEMISC_DELIMITER, //89 |
| INS_PROP_CAP_OBJECT_OLEMISC_LEVEL, //90 |
| INS_PROP_CAP_OBJECT_OLEMISC_POSITION, //91 |
| INS_PROP_CAP_OBJECT_OLEMISC_CHARACTERSTYLE, //92 |
| INS_PROP_CAP_OBJECT_OLEMISC_APPLYATTRIBUTES //93 |
| }; |
| const Sequence<OUString>& SwInsertConfig::GetPropertyNames() |
| { |
| static Sequence<OUString> aNames; |
| static Sequence<OUString> aWebNames; |
| if(!aNames.getLength()) |
| { |
| 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/CaptionOrderNumberingFirst", // 5 |
| "Caption/WriterObject/Table/Enable", // 6 |
| "Caption/WriterObject/Table/Settings/Category", // 7 |
| "Caption/WriterObject/Table/Settings/Numbering", // 8 |
| "Caption/WriterObject/Table/Settings/NumberingSeparator", // 9 |
| "Caption/WriterObject/Table/Settings/CaptionText", //10 |
| "Caption/WriterObject/Table/Settings/Delimiter", //11 |
| "Caption/WriterObject/Table/Settings/Level", //12 |
| "Caption/WriterObject/Table/Settings/Position", //13 |
| "Caption/WriterObject/Table/Settings/CharacterStyle", //14 |
| "Caption/WriterObject/Frame/Enable", //15 |
| "Caption/WriterObject/Frame/Settings/Category", //16 |
| "Caption/WriterObject/Frame/Settings/Numbering", //17 |
| "Caption/WriterObject/Frame/Settings/NumberingSeparator", //18 |
| "Caption/WriterObject/Frame/Settings/CaptionText", //19 |
| "Caption/WriterObject/Frame/Settings/Delimiter", //20 |
| "Caption/WriterObject/Frame/Settings/Level", //21 |
| "Caption/WriterObject/Frame/Settings/Position", //22 |
| "Caption/WriterObject/Frame/Settings/CharacterStyle", //23 |
| "Caption/WriterObject/Graphic/Enable", //24 |
| "Caption/WriterObject/Graphic/Settings/Category", //25 |
| "Caption/WriterObject/Graphic/Settings/Numbering", //26 |
| "Caption/WriterObject/Graphic/Settings/NumberingSeparator", //27 |
| "Caption/WriterObject/Graphic/Settings/CaptionText", //28 |
| "Caption/WriterObject/Graphic/Settings/Delimiter", //29 |
| "Caption/WriterObject/Graphic/Settings/Level", //30 |
| "Caption/WriterObject/Graphic/Settings/Position", //31 |
| "Caption/WriterObject/Graphic/Settings/CharacterStyle", //32 |
| "Caption/WriterObject/Graphic/Settings/ApplyAttributes", //33 |
| "Caption/OfficeObject/Calc/Enable", //34 |
| "Caption/OfficeObject/Calc/Settings/Category", //35 |
| "Caption/OfficeObject/Calc/Settings/Numbering", //36 |
| "Caption/OfficeObject/Calc/Settings/NumberingSeparator", //37 |
| "Caption/OfficeObject/Calc/Settings/CaptionText", //38 |
| "Caption/OfficeObject/Calc/Settings/Delimiter", //39 |
| "Caption/OfficeObject/Calc/Settings/Level", //40 |
| "Caption/OfficeObject/Calc/Settings/Position", //41 |
| "Caption/OfficeObject/Calc/Settings/CharacterStyle", //42 |
| "Caption/OfficeObject/Calc/Settings/ApplyAttributes", //43 |
| "Caption/OfficeObject/Impress/Enable", //44 |
| "Caption/OfficeObject/Impress/Settings/Category", //45 |
| "Caption/OfficeObject/Impress/Settings/Numbering", //46 |
| "Caption/OfficeObject/Impress/Settings/NumberingSeparator", //47 |
| "Caption/OfficeObject/Impress/Settings/CaptionText", //48 |
| "Caption/OfficeObject/Impress/Settings/Delimiter", //49 |
| "Caption/OfficeObject/Impress/Settings/Level", //50 |
| "Caption/OfficeObject/Impress/Settings/Position", //51 |
| "Caption/OfficeObject/Impress/Settings/CharacterStyle", //52 |
| "Caption/OfficeObject/Impress/Settings/ApplyAttributes", //53 |
| "Caption/OfficeObject/Chart/Enable", //54 |
| "Caption/OfficeObject/Chart/Settings/Category", //55 |
| "Caption/OfficeObject/Chart/Settings/Numbering", //56 |
| "Caption/OfficeObject/Chart/Settings/NumberingSeparator", //57 |
| "Caption/OfficeObject/Chart/Settings/CaptionText", //58 |
| "Caption/OfficeObject/Chart/Settings/Delimiter", //59 |
| "Caption/OfficeObject/Chart/Settings/Level", //60 |
| "Caption/OfficeObject/Chart/Settings/Position", //61 |
| "Caption/OfficeObject/Chart/Settings/CharacterStyle", //62 |
| "Caption/OfficeObject/Chart/Settings/ApplyAttributes", //63 |
| "Caption/OfficeObject/Formula/Enable", //64 |
| "Caption/OfficeObject/Formula/Settings/Category", //65 |
| "Caption/OfficeObject/Formula/Settings/Numbering", //66 |
| "Caption/OfficeObject/Formula/Settings/NumberingSeparator", //67 |
| "Caption/OfficeObject/Formula/Settings/CaptionText", //68 |
| "Caption/OfficeObject/Formula/Settings/Delimiter", //69 |
| "Caption/OfficeObject/Formula/Settings/Level", //70 |
| "Caption/OfficeObject/Formula/Settings/Position", //71 |
| "Caption/OfficeObject/Formula/Settings/CharacterStyle", //72 |
| "Caption/OfficeObject/Formula/Settings/ApplyAttributes", //73 |
| "Caption/OfficeObject/Draw/Enable", //74 |
| "Caption/OfficeObject/Draw/Settings/Category", //75 |
| "Caption/OfficeObject/Draw/Settings/Numbering", //76 |
| "Caption/OfficeObject/Draw/Settings/NumberingSeparator", //77 |
| "Caption/OfficeObject/Draw/Settings/CaptionText", //78 |
| "Caption/OfficeObject/Draw/Settings/Delimiter", //79 |
| "Caption/OfficeObject/Draw/Settings/Level", //80 |
| "Caption/OfficeObject/Draw/Settings/Position", //81 |
| "Caption/OfficeObject/Draw/Settings/CharacterStyle", //82 |
| "Caption/OfficeObject/Draw/Settings/ApplyAttributes", //83 |
| "Caption/OfficeObject/OLEMisc/Enable", //84 |
| "Caption/OfficeObject/OLEMisc/Settings/Category", //85 |
| "Caption/OfficeObject/OLEMisc/Settings/Numbering", //86 |
| "Caption/OfficeObject/OLEMisc/Settings/NumberingSeparator", //87 |
| "Caption/OfficeObject/OLEMisc/Settings/CaptionText", //88 |
| "Caption/OfficeObject/OLEMisc/Settings/Delimiter", //89 |
| "Caption/OfficeObject/OLEMisc/Settings/Level", //90 |
| "Caption/OfficeObject/OLEMisc/Settings/Position", //91 |
| "Caption/OfficeObject/OLEMisc/Settings/CharacterStyle", //92 |
| "Caption/OfficeObject/OLEMisc/Settings/ApplyAttributes" //93 |
| }; |
| const int nCount = INS_PROP_CAP_OBJECT_OLEMISC_APPLYATTRIBUTES + 1; |
| const int nWebCount = INS_PROP_TABLE_BORDER + 1; |
| aNames.realloc(nCount); |
| aWebNames.realloc(nWebCount); |
| OUString* pNames = aNames.getArray(); |
| OUString* pWebNames = aWebNames.getArray(); |
| int i; |
| for(i = 0; i < nCount; i++) |
| pNames[i] = C2U(aPropNames[i]); |
| for(i = 0; i < nWebCount; i++) |
| pWebNames[i] = C2U(aPropNames[i]); |
| } |
| return bIsWeb ? aWebNames : aNames; |
| } |
| /*-- 10.10.00 16:22:22--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| SwInsertConfig::SwInsertConfig(sal_Bool bWeb) : |
| ConfigItem(bWeb ? C2U("Office.WriterWeb/Insert") : C2U("Office.Writer/Insert"), |
| CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE), |
| pCapOptions(0), |
| pOLEMiscOpt(0), |
| bInsWithCaption( sal_False ), |
| bCaptionOrderNumberingFirst( sal_False ), |
| aInsTblOpts(0,0), |
| bIsWeb(bWeb) |
| { |
| 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_CHART ] = SvGlobalName(SO3_SCH_CLASSID); |
| if(!bIsWeb) |
| pCapOptions = new InsCaptionOptArr; |
| |
| Load(); |
| } |
| /*-- 10.10.00 16:22:23--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| SwInsertConfig::~SwInsertConfig() |
| { |
| delete pCapOptions; |
| delete pOLEMiscOpt; |
| } |
| /*-- 10.10.00 16:22:56--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| void lcl_WriteOpt(const InsCaptionOpt& rOpt, Any* pValues, sal_Int32 nProp, sal_Int32 nOffset) |
| { |
| switch(nOffset) |
| { |
| case 0: |
| { |
| sal_Bool bTemp = rOpt.UseCaption(); |
| pValues[nProp].setValue(&bTemp, ::getBooleanCppuType()); |
| } |
| break;//Enable |
| case 1: pValues[nProp] <<= OUString(rOpt.GetCategory()); break;//Category |
| case 2: pValues[nProp] <<= (sal_Int32)rOpt.GetNumType(); break;//Numbering", |
| case 3: pValues[nProp] <<= rOpt.GetNumSeparator(); break;//NumberingSeparator", |
| case 4: pValues[nProp] <<= OUString(rOpt.GetCaption()); break;//CaptionText", |
| case 5: pValues[nProp] <<= OUString(rOpt.GetSeparator());break;//Delimiter", |
| case 6: pValues[nProp] <<= (sal_Int32)rOpt.GetLevel(); break;//Level", |
| case 7: pValues[nProp] <<= (sal_Int32)rOpt.GetPos(); break;//Position", |
| case 8: pValues[nProp] <<= (::rtl::OUString&)rOpt.GetCharacterStyle(); break; //CharacterStyle |
| case 9: pValues[nProp] <<= rOpt.CopyAttributes(); break; //ApplyAttributes |
| } |
| } |
| //----------------------------------------------------------------------------- |
| void SwInsertConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} |
| |
| void SwInsertConfig::Commit() |
| { |
| const Sequence<OUString>& aNames = GetPropertyNames(); |
| Sequence<Any> aValues(aNames.getLength()); |
| Any* pValues = aValues.getArray(); |
| |
| const Type& rType = ::getBooleanCppuType(); |
| for(int nProp = 0; nProp < aNames.getLength(); nProp++) |
| { |
| 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* pOLEFormulaOpt = 0; |
| const 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 ]); |
| } |
| switch(nProp) |
| { |
| case INS_PROP_TABLE_HEADER: |
| { |
| sal_Bool bVal = 0 !=(aInsTblOpts.mnInsMode & tabopts::HEADLINE); pValues[nProp].setValue(&bVal, rType); |
| } |
| break;//"Table/Header", |
| case INS_PROP_TABLE_REPEATHEADER: |
| { |
| sal_Bool bVal = (aInsTblOpts.mnRowsToRepeat>0); pValues[nProp].setValue(&bVal, rType); |
| } |
| break;//"Table/RepeatHeader", |
| case INS_PROP_TABLE_BORDER: |
| { |
| sal_Bool bVal = 0 !=(aInsTblOpts.mnInsMode & tabopts::DEFAULT_BORDER ); pValues[nProp].setValue(&bVal, rType); |
| } |
| break;//"Table/Border", |
| case INS_PROP_TABLE_SPLIT: |
| { |
| sal_Bool bVal = 0 !=(aInsTblOpts.mnInsMode & tabopts::SPLIT_LAYOUT); pValues[nProp].setValue(&bVal, rType); |
| } |
| break;//"Table/Split", |
| case INS_PROP_CAP_AUTOMATIC: pValues[nProp].setValue(&bInsWithCaption, rType);break;//"Caption/Automatic", |
| case INS_PROP_CAP_CAPTIONORDERNUMBERINGFIRST: |
| pValues[nProp] <<= bCaptionOrderNumberingFirst; |
| break;//"Caption/CaptionOrderNumberingFirst" |
| |
| case INS_PROP_CAP_OBJECT_TABLE_ENABLE: |
| case INS_PROP_CAP_OBJECT_TABLE_CATEGORY: |
| case INS_PROP_CAP_OBJECT_TABLE_NUMBERING: |
| case INS_PROP_CAP_OBJECT_TABLE_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_TABLE_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_TABLE_DELIMITER: |
| case INS_PROP_CAP_OBJECT_TABLE_LEVEL: |
| case INS_PROP_CAP_OBJECT_TABLE_POSITION: |
| case INS_PROP_CAP_OBJECT_TABLE_CHARACTERSTYLE: |
| if(pWriterTableOpt) |
| lcl_WriteOpt(*pWriterTableOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_TABLE_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_FRAME_ENABLE: |
| case INS_PROP_CAP_OBJECT_FRAME_CATEGORY: |
| case INS_PROP_CAP_OBJECT_FRAME_NUMBERING: |
| case INS_PROP_CAP_OBJECT_FRAME_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_FRAME_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_FRAME_DELIMITER: |
| case INS_PROP_CAP_OBJECT_FRAME_LEVEL: |
| case INS_PROP_CAP_OBJECT_FRAME_POSITION: |
| case INS_PROP_CAP_OBJECT_FRAME_CHARACTERSTYLE: |
| if(pWriterFrameOpt) |
| lcl_WriteOpt(*pWriterFrameOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_FRAME_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_GRAPHIC_ENABLE: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_CATEGORY: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_NUMBERING: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_DELIMITER: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_LEVEL: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_POSITION: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_APPLYATTRIBUTES: |
| if(pWriterGraphicOpt) |
| lcl_WriteOpt(*pWriterGraphicOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_GRAPHIC_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_CALC_ENABLE: |
| case INS_PROP_CAP_OBJECT_CALC_CATEGORY: |
| case INS_PROP_CAP_OBJECT_CALC_NUMBERING: |
| case INS_PROP_CAP_OBJECT_CALC_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_CALC_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_CALC_DELIMITER: |
| case INS_PROP_CAP_OBJECT_CALC_LEVEL: |
| case INS_PROP_CAP_OBJECT_CALC_POSITION: |
| case INS_PROP_CAP_OBJECT_CALC_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_CALC_APPLYATTRIBUTES: |
| if(pOLECalcOpt) |
| lcl_WriteOpt(*pOLECalcOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_CALC_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_IMPRESS_ENABLE: |
| case INS_PROP_CAP_OBJECT_IMPRESS_CATEGORY: |
| case INS_PROP_CAP_OBJECT_IMPRESS_NUMBERING: |
| case INS_PROP_CAP_OBJECT_IMPRESS_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_IMPRESS_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_IMPRESS_DELIMITER: |
| case INS_PROP_CAP_OBJECT_IMPRESS_LEVEL: |
| case INS_PROP_CAP_OBJECT_IMPRESS_POSITION: |
| case INS_PROP_CAP_OBJECT_IMPRESS_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_IMPRESS_APPLYATTRIBUTES: |
| if(pOLEImpressOpt) |
| lcl_WriteOpt(*pOLEImpressOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_IMPRESS_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_CHART_ENABLE: |
| case INS_PROP_CAP_OBJECT_CHART_CATEGORY: |
| case INS_PROP_CAP_OBJECT_CHART_NUMBERING: |
| case INS_PROP_CAP_OBJECT_CHART_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_CHART_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_CHART_DELIMITER: |
| case INS_PROP_CAP_OBJECT_CHART_LEVEL: |
| case INS_PROP_CAP_OBJECT_CHART_POSITION: |
| case INS_PROP_CAP_OBJECT_CHART_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_CHART_APPLYATTRIBUTES: |
| if(pOLEChartOpt) |
| lcl_WriteOpt(*pOLEChartOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_CHART_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_FORMULA_ENABLE: |
| case INS_PROP_CAP_OBJECT_FORMULA_CATEGORY: |
| case INS_PROP_CAP_OBJECT_FORMULA_NUMBERING: |
| case INS_PROP_CAP_OBJECT_FORMULA_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_FORMULA_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_FORMULA_DELIMITER: |
| case INS_PROP_CAP_OBJECT_FORMULA_LEVEL: |
| case INS_PROP_CAP_OBJECT_FORMULA_POSITION: |
| case INS_PROP_CAP_OBJECT_FORMULA_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_FORMULA_APPLYATTRIBUTES: |
| if(pOLEFormulaOpt) |
| lcl_WriteOpt(*pOLEFormulaOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_FORMULA_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_DRAW_ENABLE: |
| case INS_PROP_CAP_OBJECT_DRAW_CATEGORY: |
| case INS_PROP_CAP_OBJECT_DRAW_NUMBERING: |
| case INS_PROP_CAP_OBJECT_DRAW_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_DRAW_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_DRAW_DELIMITER: |
| case INS_PROP_CAP_OBJECT_DRAW_LEVEL: |
| case INS_PROP_CAP_OBJECT_DRAW_POSITION: |
| case INS_PROP_CAP_OBJECT_DRAW_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_DRAW_APPLYATTRIBUTES: |
| if(pOLEDrawOpt) |
| lcl_WriteOpt(*pOLEDrawOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_DRAW_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_OLEMISC_ENABLE: |
| case INS_PROP_CAP_OBJECT_OLEMISC_CATEGORY: |
| case INS_PROP_CAP_OBJECT_OLEMISC_NUMBERING: |
| case INS_PROP_CAP_OBJECT_OLEMISC_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_OLEMISC_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_OLEMISC_DELIMITER: |
| case INS_PROP_CAP_OBJECT_OLEMISC_LEVEL: |
| case INS_PROP_CAP_OBJECT_OLEMISC_POSITION: |
| case INS_PROP_CAP_OBJECT_OLEMISC_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_OLEMISC_APPLYATTRIBUTES: |
| if(pOLEMiscOpt) |
| lcl_WriteOpt(*pOLEMiscOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_OLEMISC_ENABLE); |
| break; |
| |
| } |
| } |
| PutProperties(aNames, aValues); |
| } |
| /*-- 10.10.00 16:22:56--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| void lcl_ReadOpt(InsCaptionOpt& rOpt, const Any* pValues, sal_Int32 nProp, sal_Int32 nOffset) |
| { |
| switch(nOffset) |
| { |
| case 0: |
| rOpt.UseCaption() = *(sal_Bool*)pValues[nProp].getValue(); |
| break;//Enable |
| case 1: |
| { |
| OUString sTemp; pValues[nProp] >>= sTemp; |
| rOpt.SetCategory(sTemp); |
| } |
| break;//Category |
| case 2: |
| { |
| sal_Int32 nTemp = 0; |
| pValues[nProp] >>= nTemp; |
| rOpt.SetNumType(sal::static_int_cast< sal_uInt16, sal_Int32>(nTemp)); |
| } |
| break;//Numbering", |
| case 3: |
| { |
| OUString sTemp; pValues[nProp] >>= sTemp; |
| rOpt.SetNumSeparator(sTemp); |
| } |
| break;//NumberingSeparator", |
| case 4: |
| { |
| OUString sTemp; pValues[nProp] >>= sTemp; |
| rOpt.SetCaption(sTemp); |
| } |
| break;//CaptionText", |
| case 5: |
| { |
| OUString sTemp; |
| if(pValues[nProp] >>= sTemp) |
| rOpt.SetSeparator(sTemp); |
| } |
| break;//Delimiter", |
| case 6: |
| { |
| sal_Int32 nTemp = 0; |
| pValues[nProp] >>= nTemp; |
| rOpt.SetLevel(sal::static_int_cast< sal_uInt16, sal_Int32>(nTemp)); |
| } |
| break;//Level", |
| case 7: |
| { |
| sal_Int32 nTemp = 0; |
| pValues[nProp] >>= nTemp; |
| rOpt.SetPos(sal::static_int_cast< sal_uInt16, sal_Int32>(nTemp)); |
| } |
| break;//Position", |
| case 8 : //CharacterStyle |
| { |
| ::rtl::OUString sTemp; pValues[nProp] >>= sTemp; |
| rOpt.SetCharacterStyle( sTemp ); |
| } |
| break; |
| case 9 : //ApplyAttributes |
| { |
| pValues[nProp] >>= rOpt.CopyAttributes(); |
| } |
| break; |
| } |
| } |
| //----------------------------------------------------------------------------- |
| void SwInsertConfig::Load() |
| { |
| const Sequence<OUString>& aNames = GetPropertyNames(); |
| Sequence<Any> aValues = GetProperties(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* 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 ]); |
| } |
| else if(!bIsWeb) |
| return; |
| |
| sal_uInt16 nInsTblFlags = 0; |
| for(int nProp = 0; nProp < aNames.getLength(); nProp++) |
| { |
| if(pValues[nProp].hasValue()) |
| { |
| sal_Bool bBool = nProp < INS_PROP_CAP_OBJECT_TABLE_ENABLE ? *(sal_Bool*)pValues[nProp].getValue() : sal_False; |
| switch(nProp) |
| { |
| case INS_PROP_TABLE_HEADER: |
| { |
| if(bBool) |
| nInsTblFlags|= tabopts::HEADLINE; |
| } |
| break;//"Table/Header", |
| case INS_PROP_TABLE_REPEATHEADER: |
| { |
| aInsTblOpts.mnRowsToRepeat = bBool? 1 : 0; |
| |
| } |
| break;//"Table/RepeatHeader", |
| case INS_PROP_TABLE_BORDER: |
| { |
| if(bBool) |
| nInsTblFlags|= tabopts::DEFAULT_BORDER; |
| } |
| break;//"Table/Border", |
| case INS_PROP_TABLE_SPLIT: |
| { |
| if(bBool) |
| nInsTblFlags|= tabopts::SPLIT_LAYOUT; |
| } |
| break;//"Table/Split", |
| case INS_PROP_CAP_AUTOMATIC: |
| bInsWithCaption = bBool; |
| break; |
| case INS_PROP_CAP_CAPTIONORDERNUMBERINGFIRST: bCaptionOrderNumberingFirst = bBool; break; |
| case INS_PROP_CAP_OBJECT_TABLE_ENABLE: |
| case INS_PROP_CAP_OBJECT_TABLE_CATEGORY: |
| case INS_PROP_CAP_OBJECT_TABLE_NUMBERING: |
| case INS_PROP_CAP_OBJECT_TABLE_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_TABLE_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_TABLE_DELIMITER: |
| case INS_PROP_CAP_OBJECT_TABLE_LEVEL: |
| case INS_PROP_CAP_OBJECT_TABLE_POSITION: |
| case INS_PROP_CAP_OBJECT_TABLE_CHARACTERSTYLE: |
| if(!pWriterTableOpt) |
| { |
| pWriterTableOpt = new InsCaptionOpt(TABLE_CAP); |
| pCapOptions->Insert(pWriterTableOpt); |
| } |
| lcl_ReadOpt(*pWriterTableOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_TABLE_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_FRAME_ENABLE: |
| case INS_PROP_CAP_OBJECT_FRAME_CATEGORY: |
| case INS_PROP_CAP_OBJECT_FRAME_NUMBERING: |
| case INS_PROP_CAP_OBJECT_FRAME_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_FRAME_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_FRAME_DELIMITER: |
| case INS_PROP_CAP_OBJECT_FRAME_LEVEL: |
| case INS_PROP_CAP_OBJECT_FRAME_POSITION: |
| case INS_PROP_CAP_OBJECT_FRAME_CHARACTERSTYLE: |
| if(!pWriterFrameOpt) |
| { |
| pWriterFrameOpt = new InsCaptionOpt(FRAME_CAP); |
| pCapOptions->Insert(pWriterFrameOpt); |
| } |
| lcl_ReadOpt(*pWriterFrameOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_FRAME_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_GRAPHIC_ENABLE: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_CATEGORY: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_NUMBERING: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_DELIMITER: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_LEVEL: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_POSITION: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_GRAPHIC_APPLYATTRIBUTES: |
| if(!pWriterGraphicOpt) |
| { |
| pWriterGraphicOpt = new InsCaptionOpt(GRAPHIC_CAP); |
| pCapOptions->Insert(pWriterGraphicOpt); |
| } |
| lcl_ReadOpt(*pWriterGraphicOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_GRAPHIC_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_CALC_ENABLE: |
| case INS_PROP_CAP_OBJECT_CALC_CATEGORY: |
| case INS_PROP_CAP_OBJECT_CALC_NUMBERING: |
| case INS_PROP_CAP_OBJECT_CALC_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_CALC_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_CALC_DELIMITER: |
| case INS_PROP_CAP_OBJECT_CALC_LEVEL: |
| case INS_PROP_CAP_OBJECT_CALC_POSITION: |
| case INS_PROP_CAP_OBJECT_CALC_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_CALC_APPLYATTRIBUTES: |
| if(!pOLECalcOpt) |
| { |
| pOLECalcOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_CALC]); |
| pCapOptions->Insert(pOLECalcOpt); |
| } |
| lcl_ReadOpt(*pOLECalcOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_CALC_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_IMPRESS_ENABLE: |
| case INS_PROP_CAP_OBJECT_IMPRESS_CATEGORY: |
| case INS_PROP_CAP_OBJECT_IMPRESS_NUMBERING: |
| case INS_PROP_CAP_OBJECT_IMPRESS_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_IMPRESS_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_IMPRESS_DELIMITER: |
| case INS_PROP_CAP_OBJECT_IMPRESS_LEVEL: |
| case INS_PROP_CAP_OBJECT_IMPRESS_POSITION: |
| case INS_PROP_CAP_OBJECT_IMPRESS_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_IMPRESS_APPLYATTRIBUTES: |
| if(!pOLEImpressOpt) |
| { |
| pOLEImpressOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_IMPRESS]); |
| pCapOptions->Insert(pOLEImpressOpt); |
| } |
| lcl_ReadOpt(*pOLEImpressOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_IMPRESS_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_CHART_ENABLE: |
| case INS_PROP_CAP_OBJECT_CHART_CATEGORY: |
| case INS_PROP_CAP_OBJECT_CHART_NUMBERING: |
| case INS_PROP_CAP_OBJECT_CHART_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_CHART_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_CHART_DELIMITER: |
| case INS_PROP_CAP_OBJECT_CHART_LEVEL: |
| case INS_PROP_CAP_OBJECT_CHART_POSITION: |
| case INS_PROP_CAP_OBJECT_CHART_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_CHART_APPLYATTRIBUTES: |
| if(!pOLEChartOpt) |
| { |
| pOLEChartOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_CHART]); |
| pCapOptions->Insert(pOLEChartOpt); |
| } |
| lcl_ReadOpt(*pOLEChartOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_CHART_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_FORMULA_ENABLE: |
| case INS_PROP_CAP_OBJECT_FORMULA_CATEGORY: |
| case INS_PROP_CAP_OBJECT_FORMULA_NUMBERING: |
| case INS_PROP_CAP_OBJECT_FORMULA_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_FORMULA_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_FORMULA_DELIMITER: |
| case INS_PROP_CAP_OBJECT_FORMULA_LEVEL: |
| case INS_PROP_CAP_OBJECT_FORMULA_POSITION: |
| case INS_PROP_CAP_OBJECT_FORMULA_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_FORMULA_APPLYATTRIBUTES: |
| if(!pOLEFormulaOpt) |
| { |
| pOLEFormulaOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_MATH]); |
| pCapOptions->Insert(pOLEFormulaOpt); |
| } |
| lcl_ReadOpt(*pOLEFormulaOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_FORMULA_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_DRAW_ENABLE: |
| case INS_PROP_CAP_OBJECT_DRAW_CATEGORY: |
| case INS_PROP_CAP_OBJECT_DRAW_NUMBERING: |
| case INS_PROP_CAP_OBJECT_DRAW_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_DRAW_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_DRAW_DELIMITER: |
| case INS_PROP_CAP_OBJECT_DRAW_LEVEL: |
| case INS_PROP_CAP_OBJECT_DRAW_POSITION: |
| case INS_PROP_CAP_OBJECT_DRAW_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_DRAW_APPLYATTRIBUTES: |
| if(!pOLEDrawOpt) |
| { |
| pOLEDrawOpt = new InsCaptionOpt(OLE_CAP, &aGlobalNames[GLOB_NAME_DRAW]); |
| pCapOptions->Insert(pOLEDrawOpt); |
| } |
| lcl_ReadOpt(*pOLEDrawOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_DRAW_ENABLE); |
| break; |
| case INS_PROP_CAP_OBJECT_OLEMISC_ENABLE: |
| case INS_PROP_CAP_OBJECT_OLEMISC_CATEGORY: |
| case INS_PROP_CAP_OBJECT_OLEMISC_NUMBERING: |
| case INS_PROP_CAP_OBJECT_OLEMISC_NUMBERINGSEPARATOR: |
| case INS_PROP_CAP_OBJECT_OLEMISC_CAPTIONTEXT: |
| case INS_PROP_CAP_OBJECT_OLEMISC_DELIMITER: |
| case INS_PROP_CAP_OBJECT_OLEMISC_LEVEL: |
| case INS_PROP_CAP_OBJECT_OLEMISC_POSITION: |
| case INS_PROP_CAP_OBJECT_OLEMISC_CHARACTERSTYLE: |
| case INS_PROP_CAP_OBJECT_OLEMISC_APPLYATTRIBUTES: |
| if(!pOLEMiscOpt) |
| { |
| pOLEMiscOpt = new InsCaptionOpt(OLE_CAP); |
| } |
| lcl_ReadOpt(*pOLEMiscOpt, pValues, nProp, nProp - INS_PROP_CAP_OBJECT_OLEMISC_ENABLE); |
| break; |
| } |
| } |
| else if(nProp == INS_PROP_CAP_CAPTIONORDERNUMBERINGFIRST) |
| { |
| //#i61007# initialize caption order, right now only HUNGARIAN seems to need a different order |
| SvtSysLocaleOptions aSysLocaleOptions; |
| OUString sLang = aSysLocaleOptions.GetLocaleConfigString(); |
| bCaptionOrderNumberingFirst = ( sLang.getLength() && sLang.matchAsciiL( "hu", 2 )) ? sal_True : sal_False; |
| } |
| |
| } |
| aInsTblOpts.mnInsMode = nInsTblFlags; |
| } |
| } |
| /* -----------------------------10.10.00 16:22-------------------------------- |
| |
| ---------------------------------------------------------------------------*/ |
| const Sequence<OUString>& SwTableConfig::GetPropertyNames() |
| { |
| const int nCount = 8; |
| static Sequence<OUString> aNames(nCount); |
| 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 |
| }; |
| 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--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| SwTableConfig::SwTableConfig(sal_Bool bWeb) : |
| ConfigItem(bWeb ? C2U("Office.WriterWeb/Table") : C2U("Office.Writer/Table"), |
| CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE) |
| { |
| Load(); |
| } |
| /*-- 10.10.00 16:22:23--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| SwTableConfig::~SwTableConfig() |
| { |
| } |
| /*-- 10.10.00 16:22:56--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| void SwTableConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} |
| |
| void SwTableConfig::Commit() |
| { |
| const Sequence<OUString>& aNames = GetPropertyNames(); |
| Sequence<Any> aValues(aNames.getLength()); |
| Any* pValues = aValues.getArray(); |
| |
| const Type& rType = ::getBooleanCppuType(); |
| for(int nProp = 0; nProp < aNames.getLength(); nProp++) |
| { |
| switch(nProp) |
| { |
| case 0 : pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100_UNSIGNED(nTblHMove); break; //"Shift/Row", |
| case 1 : pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100_UNSIGNED(nTblVMove); break; //"Shift/Column", |
| case 2 : pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100_UNSIGNED(nTblHInsert); break; //"Insert/Row", |
| case 3 : pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100_UNSIGNED(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--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| void SwTableConfig::Load() |
| { |
| const Sequence<OUString>& aNames = GetPropertyNames(); |
| Sequence<Any> aValues = GetProperties(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 = 0; |
| switch(nProp) |
| { |
| case 0 : pValues[nProp] >>= nTemp; nTblHMove = (sal_uInt16)MM100_TO_TWIP(nTemp); break; //"Shift/Row", |
| case 1 : pValues[nProp] >>= nTemp; nTblVMove = (sal_uInt16)MM100_TO_TWIP(nTemp); break; //"Shift/Column", |
| case 2 : pValues[nProp] >>= nTemp; nTblHInsert = (sal_uInt16)MM100_TO_TWIP(nTemp); break; //"Insert/Row", |
| case 3 : pValues[nProp] >>= nTemp; nTblVInsert = (sal_uInt16)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" |
| } |
| } |
| } |
| } |
| } |
| /*-- 18.01.01 17:02:47--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| SwMiscConfig::SwMiscConfig() : |
| ConfigItem(C2U("Office.Writer"), |
| CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE), |
| bDefaultFontsInCurrDocOnly(sal_False), |
| bShowIndexPreview(sal_False), |
| bGrfToGalleryAsLnk(sal_True), |
| bNumAlignSize(sal_True), |
| bSinglePrintJob(sal_False), |
| bIsNameFromColumn(sal_True), |
| bAskForMailMergeInPrint(sal_True), |
| nMailingFormats(0) |
| { |
| Load(); |
| } |
| /*-- 18.01.01 17:02:47--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| SwMiscConfig::~SwMiscConfig() |
| { |
| } |
| /*-- 18.01.01 17:02:47--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| const Sequence<OUString>& SwMiscConfig::GetPropertyNames() |
| { |
| static Sequence<OUString> aNames; |
| if(!aNames.getLength()) |
| { |
| const int nCount = 12; |
| aNames.realloc(nCount); |
| static const char* aPropNames[] = |
| { |
| "Statistics/WordNumber/Delimiter", // 0 |
| "DefaultFont/Document", // 1 |
| "Index/ShowPreview", // 2 |
| "Misc/GraphicToGalleryAsLink", // 3 |
| "Numbering/Graphic/KeepRatio", // 4 |
| "FormLetter/PrintOutput/SinglePrintJobs", // 5 |
| "FormLetter/MailingOutput/Format", // 6 |
| "FormLetter/FileOutput/FileName/FromDatabaseField", // 7 |
| "FormLetter/FileOutput/Path", // 8 |
| "FormLetter/FileOutput/FileName/FromManualSetting", // 9 |
| "FormLetter/FileOutput/FileName/Generation",//10 |
| "FormLetter/PrintOutput/AskForMerge" //11 |
| }; |
| OUString* pNames = aNames.getArray(); |
| for(int i = 0; i < nCount; i++) |
| pNames[i] = C2U(aPropNames[i]); |
| } |
| return aNames; |
| } |
| /*-- 18.01.01 17:02:47--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| void SwMiscConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} |
| |
| void SwMiscConfig::Commit() |
| { |
| const Sequence<OUString>& aNames = GetPropertyNames(); |
| Sequence<Any> aValues(aNames.getLength()); |
| Any* pValues = aValues.getArray(); |
| |
| const Type& rType = ::getBooleanCppuType(); |
| for(int nProp = 0; nProp < aNames.getLength(); nProp++) |
| { |
| switch(nProp) |
| { |
| case 0 : |
| pValues[nProp] <<= OUString( |
| SwModuleOptions::ConvertWordDelimiter(sWordDelimiter, sal_False)); |
| break; |
| case 1 : pValues[nProp].setValue(&bDefaultFontsInCurrDocOnly, rType); break; |
| case 2 : pValues[nProp].setValue(&bShowIndexPreview, rType) ; break; |
| case 3 : pValues[nProp].setValue(&bGrfToGalleryAsLnk, rType); break; |
| case 4 : pValues[nProp].setValue(&bNumAlignSize, rType); break; |
| case 5 : pValues[nProp].setValue(&bSinglePrintJob, rType); break; |
| case 6 : pValues[nProp] <<= nMailingFormats; break; |
| case 7 : pValues[nProp] <<= OUString(sNameFromColumn); break; |
| case 8 : pValues[nProp] <<= OUString(sMailingPath); break; |
| case 9 : pValues[nProp] <<= OUString(sMailName); break; |
| case 10: pValues[nProp].setValue(&bIsNameFromColumn, rType);break; |
| case 11: pValues[nProp] <<= bAskForMailMergeInPrint; break; |
| } |
| } |
| PutProperties(aNames, aValues); |
| } |
| /*-- 18.01.01 17:02:48--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| void SwMiscConfig::Load() |
| { |
| const Sequence<OUString>& aNames = GetPropertyNames(); |
| Sequence<Any> aValues = GetProperties(aNames); |
| const Any* pValues = aValues.getConstArray(); |
| DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed"); |
| if(aValues.getLength() == aNames.getLength()) |
| { |
| OUString sTmp; |
| for(int nProp = 0; nProp < aNames.getLength(); nProp++) |
| { |
| if(pValues[nProp].hasValue()) |
| { |
| switch(nProp) |
| { |
| case 0 : pValues[nProp] >>= sTmp; |
| sWordDelimiter = SwModuleOptions::ConvertWordDelimiter(sTmp, sal_True); |
| break; |
| case 1 : bDefaultFontsInCurrDocOnly = *(sal_Bool*)pValues[nProp].getValue(); break; |
| case 2 : bShowIndexPreview = *(sal_Bool*)pValues[nProp].getValue(); break; |
| case 3 : bGrfToGalleryAsLnk = *(sal_Bool*)pValues[nProp].getValue(); break; |
| case 4 : bNumAlignSize = *(sal_Bool*)pValues[nProp].getValue(); break; |
| case 5 : bSinglePrintJob = *(sal_Bool*)pValues[nProp].getValue(); break; |
| case 6 : pValues[nProp] >>= nMailingFormats; ; break; |
| case 7 : pValues[nProp] >>= sTmp; sNameFromColumn = sTmp; break; |
| case 8 : pValues[nProp] >>= sTmp; sMailingPath = sTmp; break; |
| case 9 : pValues[nProp] >>= sTmp; sMailName = sTmp; break; |
| case 10: bIsNameFromColumn = *(sal_Bool*)pValues[nProp].getValue(); break; |
| case 11: pValues[nProp] >>= bAskForMailMergeInPrint; break; |
| } |
| } |
| } |
| } |
| } |