summaryrefslogtreecommitdiff
path: root/starmath/source/unomodel.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'starmath/source/unomodel.cxx')
-rw-r--r--starmath/source/unomodel.cxx782
1 files changed, 782 insertions, 0 deletions
diff --git a/starmath/source/unomodel.cxx b/starmath/source/unomodel.cxx
new file mode 100644
index 000000000000..cead1651c647
--- /dev/null
+++ b/starmath/source/unomodel.cxx
@@ -0,0 +1,782 @@
+/*************************************************************************
+ *
+ * $RCSfile: unomodel.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:57:27 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#pragma hdrstop
+
+#ifndef _VOS_MUTEX_HXX_
+#include <vos/mutex.hxx>
+#endif
+#ifndef _OSL_MUTEX_HXX_
+#include <osl/mutex.hxx>
+#endif
+#ifndef _SFX_PRINTER_HXX
+#include <sfx2/printer.hxx>
+#endif
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+#ifndef _CTRLTOOL_HXX
+#include <svtools/ctrltool.hxx>
+#endif
+#ifndef _SFX_ITEMPROP_HXX
+#include <svtools/itemprop.hxx>
+#endif
+#ifndef UNOMODEL_HXX
+#include "unomodel.hxx"
+#endif
+#ifndef DOCUMENT_HXX
+#include "document.hxx"
+#endif
+
+using namespace vos;
+using namespace rtl;
+using namespace ::com::sun::star;
+
+#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
+#define MM100_TO_TWIP(MM100) ((MM100) >= 0 ? (((MM100)*72L+63L)/127L) : (((MM100)*72L-63L)/127L))
+
+#define C2U(cChar) rtl::OUString::createFromAscii(cChar)
+
+////////////////////////////////////////
+//
+// class SmModel
+//
+#define PROPERTY_NONE 0
+
+#define FID_FORMULA 0
+#define FID_FONT_NAME_VARIABLES 1
+#define FID_FONT_NAME_FUNCTIONS 2
+#define FID_FONT_NAME_NUMBERS 3
+#define FID_FONT_NAME_TEXT 4
+#define FID_CUSTOM_FONT_NAME_SERIF 5
+#define FID_CUSTOM_FONT_NAME_SANS 6
+#define FID_CUSTOM_FONT_NAME_FIXED 7
+#define FID_CUSTOM_FONT_FIXED_POSTURE 8
+#define FID_CUSTOM_FONT_FIXED_WEIGHT 9
+#define FID_CUSTOM_FONT_SANS_POSTURE 10
+#define FID_CUSTOM_FONT_SANS_WEIGHT 11
+#define FID_CUSTOM_FONT_SERIF_POSTURE 12
+#define FID_CUSTOM_FONT_SERIF_WEIGHT 13
+#define FID_FONT_VARIABLES_POSTURE 14
+#define FID_FONT_VARIABLES_WEIGHT 15
+#define FID_FONT_FUNCTIONS_POSTURE 16
+#define FID_FONT_FUNCTIONS_WEIGHT 17
+#define FID_FONT_NUMBERS_POSTURE 18
+#define FID_FONT_NUMBERS_WEIGHT 19
+#define FID_FONT_TEXT_POSTURE 20
+#define FID_FONT_TEXT_WEIGHT 21
+#define FID_BASE_FONT_HEIGHT 22
+#define FID_RELATIVE_FONT_HEIGHT_TEXT 23
+#define FID_RELATIVE_FONT_HEIGHT_INDICES 24
+#define FID_RELATIVE_FONT_HEIGHT_FUNCTIONS 25
+#define FID_RELATIVE_FONT_HEIGHT_OPERATORS 26
+#define FID_RELATIVE_FONT_HEIGHT_LIMITS 27
+#define FID_IS_TEXT_MODE 28
+#define FID_ALIGNMENT 29
+#define FID_RELATIVE_SPACING 30
+#define FID_RELATIVE_LINE_SPACING 31
+#define FID_RELATIVE_ROOT_SPACING 32
+#define FID_RELATIVE_INDEX_SUPERSCRIPT 33
+#define FID_RELATIVE_INDEX_SUBSCRIPT 34
+#define FID_RELATIVE_FRACTION_NUMERATOR_HEIGHT 35
+#define FID_RELATIVE_FRACTION_DENOMINATOR_DEPTH 36
+#define FID_RELATIVE_FRACTION_BAR_EXCESS_LENGTH 37
+#define FID_RELATIVE_FRACTION_BAR_LINE_WEIGHT 38
+#define FID_RELATIVE_UPPER_LIMIT_DISTANCE 39
+#define FID_RELATIVE_LOWER_LIMIT_DISTANCE 40
+#define FID_RELATIVE_BRACKET_EXCESS_SIZE 41
+#define FID_RELATIVE_BRACKET_DISTANCE 42
+#define FID_IS_SCALE_ALL_BRACKETS 43
+#define FID_RELATIVE_SCALE_BRACKET_EXCESS_SIZE 44
+#define FID_RELATIVE_MATRIX_LINE_SPACING 45
+#define FID_RELATIVE_MATRIX_COLUMN_SPACING 46
+#define FID_RELATIVE_SYMBOL_PRIMARY_HEIGHT 47
+#define FID_RELATIVE_SYMBOL_MINIMUM_HEIGHT 48
+#define FID_RELATIVE_OPERATOR_EXCESS_SIZE 49
+#define FID_RELATIVE_OPERATOR_SPACING 50
+#define FID_LEFT_MARGIN 51
+#define FID_RIGHT_MARGIN 52
+#define FID_TOP_MARGIN 53
+#define FID_BOTTOM_MARGIN 54
+
+#define UNO_NAME_FORMULA "Formula"
+#define UNO_NAME_FONT_NAME_VARIABLES "FontNameVariables"
+#define UNO_NAME_CUSTOM_FONT_VARIABLES_IS_ITALIC "FontVariablesIsItalic"
+#define UNO_NAME_CUSTOM_FONT_VARIABLES_IS_BOLD "FontVariablesIsBold"
+#define UNO_NAME_FONT_NAME_FUNCTIONS "FontNameFunctions"
+#define UNO_NAME_CUSTOM_FONT_FUNCTIONS_IS_ITALIC "FontFunctionsIsItalic"
+#define UNO_NAME_CUSTOM_FONT_FUNCTIONS_IS_BOLD "FontFunctionsIsBold"
+#define UNO_NAME_FONT_NAME_NUMBERS "FontNameNumbers"
+#define UNO_NAME_CUSTOM_FONT_NUMBERS_IS_ITALIC "FontNumbersIsItalic"
+#define UNO_NAME_CUSTOM_FONT_NUMBERS_IS_BOLD "FontNumbersIsBold"
+#define UNO_NAME_FONT_NAME_TEXT "FontNameText"
+#define UNO_NAME_CUSTOM_FONT_TEXT_IS_ITALIC "FontTextIsItalic"
+#define UNO_NAME_CUSTOM_FONT_TEXT_IS_BOLD "FontTextIsBold"
+#define UNO_NAME_CUSTOM_FONT_NAME_SERIF "CustomFontNameSerif"
+#define UNO_NAME_CUSTOM_FONT_SERIF_IS_ITALIC "FontSerifIsItalic"
+#define UNO_NAME_CUSTOM_FONT_SERIF_IS_BOLD "FontSerifIsBold"
+#define UNO_NAME_CUSTOM_FONT_NAME_SANS "CustomFontNameSans"
+#define UNO_NAME_CUSTOM_FONT_SANS_IS_ITALIC "FontSansIsItalic"
+#define UNO_NAME_CUSTOM_FONT_SANS_IS_BOLD "FontSansIsBold"
+#define UNO_NAME_CUSTOM_FONT_NAME_FIXED "CustomFontNameFixed"
+#define UNO_NAME_CUSTOM_FONT_FIXED_IS_ITALIC "FontFixedIsItalic"
+#define UNO_NAME_CUSTOM_FONT_FIXED_IS_BOLD "FontFixedIsBold"
+#define UNO_NAME_BASE_FONT_HEIGHT "BaseFontHeight"
+#define UNO_NAME_RELATIVE_FONT_HEIGHT_TEXT "RelativeFontHeightText"
+#define UNO_NAME_RELATIVE_FONT_HEIGHT_INDICES "RelativeFontHeightIndices"
+#define UNO_NAME_RELATIVE_FONT_HEIGHT_FUNCTIONS "RelativeFontHeightFunctions"
+#define UNO_NAME_RELATIVE_FONT_HEIGHT_OPERATORS "RelativeFontHeightOperators"
+#define UNO_NAME_RELATIVE_FONT_HEIGHT_LIMITS "RelativeFontHeightLimits"
+#define UNO_NAME_IS_TEXT_MODE "IsTextMode"
+#define UNO_NAME_ALIGNMENT "Alignment"
+#define UNO_NAME_RELATIVE_SPACING "RelativeSpacing"
+#define UNO_NAME_RELATIVE_LINE_SPACING "RelativeLineSpacing"
+#define UNO_NAME_RELATIVE_ROOT_SPACING "RelativeRootSpacing"
+#define UNO_NAME_RELATIVE_INDEX_SUPERSCRIPT "RelativeIndexSuperscript"
+#define UNO_NAME_RELATIVE_INDEX_SUBSCRIPT "RelativeIndexSubscript"
+#define UNO_NAME_RELATIVE_FRACTION_NUMERATOR_HEIGHT "RelativeFractionNumeratorHeight"
+#define UNO_NAME_RELATIVE_FRACTION_DENOMINATOR_DEPTH "RelativeFractionDenominatorDepth"
+#define UNO_NAME_RELATIVE_FRACTION_BAR_EXCESS_LENGTH "RelativeFractionBarExcessLength"
+#define UNO_NAME_RELATIVE_FRACTION_BAR_LINE_WEIGHT "RelativeFractionBarLineWeight"
+#define UNO_NAME_RELATIVE_UPPER_LIMIT_DISTANCE "RelativeUpperLimitDistance"
+#define UNO_NAME_RELATIVE_LOWER_LIMIT_DISTANCE "RelativeLowerLimitDistance"
+#define UNO_NAME_RELATIVE_BRACKET_EXCESS_SIZE "RelativeBracketExcessSize"
+#define UNO_NAME_RELATIVE_BRACKET_DISTANCE "RelativeBracketDistance"
+#define UNO_NAME_IS_SCALE_ALL_BRACKETS "IsScaleAllBrackets"
+#define UNO_NAME_RELATIVE_SCALE_BRACKET_EXCESS_SIZE "RelativeScaleBracketExcessSize"
+#define UNO_NAME_RELATIVE_MATRIX_LINE_SPACING "RelativeMatrixLineSpacing"
+#define UNO_NAME_RELATIVE_MATRIX_COLUMN_SPACING "RelativeMatrixColumnSpacing"
+#define UNO_NAME_RELATIVE_SYMBOL_PRIMARY_HEIGHT "RelativeSymbolPrimaryHeight"
+#define UNO_NAME_RELATIVE_SYMBOL_MINIMUM_HEIGHT "RelativeSymbolMinimumHeight"
+#define UNO_NAME_RELATIVE_OPERATOR_EXCESS_SIZE "RelativeOperatorExcessSize"
+#define UNO_NAME_RELATIVE_OPERATOR_SPACING "RelativeOperatorSpacing"
+#define UNO_NAME_LEFT_MARGIN "LeftMargin"
+#define UNO_NAME_RIGHT_MARGIN "RightMargin"
+#define UNO_NAME_TOP_MARGIN "TopMargin"
+#define UNO_NAME_BOTTOM_MARGIN "BottomMargin"
+
+
+//must be sorted by names!
+SfxItemPropertyMap aMathModelMap_Impl[] =
+{
+ { MAP_CHAR_LEN(UNO_NAME_ALIGNMENT ), FID_ALIGNMENT , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, 0},
+ { MAP_CHAR_LEN(UNO_NAME_BASE_FONT_HEIGHT ), FID_BASE_FONT_HEIGHT , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, 0},
+ { MAP_CHAR_LEN(UNO_NAME_BOTTOM_MARGIN ), FID_BOTTOM_MARGIN , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_BOTTOMSPACE },
+
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_NAME_FIXED ), FID_CUSTOM_FONT_NAME_FIXED , &::getCppuType((const OUString*)0), PROPERTY_NONE, FNT_FIXED },
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_FIXED_IS_ITALIC), FID_CUSTOM_FONT_FIXED_POSTURE , &::getBooleanCppuType(), PROPERTY_NONE, FNT_FIXED},
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_FIXED_IS_BOLD), FID_CUSTOM_FONT_FIXED_WEIGHT , &::getBooleanCppuType(), PROPERTY_NONE, FNT_FIXED},
+
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_NAME_SANS ), FID_CUSTOM_FONT_NAME_SANS , &::getCppuType((const OUString*)0), PROPERTY_NONE, FNT_SANS },
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_SANS_IS_ITALIC), FID_CUSTOM_FONT_SANS_POSTURE , &::getBooleanCppuType(), PROPERTY_NONE, FNT_SANS},
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_SANS_IS_BOLD), FID_CUSTOM_FONT_SANS_WEIGHT , &::getBooleanCppuType(), PROPERTY_NONE, FNT_SANS},
+
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_NAME_SERIF ), FID_CUSTOM_FONT_NAME_SERIF , &::getCppuType((const OUString*)0), PROPERTY_NONE, FNT_SERIF },
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_SERIF_IS_ITALIC), FID_CUSTOM_FONT_SERIF_POSTURE , &::getBooleanCppuType(), PROPERTY_NONE, FNT_SERIF},
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_SERIF_IS_BOLD), FID_CUSTOM_FONT_SERIF_WEIGHT , &::getBooleanCppuType(), PROPERTY_NONE, FNT_SERIF},
+
+ { MAP_CHAR_LEN(UNO_NAME_FONT_NAME_FUNCTIONS ), FID_FONT_NAME_FUNCTIONS , &::getCppuType((const OUString*)0), PROPERTY_NONE, FNT_FUNCTION },
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_FUNCTIONS_IS_ITALIC), FID_FONT_FUNCTIONS_POSTURE , &::getBooleanCppuType(), PROPERTY_NONE, FNT_FUNCTION},
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_FUNCTIONS_IS_BOLD), FID_FONT_FUNCTIONS_WEIGHT , &::getBooleanCppuType(), PROPERTY_NONE, FNT_FUNCTION},
+
+ { MAP_CHAR_LEN(UNO_NAME_FONT_NAME_NUMBERS ), FID_FONT_NAME_NUMBERS , &::getCppuType((const OUString*)0), PROPERTY_NONE, FNT_NUMBER },
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_NUMBERS_IS_ITALIC), FID_FONT_NUMBERS_POSTURE , &::getBooleanCppuType(), PROPERTY_NONE, FNT_NUMBER},
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_NUMBERS_IS_BOLD), FID_FONT_NUMBERS_WEIGHT , &::getBooleanCppuType(), PROPERTY_NONE, FNT_NUMBER},
+
+ { MAP_CHAR_LEN(UNO_NAME_FONT_NAME_TEXT ), FID_FONT_NAME_TEXT , &::getCppuType((const OUString*)0), PROPERTY_NONE, FNT_TEXT },
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_TEXT_IS_ITALIC), FID_FONT_TEXT_POSTURE , &::getBooleanCppuType(), PROPERTY_NONE, },
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_TEXT_IS_BOLD), FID_FONT_TEXT_WEIGHT , &::getBooleanCppuType(), PROPERTY_NONE, },
+
+ { MAP_CHAR_LEN(UNO_NAME_FONT_NAME_VARIABLES ), FID_FONT_NAME_VARIABLES , &::getCppuType((const OUString*)0), PROPERTY_NONE, FNT_VARIABLE },
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_VARIABLES_IS_ITALIC), FID_FONT_VARIABLES_POSTURE, &::getBooleanCppuType(), PROPERTY_NONE, },
+ { MAP_CHAR_LEN(UNO_NAME_CUSTOM_FONT_VARIABLES_IS_BOLD), FID_FONT_VARIABLES_WEIGHT , &::getBooleanCppuType(), PROPERTY_NONE, },
+
+ { MAP_CHAR_LEN(UNO_NAME_FORMULA ), FID_FORMULA , &::getCppuType((const OUString*)0), PROPERTY_NONE, 0},
+ { MAP_CHAR_LEN(UNO_NAME_IS_SCALE_ALL_BRACKETS ), FID_IS_SCALE_ALL_BRACKETS , &::getBooleanCppuType(), PROPERTY_NONE, 0},
+ { MAP_CHAR_LEN(UNO_NAME_IS_TEXT_MODE ), FID_IS_TEXT_MODE , &::getBooleanCppuType(), PROPERTY_NONE, 0},
+ { MAP_CHAR_LEN(UNO_NAME_LEFT_MARGIN ), FID_LEFT_MARGIN , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_LEFTSPACE },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_BRACKET_DISTANCE ), FID_RELATIVE_BRACKET_DISTANCE , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_BRACKETSPACE },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_BRACKET_EXCESS_SIZE ), FID_RELATIVE_BRACKET_EXCESS_SIZE , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_BRACKETSIZE },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_FONT_HEIGHT_FUNCTIONS ), FID_RELATIVE_FONT_HEIGHT_FUNCTIONS , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, SIZ_FUNCTION},
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_FONT_HEIGHT_INDICES ), FID_RELATIVE_FONT_HEIGHT_INDICES , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, SIZ_INDEX },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_FONT_HEIGHT_LIMITS ), FID_RELATIVE_FONT_HEIGHT_LIMITS , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, SIZ_LIMITS },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_FONT_HEIGHT_OPERATORS ), FID_RELATIVE_FONT_HEIGHT_OPERATORS , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, SIZ_OPERATOR},
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_FONT_HEIGHT_TEXT ), FID_RELATIVE_FONT_HEIGHT_TEXT , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, SIZ_TEXT },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_FRACTION_BAR_EXCESS_LENGTH), FID_RELATIVE_FRACTION_BAR_EXCESS_LENGTH, &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_FRACTION },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_FRACTION_BAR_LINE_WEIGHT ), FID_RELATIVE_FRACTION_BAR_LINE_WEIGHT , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_STROKEWIDTH },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_FRACTION_DENOMINATOR_DEPTH), FID_RELATIVE_FRACTION_DENOMINATOR_DEPTH, &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_DENOMINATOR },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_FRACTION_NUMERATOR_HEIGHT ), FID_RELATIVE_FRACTION_NUMERATOR_HEIGHT , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_NUMERATOR },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_INDEX_SUBSCRIPT ), FID_RELATIVE_INDEX_SUBSCRIPT , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_SUBSCRIPT },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_INDEX_SUPERSCRIPT ), FID_RELATIVE_INDEX_SUPERSCRIPT , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_SUPERSCRIPT },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_LINE_SPACING ), FID_RELATIVE_LINE_SPACING , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_VERTICAL },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_LOWER_LIMIT_DISTANCE ), FID_RELATIVE_LOWER_LIMIT_DISTANCE , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_LOWERLIMIT },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_MATRIX_COLUMN_SPACING ), FID_RELATIVE_MATRIX_COLUMN_SPACING , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_MATRIXCOL},
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_MATRIX_LINE_SPACING ), FID_RELATIVE_MATRIX_LINE_SPACING , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_MATRIXROW},
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_OPERATOR_EXCESS_SIZE ), FID_RELATIVE_OPERATOR_EXCESS_SIZE , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_OPERATORSIZE },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_OPERATOR_SPACING ), FID_RELATIVE_OPERATOR_SPACING , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_OPERATORSPACE},
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_ROOT_SPACING ), FID_RELATIVE_ROOT_SPACING , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_ROOT },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_SCALE_BRACKET_EXCESS_SIZE ), FID_RELATIVE_SCALE_BRACKET_EXCESS_SIZE , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_NORMALBRACKETSIZE},
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_SPACING ), FID_RELATIVE_SPACING , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_HORIZONTAL },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_SYMBOL_MINIMUM_HEIGHT ), FID_RELATIVE_SYMBOL_MINIMUM_HEIGHT , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_ORNAMENTSPACE },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_SYMBOL_PRIMARY_HEIGHT ), FID_RELATIVE_SYMBOL_PRIMARY_HEIGHT , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_ORNAMENTSIZE },
+ { MAP_CHAR_LEN(UNO_NAME_RELATIVE_UPPER_LIMIT_DISTANCE ), FID_RELATIVE_UPPER_LIMIT_DISTANCE , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_UPPERLIMIT },
+ { MAP_CHAR_LEN(UNO_NAME_RIGHT_MARGIN ), FID_RIGHT_MARGIN , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_RIGHTSPACE },
+ { MAP_CHAR_LEN(UNO_NAME_TOP_MARGIN ), FID_TOP_MARGIN , &::getCppuType((const sal_Int16*)0), PROPERTY_NONE, DIS_TOPSPACE },
+ {0,0,0,0}
+};
+//-----------------------------------------------------------------------
+SmModel::SmModel( SfxObjectShell *pObjSh ) :
+ SfxBaseModel(pObjSh),
+ _pMap(aMathModelMap_Impl)
+{
+}
+//-----------------------------------------------------------------------
+SmModel::~SmModel()
+{
+}
+/*-- 28.03.00 14:18:17---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Any SAL_CALL SmModel::queryInterface( const uno::Type& rType ) throw(uno::RuntimeException)
+{
+ uno::Any aRet = SmModelBaseClass::queryInterface(rType);
+ if(!aRet.hasValue())
+ {
+ aRet = SfxBaseModel::queryInterface(rType);
+ }
+ return aRet;
+}
+/*-- 28.03.00 14:18:18---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void SAL_CALL SmModel::acquire() throw(uno::RuntimeException)
+{
+ ::vos::OGuard aGuard(Application::GetSolarMutex());
+ SmModelBaseClass::acquire();
+}
+/*-- 28.03.00 14:18:18---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void SAL_CALL SmModel::release() throw(uno::RuntimeException)
+{
+ ::vos::OGuard aGuard(Application::GetSolarMutex());
+ SmModelBaseClass::release();
+}
+/*-- 28.03.00 14:18:19---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Sequence< uno::Type > SAL_CALL SmModel::getTypes( ) throw(uno::RuntimeException)
+{
+ ::vos::OGuard aGuard(Application::GetSolarMutex());
+
+ uno::Sequence< uno::Type > aBaseTypes = SmModelBaseClass::getTypes();
+ uno::Sequence< uno::Type > aSfxTypes = SfxBaseModel::getTypes();
+ long nIndex = aBaseTypes.getLength();
+ aBaseTypes.realloc(aBaseTypes.getLength() + aSfxTypes.getLength());
+ uno::Type* pBaseTypes = aBaseTypes.getArray();
+ const uno::Type* pSfxTypes = aSfxTypes.getConstArray();
+ for(long nSfx = 0; nSfx < aSfxTypes.getLength(); nSfx++)
+ pBaseTypes[nIndex++] = pSfxTypes[nSfx];
+ return aBaseTypes;
+}
+/* -----------------------------28.03.00 14:23--------------------------------
+
+ ---------------------------------------------------------------------------*/
+const uno::Sequence< sal_Int8 > & SmModel::getUnoTunnelId()
+{
+ static osl::Mutex aCreateMutex;
+ osl::Guard<osl::Mutex> aGuard( aCreateMutex );
+
+ static uno::Sequence< sal_Int8 > aSeq;
+ if(!aSeq.getLength())
+ {
+ aSeq.realloc( 16 );
+ rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
+ }
+ return aSeq;
+}
+/* -----------------------------28.03.00 14:23--------------------------------
+
+ ---------------------------------------------------------------------------*/
+sal_Int64 SAL_CALL SmModel::getSomething( const uno::Sequence< sal_Int8 >& rId )
+ throw(uno::RuntimeException)
+{
+ if( rId.getLength() == 16
+ && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(),
+ rId.getConstArray(), 16 ) )
+ {
+ return (sal_Int64)this;
+ }
+ return 0;
+}
+
+/*-- 07.01.00 16:32:59---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Reference< beans::XPropertySetInfo > SAL_CALL SmModel::getPropertySetInfo(void) throw( uno::RuntimeException )
+{
+ ::vos::OGuard aGuard(Application::GetSolarMutex());
+
+ static uno::Reference< beans::XPropertySetInfo > xRet = new SfxItemPropertySetInfo( _pMap );
+ return xRet;
+}
+/*-- 07.01.00 16:33:00---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_Int16 lcl_AnyToINT16(const uno::Any& rAny)
+{
+ uno::TypeClass eType = rAny.getValueType().getTypeClass();
+
+ sal_Int16 nRet = 0;
+ if( eType == uno::TypeClass_DOUBLE )
+ nRet = (sal_Int16)*(double*)rAny.getValue();
+ else if( eType == uno::TypeClass_FLOAT )
+ nRet = (sal_Int16)*(float*)rAny.getValue();
+ else
+ rAny >>= nRet;
+ return nRet;
+}
+//-----------------------------------------------------------------------------
+void SmModel::setPropertyValue(const OUString& rPropertyName, const uno::Any& aValue)
+ throw( beans::UnknownPropertyException, beans::PropertyVetoException,
+ lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ ::vos::OGuard aGuard(Application::GetSolarMutex());
+
+ SfxObjectShell* pObjShell = GetObjectShell();
+ if(!pObjShell)
+ throw uno::RuntimeException();
+ const SfxItemPropertyMap* pMap = SfxItemPropertyMap::GetByName(
+ _pMap, rPropertyName);
+ if(pMap)
+ {
+ SmFormat& aFormat = ((SmDocShell*)pObjShell)->GetFormat();
+ switch(pMap->nWID)
+ {
+ case FID_FORMULA:
+ {
+ OUString aText;
+ aValue >>= aText;
+ ((SmDocShell*)pObjShell)->SetText(aText);
+ }
+ break;
+ case FID_FONT_NAME_VARIABLES :
+ case FID_FONT_NAME_FUNCTIONS :
+ case FID_FONT_NAME_NUMBERS :
+ case FID_FONT_NAME_TEXT :
+ case FID_CUSTOM_FONT_NAME_SERIF :
+ case FID_CUSTOM_FONT_NAME_SANS :
+ case FID_CUSTOM_FONT_NAME_FIXED :
+ {
+ OUString aText;
+ aValue >>= aText;
+ String sFontName = aText;
+ if(!sFontName.Len())
+ throw lang::IllegalArgumentException();
+ if(aFormat.GetFont(pMap->nMemberId).GetName() != sFontName)
+ {
+ OutputDevice *pDev = ((SmDocShell*)pObjShell)->GetPrinter();
+ if (!pDev || pDev->GetDevFontCount() == 0)
+ pDev = (OutputDevice *) GetpApp()->GetDefaultDevice();
+
+ FontList aFontList(pDev);
+
+ sal_uInt16 nCount = aFontList.GetFontNameCount();
+ sal_Bool bSet = sal_False;
+ for (sal_uInt16 i = 0; i < nCount; i++)
+ {
+ const FontInfo& rInfo = aFontList.GetFontName( i );
+ if(rInfo.GetName() == sFontName)
+ {
+ SmFace aSet(rInfo);
+ const SmFace rOld = aFormat.GetFont(pMap->nMemberId);
+ aSet.SetBorderWidth(rOld.GetBorderWidth());
+ aSet.SetSize(rOld.GetSize());
+ aSet.SetAlign(ALIGN_BASELINE);
+ aFormat.SetFont(pMap->nMemberId, aSet);
+ bSet = sal_True;
+ break;
+ }
+ }
+ if(!bSet)
+ throw lang::IllegalArgumentException();
+ }
+ }
+ break;
+ case FID_CUSTOM_FONT_FIXED_POSTURE:
+ case FID_CUSTOM_FONT_SANS_POSTURE :
+ case FID_CUSTOM_FONT_SERIF_POSTURE:
+ case FID_FONT_VARIABLES_POSTURE :
+ case FID_FONT_FUNCTIONS_POSTURE :
+ case FID_FONT_NUMBERS_POSTURE :
+ case FID_FONT_TEXT_POSTURE :
+ {
+ if(aValue.getValueType() != ::getBooleanCppuType())
+ throw lang::IllegalArgumentException();
+ BOOL bVal = *(sal_Bool*)aValue.getValue();
+ Font aNewFont(aFormat.GetFont(pMap->nMemberId));
+ aNewFont.SetItalic((bVal) ? ITALIC_NORMAL : ITALIC_NONE);
+ aFormat.SetFont(pMap->nMemberId, aNewFont);
+ }
+ break;
+ case FID_CUSTOM_FONT_FIXED_WEIGHT :
+ case FID_CUSTOM_FONT_SANS_WEIGHT :
+ case FID_CUSTOM_FONT_SERIF_WEIGHT :
+ case FID_FONT_VARIABLES_WEIGHT :
+ case FID_FONT_FUNCTIONS_WEIGHT :
+ case FID_FONT_NUMBERS_WEIGHT :
+ case FID_FONT_TEXT_WEIGHT :
+ {
+ if(aValue.getValueType() != ::getBooleanCppuType())
+ throw lang::IllegalArgumentException();
+ BOOL bVal = *(sal_Bool*)aValue.getValue();
+ Font aNewFont(aFormat.GetFont(pMap->nMemberId));
+ aNewFont.SetWeight((bVal) ? WEIGHT_BOLD : WEIGHT_NORMAL);
+ aFormat.SetFont(pMap->nMemberId, aNewFont);
+ }
+ break;
+ case FID_BASE_FONT_HEIGHT :
+ {
+ // Point!
+ sal_Int16 nVal = lcl_AnyToINT16(aValue);
+ if(nVal < 1)
+ throw lang::IllegalArgumentException();
+ Size aSize = aFormat.GetBaseSize();
+ nVal *= 20;
+ nVal = TWIP_TO_MM100(nVal);
+ aSize.Height() = nVal;
+ aFormat.SetBaseSize(aSize);
+ }
+ break;
+ case FID_RELATIVE_FONT_HEIGHT_TEXT :
+ case FID_RELATIVE_FONT_HEIGHT_INDICES :
+ case FID_RELATIVE_FONT_HEIGHT_FUNCTIONS :
+ case FID_RELATIVE_FONT_HEIGHT_OPERATORS :
+ case FID_RELATIVE_FONT_HEIGHT_LIMITS :
+ {
+ sal_Int16 nVal;
+ aValue >>= nVal;
+ if(nVal < 1)
+ throw lang::IllegalArgumentException();
+ aFormat.SetRelSize(pMap->nMemberId, nVal);
+ }
+ break;
+
+ case FID_IS_TEXT_MODE :
+ {
+ aFormat.SetTextmode(*(sal_Bool*)aValue.getValue());
+ }
+ break;
+
+ case FID_ALIGNMENT :
+ {
+ // SmHorAlign uses the same values as HorizontalAlignment
+ sal_Int16 nVal;
+ aValue >>= nVal;
+ if(nVal < 0 || nVal > 2)
+ throw lang::IllegalArgumentException();
+ aFormat.SetHorAlign((SmHorAlign)nVal);
+ }
+ break;
+
+ case FID_RELATIVE_SPACING :
+ case FID_RELATIVE_LINE_SPACING :
+ case FID_RELATIVE_ROOT_SPACING :
+ case FID_RELATIVE_INDEX_SUPERSCRIPT :
+ case FID_RELATIVE_INDEX_SUBSCRIPT :
+ case FID_RELATIVE_FRACTION_NUMERATOR_HEIGHT :
+ case FID_RELATIVE_FRACTION_DENOMINATOR_DEPTH:
+ case FID_RELATIVE_FRACTION_BAR_EXCESS_LENGTH:
+ case FID_RELATIVE_FRACTION_BAR_LINE_WEIGHT :
+ case FID_RELATIVE_UPPER_LIMIT_DISTANCE :
+ case FID_RELATIVE_LOWER_LIMIT_DISTANCE :
+ case FID_RELATIVE_BRACKET_EXCESS_SIZE :
+ case FID_RELATIVE_BRACKET_DISTANCE :
+ case FID_RELATIVE_SCALE_BRACKET_EXCESS_SIZE :
+ case FID_RELATIVE_MATRIX_LINE_SPACING :
+ case FID_RELATIVE_MATRIX_COLUMN_SPACING :
+ case FID_RELATIVE_SYMBOL_PRIMARY_HEIGHT :
+ case FID_RELATIVE_SYMBOL_MINIMUM_HEIGHT :
+ case FID_RELATIVE_OPERATOR_EXCESS_SIZE :
+ case FID_RELATIVE_OPERATOR_SPACING :
+ case FID_LEFT_MARGIN :
+ case FID_RIGHT_MARGIN :
+ case FID_TOP_MARGIN :
+ case FID_BOTTOM_MARGIN :
+ {
+ sal_Int16 nVal;
+ aValue >>= nVal;
+ if(nVal < 0)
+ throw lang::IllegalArgumentException();
+ aFormat.SetDistance(pMap->nMemberId, nVal);
+ }
+ break;
+ case FID_IS_SCALE_ALL_BRACKETS :
+ aFormat.SetScaleNormalBrackets(*(sal_Bool*)aValue.getValue());
+ break;
+ }
+ if(pMap->nWID)
+ {
+ ((SmDocShell*)pObjShell)->SetFormat(aFormat);
+ aFormat.RequestApplyChanges();
+ }
+ }
+ else
+ throw beans::UnknownPropertyException();
+}
+/*-- 07.01.00 16:33:00---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Any SmModel::getPropertyValue(const OUString& rPropertyName)
+ throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+{
+ ::vos::OGuard aGuard(Application::GetSolarMutex());
+
+ uno::Any aRet;
+ SfxObjectShell* pObjShell = GetObjectShell();
+ if(!pObjShell)
+ throw uno::RuntimeException();
+ const SfxItemPropertyMap* pMap = SfxItemPropertyMap::GetByName(
+ _pMap, rPropertyName);
+ if(pMap)
+ {
+ const SmFormat& rFormat = ((SmDocShell*)pObjShell)->GetFormat();
+ switch(pMap->nWID)
+ {
+ case FID_FORMULA:
+ aRet <<= OUString(((SmDocShell*)pObjShell)->GetText());
+ break;
+ case FID_FONT_NAME_VARIABLES :
+ case FID_FONT_NAME_FUNCTIONS :
+ case FID_FONT_NAME_NUMBERS :
+ case FID_FONT_NAME_TEXT :
+ case FID_CUSTOM_FONT_NAME_SERIF :
+ case FID_CUSTOM_FONT_NAME_SANS :
+ case FID_CUSTOM_FONT_NAME_FIXED :
+ {
+ const SmFace & rFace = rFormat.GetFont(pMap->nMemberId);
+ aRet <<= OUString(rFace.GetName());
+ }
+ break;
+ case FID_CUSTOM_FONT_FIXED_POSTURE:
+ case FID_CUSTOM_FONT_SANS_POSTURE :
+ case FID_CUSTOM_FONT_SERIF_POSTURE:
+ case FID_FONT_VARIABLES_POSTURE :
+ case FID_FONT_FUNCTIONS_POSTURE :
+ case FID_FONT_NUMBERS_POSTURE :
+ case FID_FONT_TEXT_POSTURE :
+ {
+ const SmFace & rFace = rFormat.GetFont(pMap->nMemberId);
+ BOOL bVal = (rFace.GetItalic() != ITALIC_NONE);
+ aRet.setValue(&bVal, *pMap->pType);
+ }
+ break;
+ case FID_CUSTOM_FONT_FIXED_WEIGHT :
+ case FID_CUSTOM_FONT_SANS_WEIGHT :
+ case FID_CUSTOM_FONT_SERIF_WEIGHT :
+ case FID_FONT_VARIABLES_WEIGHT :
+ case FID_FONT_FUNCTIONS_WEIGHT :
+ case FID_FONT_NUMBERS_WEIGHT :
+ case FID_FONT_TEXT_WEIGHT :
+ {
+ const SmFace & rFace = rFormat.GetFont(pMap->nMemberId);
+ BOOL bVal = (rFace.GetWeight() == WEIGHT_BOLD);
+ aRet.setValue(&bVal, *pMap->pType);
+ }
+ break;
+ case FID_BASE_FONT_HEIGHT :
+ {
+ // Point!
+ sal_Int16 nVal = rFormat.GetBaseSize().Height();
+ nVal = MM100_TO_TWIP(nVal);
+ nVal = (nVal + 10) / 20;
+ aRet <<= nVal;
+ }
+ break;
+ case FID_RELATIVE_FONT_HEIGHT_TEXT :
+ case FID_RELATIVE_FONT_HEIGHT_INDICES :
+ case FID_RELATIVE_FONT_HEIGHT_FUNCTIONS :
+ case FID_RELATIVE_FONT_HEIGHT_OPERATORS :
+ case FID_RELATIVE_FONT_HEIGHT_LIMITS :
+ aRet <<= (sal_Int16) rFormat.GetRelSize(pMap->nMemberId);
+ break;
+
+ case FID_IS_TEXT_MODE :
+ {
+ sal_Bool bVal = rFormat.IsTextmode();
+ aRet.setValue(&bVal, ::getBooleanCppuType());
+ }
+ break;
+
+ case FID_ALIGNMENT :
+ // SmHorAlign uses the same values as HorizontalAlignment
+ aRet <<= (sal_Int16)rFormat.GetHorAlign();
+ break;
+
+ case FID_RELATIVE_SPACING :
+ case FID_RELATIVE_LINE_SPACING :
+ case FID_RELATIVE_ROOT_SPACING :
+ case FID_RELATIVE_INDEX_SUPERSCRIPT :
+ case FID_RELATIVE_INDEX_SUBSCRIPT :
+ case FID_RELATIVE_FRACTION_NUMERATOR_HEIGHT :
+ case FID_RELATIVE_FRACTION_DENOMINATOR_DEPTH:
+ case FID_RELATIVE_FRACTION_BAR_EXCESS_LENGTH:
+ case FID_RELATIVE_FRACTION_BAR_LINE_WEIGHT :
+ case FID_RELATIVE_UPPER_LIMIT_DISTANCE :
+ case FID_RELATIVE_LOWER_LIMIT_DISTANCE :
+ case FID_RELATIVE_BRACKET_EXCESS_SIZE :
+ case FID_RELATIVE_BRACKET_DISTANCE :
+ case FID_RELATIVE_SCALE_BRACKET_EXCESS_SIZE :
+ case FID_RELATIVE_MATRIX_LINE_SPACING :
+ case FID_RELATIVE_MATRIX_COLUMN_SPACING :
+ case FID_RELATIVE_SYMBOL_PRIMARY_HEIGHT :
+ case FID_RELATIVE_SYMBOL_MINIMUM_HEIGHT :
+ case FID_RELATIVE_OPERATOR_EXCESS_SIZE :
+ case FID_RELATIVE_OPERATOR_SPACING :
+ case FID_LEFT_MARGIN :
+ case FID_RIGHT_MARGIN :
+ case FID_TOP_MARGIN :
+ case FID_BOTTOM_MARGIN :
+ aRet <<= (sal_Int16)rFormat.GetDistance(pMap->nMemberId);
+ break;
+ case FID_IS_SCALE_ALL_BRACKETS :
+ sal_Bool bVal = rFormat.IsScaleNormalBrackets();
+ aRet.setValue(&bVal, ::getBooleanCppuType());
+ break;
+ }
+ }
+ else
+ throw beans::UnknownPropertyException();
+ return aRet;
+}
+/*-- 07.01.00 16:33:00---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void SmModel::addPropertyChangeListener(const OUString& PropertyName,
+ const uno::Reference< beans::XPropertyChangeListener > & aListener)
+ throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+{
+}
+/*-- 07.01.00 16:33:01---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void SmModel::removePropertyChangeListener(const OUString& PropertyName,
+ const uno::Reference< beans::XPropertyChangeListener > & aListener)
+ throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+{
+}
+/*-- 07.01.00 16:33:01---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void SmModel::addVetoableChangeListener(const OUString& PropertyName,
+ const uno::Reference< beans::XVetoableChangeListener > & aListener)
+ throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+{
+}
+/*-- 07.01.00 16:33:01---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void SmModel::removeVetoableChangeListener(const OUString& PropertyName,
+ const uno::Reference< beans::XVetoableChangeListener > & aListener)
+ throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+{
+}
+/*-- 07.02.00 13:24:08---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+OUString SmModel::getImplementationName(void) throw( uno::RuntimeException )
+{
+ return C2U("SmModel");
+}
+/*-- 07.02.00 13:24:09---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_Bool SmModel::supportsService(const OUString& rServiceName) throw( uno::RuntimeException )
+{
+ return rServiceName == C2U("com.sun.star.formula.FormulaProperties");
+}
+/*-- 07.02.00 13:24:09---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Sequence< OUString > SmModel::getSupportedServiceNames(void) throw( uno::RuntimeException )
+{
+ ::vos::OGuard aGuard(Application::GetSolarMutex());
+
+ uno::Sequence< OUString > aRet(1);
+ OUString* pArray = aRet.getArray();
+ pArray[0] = C2U("com.sun.star.formula.FormulaProperties");
+ return aRet;
+}
+/* -----------------------------20.06.00 10:47--------------------------------
+
+ ---------------------------------------------------------------------------*/
+void * SAL_CALL SmModel::operator new( size_t t ) throw()
+{
+ return SmModelBaseClass::operator new( t );
+}
+/* -----------------------------20.06.00 10:47--------------------------------
+
+ ---------------------------------------------------------------------------*/
+void SAL_CALL SmModel::operator delete( void * p ) throw()
+{
+ SmModelBaseClass::operator delete( p );
+}
+