Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 :
21 : #include <svx/SvxShapeTypes.hxx>
22 : #include <svx/AccessibleShape.hxx>
23 : #include <svx/AccessibleGraphicShape.hxx>
24 : #include <svx/AccessibleOLEShape.hxx>
25 : #include <svx/AccessibleControlShape.hxx>
26 : #include <svx/AccessibleTableShape.hxx>
27 :
28 : namespace accessibility {
29 :
30 0 : AccessibleShape* CreateSvxAccessibleShape (
31 : const AccessibleShapeInfo& rShapeInfo,
32 : const AccessibleShapeTreeInfo& rShapeTreeInfo,
33 : ShapeTypeId nId)
34 : {
35 0 : switch (nId)
36 : {
37 : case DRAWING_3D_CUBE:
38 : case DRAWING_3D_EXTRUDE:
39 : case DRAWING_3D_LATHE:
40 : case DRAWING_3D_SCENE:
41 : case DRAWING_3D_SPHERE:
42 : case DRAWING_CAPTION:
43 : case DRAWING_CLOSED_BEZIER:
44 : case DRAWING_CLOSED_FREEHAND:
45 : case DRAWING_CONNECTOR:
46 : case DRAWING_ELLIPSE:
47 : case DRAWING_GROUP:
48 : case DRAWING_LINE:
49 : case DRAWING_MEASURE:
50 : case DRAWING_OPEN_BEZIER:
51 : case DRAWING_OPEN_FREEHAND:
52 : case DRAWING_PAGE:
53 : case DRAWING_POLY_POLYGON:
54 : case DRAWING_POLY_LINE:
55 : case DRAWING_POLY_POLYGON_PATH:
56 : case DRAWING_POLY_LINE_PATH:
57 : case DRAWING_RECTANGLE:
58 : case DRAWING_TEXT:
59 : // Default accessiblility shape for
60 : // com::sun::star::drawing::CustomShape (#i37790#)
61 : case DRAWING_CUSTOM:
62 : // Default accessiblility shape for
63 : // com::sun::star::drawing::MediaShape (#i85429#)
64 : case DRAWING_MEDIA:
65 0 : return new AccessibleShape (rShapeInfo, rShapeTreeInfo);
66 :
67 : case DRAWING_CONTROL:
68 0 : return new AccessibleControlShape (rShapeInfo, rShapeTreeInfo);
69 :
70 : case DRAWING_GRAPHIC_OBJECT:
71 0 : return new AccessibleGraphicShape (rShapeInfo, rShapeTreeInfo);
72 :
73 : case DRAWING_APPLET:
74 : case DRAWING_FRAME:
75 : case DRAWING_OLE:
76 : case DRAWING_PLUGIN:
77 0 : return new AccessibleOLEShape (rShapeInfo, rShapeTreeInfo);
78 :
79 : case DRAWING_TABLE:
80 0 : return new AccessibleTableShape( rShapeInfo, rShapeTreeInfo );
81 :
82 : default:
83 0 : return NULL;
84 : }
85 : }
86 :
87 2 : void RegisterDrawShapeTypes (void)
88 : {
89 : /** List of shape type descriptors corresponding to the
90 : <type>SvxShapeTypes</type> enum.
91 : */
92 : ShapeTypeDescriptor aSvxShapeTypeList[] = {
93 : ShapeTypeDescriptor (DRAWING_TEXT,
94 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.TextShape")),
95 : CreateSvxAccessibleShape),
96 : ShapeTypeDescriptor (DRAWING_RECTANGLE,
97 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.RectangleShape")),
98 : CreateSvxAccessibleShape),
99 : ShapeTypeDescriptor ( DRAWING_ELLIPSE,
100 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.EllipseShape")),
101 : CreateSvxAccessibleShape ),
102 : ShapeTypeDescriptor ( DRAWING_CONTROL,
103 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.ControlShape")),
104 : CreateSvxAccessibleShape ),
105 : ShapeTypeDescriptor ( DRAWING_CONNECTOR,
106 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.ConnectorShape")),
107 : CreateSvxAccessibleShape ),
108 : ShapeTypeDescriptor ( DRAWING_MEASURE,
109 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.MeasureShape")),
110 : CreateSvxAccessibleShape ),
111 : ShapeTypeDescriptor ( DRAWING_LINE,
112 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.LineShape")),
113 : CreateSvxAccessibleShape ),
114 : ShapeTypeDescriptor ( DRAWING_POLY_POLYGON,
115 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.PolyPolygonShape")),
116 : CreateSvxAccessibleShape ),
117 : ShapeTypeDescriptor ( DRAWING_POLY_LINE,
118 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.PolyLineShape")),
119 : CreateSvxAccessibleShape ),
120 : ShapeTypeDescriptor ( DRAWING_OPEN_BEZIER,
121 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.OpenBezierShape")),
122 : CreateSvxAccessibleShape ),
123 : ShapeTypeDescriptor ( DRAWING_CLOSED_BEZIER,
124 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.ClosedBezierShape")),
125 : CreateSvxAccessibleShape ),
126 : ShapeTypeDescriptor ( DRAWING_OPEN_FREEHAND,
127 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.OpenFreeHandShape")),
128 : CreateSvxAccessibleShape ),
129 : ShapeTypeDescriptor ( DRAWING_CLOSED_FREEHAND,
130 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.ClosedFreeHandShape")),
131 : CreateSvxAccessibleShape ),
132 : ShapeTypeDescriptor ( DRAWING_POLY_POLYGON_PATH,
133 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.PolyPolygonPathShape")),
134 : CreateSvxAccessibleShape ),
135 : ShapeTypeDescriptor ( DRAWING_POLY_LINE_PATH,
136 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.PolyLinePathShape")),
137 : CreateSvxAccessibleShape ),
138 : ShapeTypeDescriptor ( DRAWING_GRAPHIC_OBJECT,
139 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.GraphicObjectShape")),
140 : CreateSvxAccessibleShape ),
141 : ShapeTypeDescriptor ( DRAWING_GROUP,
142 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.GroupShape")),
143 : CreateSvxAccessibleShape ),
144 : ShapeTypeDescriptor ( DRAWING_OLE,
145 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.OLE2Shape")),
146 : CreateSvxAccessibleShape ),
147 : ShapeTypeDescriptor ( DRAWING_PAGE,
148 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.PageShape")),
149 : CreateSvxAccessibleShape ),
150 : ShapeTypeDescriptor ( DRAWING_CAPTION,
151 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.CaptionShape")),
152 : CreateSvxAccessibleShape ),
153 : ShapeTypeDescriptor ( DRAWING_FRAME,
154 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.FrameShape")),
155 : CreateSvxAccessibleShape ),
156 : ShapeTypeDescriptor ( DRAWING_PLUGIN,
157 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.PluginShape")),
158 : CreateSvxAccessibleShape ),
159 : ShapeTypeDescriptor ( DRAWING_APPLET,
160 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.AppletShape")),
161 : CreateSvxAccessibleShape ),
162 : ShapeTypeDescriptor ( DRAWING_3D_SCENE,
163 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.Shape3DSceneObject")),
164 : CreateSvxAccessibleShape ),
165 : ShapeTypeDescriptor ( DRAWING_3D_CUBE,
166 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.Shape3DCubeObject")),
167 : CreateSvxAccessibleShape ),
168 : ShapeTypeDescriptor ( DRAWING_3D_SPHERE,
169 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.Shape3DSphereObject")),
170 : CreateSvxAccessibleShape ),
171 : ShapeTypeDescriptor ( DRAWING_3D_LATHE,
172 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.Shape3DLatheObject")),
173 : CreateSvxAccessibleShape ),
174 : ShapeTypeDescriptor ( DRAWING_3D_EXTRUDE,
175 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.Shape3DExtrudeObject")),
176 : CreateSvxAccessibleShape ),
177 : ShapeTypeDescriptor ( DRAWING_CUSTOM,
178 : ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.CustomShape")),
179 : CreateSvxAccessibleShape ),
180 : ShapeTypeDescriptor ( DRAWING_TABLE,
181 : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.TableShape" ) ),
182 : CreateSvxAccessibleShape ),
183 : ShapeTypeDescriptor ( DRAWING_MEDIA,
184 : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.MediaShape" ) ),
185 : CreateSvxAccessibleShape ),
186 :
187 64 : };
188 :
189 : // Crash while inserting callout with activated accesibility (#i37790#)
190 64 : ShapeTypeHandler::Instance().AddShapeTypeList ( DRAWING_END, aSvxShapeTypeList);
191 2 : }
192 :
193 : } // end of namespace accessibility
194 :
195 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|