1# -*- coding: utf-8 -*- 2# Copyright (C) 2006-2007 Søren Roug, European Environment Agency 3# 4# This library is free software; you can redistribute it and/or 5# modify it under the terms of the GNU Lesser General Public 6# License as published by the Free Software Foundation; either 7# version 2.1 of the License, or (at your option) any later version. 8# 9# This library is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12# Lesser General Public License for more details. 13# 14# You should have received a copy of the GNU Lesser General Public 15# License along with this library; if not, write to the Free Software 16# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17# 18# Contributor(s): 19# 20 21import sys, os.path 22sys.path.append(os.path.dirname(__file__)) 23from odf.namespaces import DRAWNS, STYLENS, PRESENTATIONNS 24from odf.element import Element 25 26def StyleRefElement(stylename=None, classnames=None, **args): 27 qattrs = {} 28 if stylename is not None: 29 f = stylename.getAttrNS(STYLENS, 'family') 30 if f == 'graphic': 31 qattrs[(DRAWNS,u'style-name')]= stylename 32 elif f == 'presentation': 33 qattrs[(PRESENTATIONNS,u'style-name')]= stylename 34 else: 35 raise ValueError( "Style's family must be either 'graphic' or 'presentation'") 36 if classnames is not None: 37 f = classnames[0].getAttrNS(STYLENS, 'family') 38 if f == 'graphic': 39 qattrs[(DRAWNS,u'class-names')]= classnames 40 elif f == 'presentation': 41 qattrs[(PRESENTATIONNS,u'class-names')]= classnames 42 else: 43 raise ValueError( "Style's family must be either 'graphic' or 'presentation'") 44 return Element(qattributes=qattrs, **args) 45 46def DrawElement(name=None, **args): 47 e = Element(name=name, **args) 48 if 'displayname' not in args: 49 e.setAttrNS(DRAWNS,'display-name', name) 50 return e 51 52# Autogenerated 53def A(**args): 54 args.setdefault('type', 'simple') 55 return Element(qname = (DRAWNS,'a'), **args) 56 57def Applet(**args): 58 return Element(qname = (DRAWNS,'applet'), **args) 59 60def AreaCircle(**args): 61 return Element(qname = (DRAWNS,'area-circle'), **args) 62 63def AreaPolygon(**args): 64 return Element(qname = (DRAWNS,'area-polygon'), **args) 65 66def AreaRectangle(**args): 67 return Element(qname = (DRAWNS,'area-rectangle'), **args) 68 69def Caption(**args): 70 return StyleRefElement(qname = (DRAWNS,'caption'), **args) 71 72def Circle(**args): 73 return StyleRefElement(qname = (DRAWNS,'circle'), **args) 74 75def Connector(**args): 76 return StyleRefElement(qname = (DRAWNS,'connector'), **args) 77 78def ContourPath(**args): 79 return Element(qname = (DRAWNS,'contour-path'), **args) 80 81def ContourPolygon(**args): 82 return Element(qname = (DRAWNS,'contour-polygon'), **args) 83 84def Control(**args): 85 return StyleRefElement(qname = (DRAWNS,'control'), **args) 86 87def CustomShape(**args): 88 return StyleRefElement(qname = (DRAWNS,'custom-shape'), **args) 89 90def Ellipse(**args): 91 return StyleRefElement(qname = (DRAWNS,'ellipse'), **args) 92 93def EnhancedGeometry(**args): 94 return Element(qname = (DRAWNS,'enhanced-geometry'), **args) 95 96def Equation(**args): 97 return Element(qname = (DRAWNS,'equation'), **args) 98 99def FillImage(**args): 100 args.setdefault('type', 'simple') 101 return DrawElement(qname = (DRAWNS,'fill-image'), **args) 102 103def FloatingFrame(**args): 104 args.setdefault('type', 'simple') 105 return Element(qname = (DRAWNS,'floating-frame'), **args) 106 107def Frame(**args): 108 return StyleRefElement(qname = (DRAWNS,'frame'), **args) 109 110def G(**args): 111 return StyleRefElement(qname = (DRAWNS,'g'), **args) 112 113def GluePoint(**args): 114 return Element(qname = (DRAWNS,'glue-point'), **args) 115 116def Gradient(**args): 117 return DrawElement(qname = (DRAWNS,'gradient'), **args) 118 119def Handle(**args): 120 return Element(qname = (DRAWNS,'handle'), **args) 121 122def Hatch(**args): 123 return DrawElement(qname = (DRAWNS,'hatch'), **args) 124 125def Image(**args): 126 return Element(qname = (DRAWNS,'image'), **args) 127 128def ImageMap(**args): 129 return Element(qname = (DRAWNS,'image-map'), **args) 130 131def Layer(**args): 132 return Element(qname = (DRAWNS,'layer'), **args) 133 134def LayerSet(**args): 135 return Element(qname = (DRAWNS,'layer-set'), **args) 136 137def Line(**args): 138 return StyleRefElement(qname = (DRAWNS,'line'), **args) 139 140def Marker(**args): 141 return DrawElement(qname = (DRAWNS,'marker'), **args) 142 143def Measure(**args): 144 return StyleRefElement(qname = (DRAWNS,'measure'), **args) 145 146def Object(**args): 147 return Element(qname = (DRAWNS,'object'), **args) 148 149def ObjectOle(**args): 150 return Element(qname = (DRAWNS,'object-ole'), **args) 151 152def Opacity(**args): 153 return DrawElement(qname = (DRAWNS,'opacity'), **args) 154 155def Page(**args): 156 return Element(qname = (DRAWNS,'page'), **args) 157 158def PageThumbnail(**args): 159 return StyleRefElement(qname = (DRAWNS,'page-thumbnail'), **args) 160 161def Param(**args): 162 return Element(qname = (DRAWNS,'param'), **args) 163 164def Path(**args): 165 return StyleRefElement(qname = (DRAWNS,'path'), **args) 166 167def Plugin(**args): 168 args.setdefault('type', 'simple') 169 return Element(qname = (DRAWNS,'plugin'), **args) 170 171def Polygon(**args): 172 return StyleRefElement(qname = (DRAWNS,'polygon'), **args) 173 174def Polyline(**args): 175 return StyleRefElement(qname = (DRAWNS,'polyline'), **args) 176 177def Rect(**args): 178 return StyleRefElement(qname = (DRAWNS,'rect'), **args) 179 180def RegularPolygon(**args): 181 return StyleRefElement(qname = (DRAWNS,'regular-polygon'), **args) 182 183def StrokeDash(**args): 184 return DrawElement(qname = (DRAWNS,'stroke-dash'), **args) 185 186def TextBox(**args): 187 return Element(qname = (DRAWNS,'text-box'), **args) 188 189