diff --git a/slideshow/source/engine/attributemap.cxx b/slideshow/source/engine/attributemap.cxx new file mode 100644 index 000000000000..63d378efae93 --- /dev/null +++ b/slideshow/source/engine/attributemap.cxx @@ -0,0 +1,153 @@ +/************************************************************************* + * + * $RCSfile: attributemap.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: rt $ $Date: 2004-11-26 18:48:18 $ + * + * 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): _______________________________________ + * + * + ************************************************************************/ + +// must be first +#include +#include + +#include + + +namespace presentation +{ + namespace internal + { + typedef ValueMap< AttributeType > AnimateAttributeMap; + + AttributeType mapAttributeName( const ::rtl::OUString& rAttrName ) + { + /** Maps attribute name to AttributeType enum. + + String entries are all case-insensitive and MUST + BE STORED lowercase. + + String entries MUST BE SORTED in ascending order! + */ + static AnimateAttributeMap::MapEntry lcl_attributeMap[] = + { + { "charcolor", ATTRIBUTE_CHAR_COLOR }, + + { "charfontname", ATTRIBUTE_CHAR_FONT_NAME }, + + { "charheight", ATTRIBUTE_CHAR_HEIGHT }, + + { "charposture", ATTRIBUTE_CHAR_POSTURE }, + + // TODO(Q1): This should prolly be changed in PPT import + // { "charrotation", ATTRIBUTE_CHAR_ROTATION }, + { "charrotation", ATTRIBUTE_ROTATE }, + + { "charunderline", ATTRIBUTE_CHAR_UNDERLINE }, + + { "charweight", ATTRIBUTE_CHAR_WEIGHT }, + + { "color", ATTRIBUTE_COLOR }, + + { "dimcolor", ATTRIBUTE_DIMCOLOR }, + + { "fillcolor", ATTRIBUTE_FILL_COLOR }, + + { "fillstyle", ATTRIBUTE_FILL_STYLE }, + + { "height", ATTRIBUTE_HEIGHT }, + + { "linecolor", ATTRIBUTE_LINE_COLOR }, + + { "linestyle", ATTRIBUTE_LINE_STYLE }, + + { "opacity", ATTRIBUTE_OPACITY }, + + { "rotate", ATTRIBUTE_ROTATE }, + + { "skewx", ATTRIBUTE_SKEW_X }, + + { "skewy", ATTRIBUTE_SKEW_Y }, + + { "visibility", ATTRIBUTE_VISIBILITY }, + + { "width", ATTRIBUTE_WIDTH }, + + { "x", ATTRIBUTE_POS_X }, + + { "y", ATTRIBUTE_POS_Y } + }; + + static AnimateAttributeMap aMap( lcl_attributeMap, + sizeof(lcl_attributeMap)/sizeof(AnimateAttributeMap::MapEntry), + false ); + + AttributeType eAttributeType; + + // determine the type from the attribute name + if( !aMap.lookup( rAttrName, + eAttributeType ) ) + { + OSL_TRACE( "mapAttributeName(): attribute name %s not found in map.", + ::rtl::OUStringToOString( rAttrName, + RTL_TEXTENCODING_ASCII_US ).getStr() ); + return ATTRIBUTE_INVALID; + } + + return eAttributeType; + } + + } +}