|
1 <?xml version="1.0" encoding="UTF-8"?> |
|
2 <s:svg xmlns:doc="tooldoc" xmlns:s="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" onload="wrapalltext()" class="layer" viewBox="-21.95 0 839.6500000000001 415.7985"> |
|
3 <title xmlns="http://www.w3.org/2000/svg" xmlns:m="http://exslt.org/math">Symbian OS vFuture System Model: Build M04710a</title> |
|
4 <defs xmlns="http://www.w3.org/2000/svg" xmlns:m="http://exslt.org/math"> |
|
5 <style type="text/css"> |
|
6 text.layer, text.block, text.subblock, text.collection, text.component, |
|
7 text.cbox, text.lgrp, text.label, text.lgd { |
|
8 fill:black; |
|
9 font-family: Arial; |
|
10 } |
|
11 text.title { |
|
12 fill:red; |
|
13 font-weight: bold; |
|
14 font-size: 6.3495px; |
|
15 font-family: Arial; |
|
16 } |
|
17 text.component { |
|
18 font-size: 1.940px; /* 5.5pt */ |
|
19 font-weight: bold |
|
20 } |
|
21 text.lgd, |
|
22 text.layer, text.block { |
|
23 font-size: 4.233px; /* 12pt */ |
|
24 font-weight: bold; |
|
25 } |
|
26 text.label { |
|
27 font-size: 1.940px; /* 5.5pt */ |
|
28 font-weight: bold |
|
29 } |
|
30 text.cbox { |
|
31 font-size: 1.411px; /* 4pt */ |
|
32 font-weight: bold |
|
33 } |
|
34 text.lgrp { |
|
35 font-size: 12.699px; /* 36pt */ |
|
36 font-weight: normal; |
|
37 } |
|
38 |
|
39 svg.subblock text.block, |
|
40 svg.subblock-fixed text.block { |
|
41 font-size: 7.7605px; /* 22pt */ |
|
42 } |
|
43 svg.block text.block, |
|
44 svg.block-fixed text.block { |
|
45 font-size: 11.288px; /* 32pt */ |
|
46 font-weight: normal; |
|
47 } |
|
48 |
|
49 svg.subblock-fixed text.block, |
|
50 svg.block-fixed text.block { |
|
51 } |
|
52 |
|
53 |
|
54 text.subblock { |
|
55 font-size: 2.822px; /* 8pt */ |
|
56 } |
|
57 |
|
58 svg.collection text.subblock, |
|
59 svg.collection-fixed text.subblock { |
|
60 font-size: 4.233px; /* 12pt */ |
|
61 } |
|
62 |
|
63 svg.subblock text.subblock, |
|
64 svg.subblock-fixed text.subblock { |
|
65 font-size: 7.055px; /* 20pt */ |
|
66 } |
|
67 |
|
68 text.collection { |
|
69 font-size: 2.469px; /* 7pt */ |
|
70 } |
|
71 |
|
72 svg.collection text.collection, |
|
73 svg.collection-fixed text.collection { |
|
74 font-size: 3.7035px; /* 10.5pt */ |
|
75 } |
|
76 |
|
77 /* thin border */ |
|
78 rect.legend, rect.collection, rect.cbox { |
|
79 stroke-width: 0.0882px; /* 0.25pt */ |
|
80 stroke: black |
|
81 } |
|
82 /* thick border */ |
|
83 rect.layer, rect.subblock, rect.block { |
|
84 stroke-width: 0.2469px; /* 0.7pt */ |
|
85 stroke: black |
|
86 } |
|
87 rect.layer { |
|
88 fill: #e6e6e6 |
|
89 } |
|
90 rect.block { |
|
91 fill: #b3b3b3 |
|
92 } |
|
93 rect.subblock { |
|
94 fill: #e6e6e6 |
|
95 } |
|
96 rect.collection { |
|
97 fill: white |
|
98 } |
|
99 rect.legend { |
|
100 fill: white |
|
101 } |
|
102 </style> |
|
103 <symbol id="Borderbox" viewBox="0 0 20 20"> |
|
104 <path d="M 0 0 L 0 20 L 20 20 L 20 0 z" stroke="black"/> |
|
105 </symbol> |
|
106 <symbol id="Borderbox-clipLB" viewBox="0 0 20 20"> |
|
107 <path d="M 0 0 L 0 15 L 5 20 L 20 20 L 20 0 z" stroke="black"/> |
|
108 </symbol> |
|
109 <symbol id="Borderbox-clipLT" viewBox="0 0 20 20"> |
|
110 <path d="M 5 0 L 0 5 L 0 20 L 20 20 L 20 0 z" stroke="black"/> |
|
111 </symbol> |
|
112 <symbol id="Borderbox-clipRB" viewBox="0 0 20 20"> |
|
113 <path d="M 0 0 L 0 20 L 15 20 L 20 15 L 20 0 z" stroke="black"/> |
|
114 </symbol> |
|
115 <symbol id="Borderbox-clipRT" viewBox="0 0 20 20"> |
|
116 <path d="M 0 0 L 0 20 L 20 20 L 20 5 L 15 0 z" stroke="black"/> |
|
117 </symbol> |
|
118 <symbol id="Borderbox-clipAll" viewBox="0 0 20 20"> |
|
119 <path d="M 5 0 L 0 5 L 0 15 L 5 20 L 15 20 L 20 15 L 20 5 L 15 0 z" stroke="black"/> |
|
120 </symbol> |
|
121 </defs> |
|
122 <s:defs> |
|
123 <s:marker id="Triangle" viewBox="-1 -1 7 7" refX="5" refY="2" markerUnits="strokeWidth" markerWidth="6" markerHeight="6" orient="auto"> |
|
124 <s:polygon style="fill:black;stroke:black;" points="0,0 5,2 0,4 0,0"/> |
|
125 </s:marker> |
|
126 <s:marker id="TriangleF" viewBox="-1 -1 7 7" refX="0" refY="2" markerUnits="strokeWidth" markerWidth="6" markerHeight="6" orient="auto"> |
|
127 <s:polygon style="fill:blue;stroke:blue;" points="5,0 5,4 0,2 5,0"/> |
|
128 </s:marker> |
|
129 <s:style type="text/css"> |
|
130 path.arrow { |
|
131 marker-end: url(#Triangle); |
|
132 fill:none;stroke: black; |
|
133 stroke-width: 4.8px; |
|
134 } |
|
135 path.arrowF { |
|
136 marker-start: url(#TriangleF); |
|
137 fill:none;stroke: blue; |
|
138 stroke-width: 4.8px; |
|
139 } |
|
140 </s:style> |
|
141 </s:defs> |
|
142 <!--Drawing in static mode: true--> |
|
143 <script xmlns="http://www.w3.org/2000/svg" xmlns:m="http://exslt.org/math" type="text/ecmascript"> |
|
144 |
|
145 var svgns="http://www.w3.org/2000/svg"; |
|
146 |
|
147 |
|
148 var curId = ''; |
|
149 function clear(id) { |
|
150 if(curId != '') off(curId); |
|
151 return curId=id; |
|
152 } |
|
153 |
|
154 |
|
155 function on(id) { |
|
156 var cur =document.getElementById(id) |
|
157 cur.setAttribute('visibility','visible'); |
|
158 |
|
159 if(!cur.hasAttribute('wrapenated')) { |
|
160 cur.setAttribute('wrapenated','true'); |
|
161 wrapalltext(cur) |
|
162 } |
|
163 |
|
164 return cur; |
|
165 } |
|
166 |
|
167 function off(id) { |
|
168 document.getElementById(id).setAttribute('visibility','hidden'); |
|
169 } |
|
170 |
|
171 |
|
172 |
|
173 |
|
174 function splitup(txt) { |
|
175 var a = new Array; |
|
176 var t = txt; |
|
177 var found |
|
178 while((found = t.match(/(^[\u3041-\u309e\u30a1-\u30fe\u4e00-\ufa2d])([\u3041-\u309e\u30a1-\u30fe\u4e00-\ufa2d].*)$/))|| ( found = t.match(/^([^ \u200b\xad-]+[ \u200b\xad-]+)(.*)$/))) { |
|
179 a.push(found[1]); |
|
180 t=found[2]; |
|
181 } |
|
182 a.push(t); |
|
183 return a; |
|
184 } |
|
185 |
|
186 |
|
187 |
|
188 |
|
189 |
|
190 function splitable(node) { |
|
191 return node.firstChild.nodeType == 3 && node.firstChild.data.match(/[\t\n\r \u200b\xad-]/); |
|
192 } |
|
193 |
|
194 function crush(node, len) { |
|
195 node.setAttribute('letter-spacing','-0.1'); |
|
196 if( node.getComputedTextLength() > len) |
|
197 node.setAttribute('letter-spacing','-0.2'); |
|
198 } |
|
199 |
|
200 function whatSize(txt) { // convert a length into pixels |
|
201 if(txt.match(/^[0-9.-]+$/)) return txt; |
|
202 var a = document.createElementNS(svgns,'rect'); |
|
203 a.setAttribute('x',0); |
|
204 a.setAttribute('y',0); |
|
205 a.setAttribute('width',txt); |
|
206 var l = a.getBBox().width; |
|
207 delete a; |
|
208 return l; |
|
209 } |
|
210 |
|
211 function wrapalltext(node) { |
|
212 if(!node) node= document; |
|
213 var all = node.getElementsByTagNameNS(svgns,'text'); |
|
214 var i=0; |
|
215 for (i=0; i<all.length; i++) { |
|
216 var cur = all.item(i); |
|
217 var w =0; |
|
218 if(cur.hasAttribute('ref')) { |
|
219 w = document.getElementById(cur.getAttribute('ref')).getBBox().width * 0.9; |
|
220 } else if (cur.hasAttribute('width')) { |
|
221 w = whatSize(cur.getAttribute('width')); |
|
222 } |
|
223 if (w) wraptext(cur,w) |
|
224 } |
|
225 } |
|
226 |
|
227 |
|
228 function wraptext(cur,l) { |
|
229 if(cur.firstChild.nodeType != 3) return; // must be just a text node |
|
230 if(cur.getBBox().width < l ) { |
|
231 cur.firstChild.data = cur.firstChild.data.replace(/[\xad\u200b]/g,""); |
|
232 return; // no need -- won't wrap |
|
233 } |
|
234 var t = cur.firstChild.data.replace(/\s+/," "); // normalize all spaces |
|
235 t = t.replace(/^ +/,"").replace(/ +$/,""); // trim spaces |
|
236 var words =splitup(t); // each word ends with the split character (if any) |
|
237 if (words.length<2) { |
|
238 crush(cur, l); |
|
239 return; |
|
240 } |
|
241 cur.removeChild(cur.firstChild) |
|
242 var tspan = document.createElementNS(svgns,'tspan'); |
|
243 cur.appendChild(tspan); |
|
244 var txt = document.createTextNode(words[0]); |
|
245 tspan.appendChild(txt); |
|
246 tspan.setAttribute('x',cur.getAttribute('x')); // Opera needs this |
|
247 var nlines=1; |
|
248 var zero =0; |
|
249 for (i =1;i< words.length;i++) { |
|
250 var was = txt.data; |
|
251 txt.data+=words[i]; |
|
252 if (tspan.getComputedTextLength() -zero > l) { // if the line with this word at the end is bigger than the available space... |
|
253 txt.data=was.replace(/ +$/,"").replace(/\xad(.)/,"$1").replace(/\u200b/g,""); // remove zero-width spaces and trailing spaces and soft hyphens |
|
254 // if it's still too big then decrease the letter spacing |
|
255 if( tspan.getComputedTextLength() > l ) crush(tspan,l); |
|
256 tspan = document.createElementNS(svgns,'tspan'); |
|
257 tspan.setAttribute('dy',"1em"); |
|
258 nlines++; |
|
259 tspan.setAttribute('x',cur.getAttribute('x')); |
|
260 cur.appendChild(tspan); |
|
261 txt = document.createTextNode(''); |
|
262 tspan.appendChild(txt); |
|
263 zero = tspan.getComputedTextLength(); |
|
264 txt.data+=words[i]; |
|
265 } |
|
266 } |
|
267 txt.data=txt.data.replace(/ +$/,"").replace(/\xad(.)/,"$1").replace(/\u200b/g,""); // remove zero-width spaces and trailing spaces and soft hyphens |
|
268 var align =cur.getAttribute('dominant-baseline'); |
|
269 if(align=='' || align=='ideographic') { |
|
270 cur.setAttribute('dy',(1-nlines)+"em"); |
|
271 } else{ |
|
272 if(align=='mathematical') |
|
273 cur.setAttribute('dy',((1-nlines ) / 2 )+"em"); |
|
274 else if(align=='hanging') |
|
275 cur.setAttribute('dy',"0em") |
|
276 } |
|
277 } |
|
278 </script> |
|
279 <g xmlns="http://www.w3.org/2000/svg" xmlns:m="http://exslt.org/math" class="layer-group"> |
|
280 <rect width="833.2500000000001" height="387.15000000000003" x="-18.75" y="3.2" rx="4.65" fill="rgb(143,188,143)"/> |
|
281 </g> |
|
282 <g xmlns="http://www.w3.org/2000/svg" xmlns:m="http://exslt.org/math" class="layer-group"> |
|
283 <rect width="824.5000000000001" height="210.06" x="-15" y="139.46" rx="4.65" fill="rgb(93,155,205)"/> |
|
284 <text text-anchor="middle" dominant-baseline="mathematical" class="lgrp" transform="rotate(-90)" y="-7.5" width="210.06" x="-244.49">Core OS</text> |
|
285 </g> |
|
286 <g xmlns="http://www.w3.org/2000/svg" xmlns:m="http://exslt.org/math" class="layer" transform="translate(0 8.2)" id="ApplicationServices"> |
|
287 <rect x="0.3" y="0.3" width="9.3" rx="4.65" ry="4.65" class="layer" height="70.23"/> |
|
288 <text text-anchor="middle" dominant-baseline="mathematical" class="layer" transform="rotate(-90)" y="4.95" width="70.23" x="-35.415">Application Services</text> |
|
289 <g class="layer-detail" transform="translate(273.2000000000001 6.4)"> |
|
290 <rect x="-260.4000000000001" class="layer" y="-6.4" width="791.7000000000002" height="70.23"/> |
|
291 <g/> |
|
292 </g> |
|
293 </g> |
|
294 <g xmlns="http://www.w3.org/2000/svg" xmlns:m="http://exslt.org/math" class="layer" transform="translate(0 81.63000000000001)" id="GenericMiddleware"> |
|
295 <rect x="0.3" y="0.3" width="9.3" rx="4.65" ry="4.65" class="layer" height="54.63000000000001"/> |
|
296 <text text-anchor="middle" dominant-baseline="mathematical" class="layer" transform="rotate(-90)" y="4.95" width="54.63000000000001" x="-27.615000000000006">Generic Middleware</text> |
|
297 <g class="layer-detail" transform="translate(71.90000000000008 6.4)"> |
|
298 <rect x="-59.10000000000008" class="layer" y="-6.4" width="791.7000000000002" height="54.63000000000001"/> |
|
299 <g/> |
|
300 </g> |
|
301 </g> |
|
302 <g xmlns="http://www.w3.org/2000/svg" xmlns:m="http://exslt.org/math" class="layer" transform="translate(0 144.46)" id="OSServices"> |
|
303 <rect x="0.3" y="0.3" width="9.3" rx="4.65" ry="4.65" class="layer" height="126.63000000000001"/> |
|
304 <text text-anchor="middle" dominant-baseline="mathematical" class="layer" transform="rotate(-90)" y="4.95" width="126.63000000000001" x="-63.615">OS Services</text> |
|
305 <g class="layer-detail" transform="translate(12.8 6.4)"> |
|
306 <rect x="0" class="layer" y="-6.4" width="791.7000000000002" height="126.63000000000001"/> |
|
307 <g/> |
|
308 </g> |
|
309 </g> |
|
310 <g xmlns="http://www.w3.org/2000/svg" xmlns:m="http://exslt.org/math" class="layer" transform="translate(0 274.29)" id="KernelServices"> |
|
311 <rect x="0.3" y="0.3" width="9.3" rx="4.65" ry="4.65" class="layer" height="70.23"/> |
|
312 <text text-anchor="middle" dominant-baseline="mathematical" class="layer" transform="rotate(-90)" y="4.95" width="70.23" x="-35.415">Kernel Services</text> |
|
313 <g class="layer-detail" transform="translate(295.8500000000001 6.4)"> |
|
314 <rect x="-283.05000000000007" class="layer" y="-6.4" width="791.7000000000002" height="70.23"/> |
|
315 <g/> |
|
316 </g> |
|
317 </g> |
|
318 <g xmlns="http://www.w3.org/2000/svg" xmlns:m="http://exslt.org/math" class="layer" transform="translate(0 352.72)" id="Hardware"> |
|
319 <rect x="0.3" y="0.3" width="9.3" rx="4.65" ry="4.65" class="layer" height="32.63"/> |
|
320 <text text-anchor="middle" dominant-baseline="mathematical" class="layer" transform="rotate(-90)" y="4.95" width="32.63" x="-16.615000000000002">Hardware</text> |
|
321 <g class="layer-detail" transform="translate(286.1000000000001 6.4)"> |
|
322 <rect x="-273.30000000000007" class="layer" y="-6.4" width="791.7000000000002" height="32.63"/> |
|
323 <g/> |
|
324 </g> |
|
325 </g> |
|
326 <g xmlns="http://www.w3.org/2000/svg" xmlns:m="http://exslt.org/math" id="legend-root" class="legend" transform="translate(692.0679400000001 393.55) translate(92.43206 0) scale(1) translate(-92.43206)"> |
|
327 <text text-anchor="middle" class="title" y="2.1165000000000003" x="72.21603">Symbian OS vFuture<tspan dy="1em" x="72.21603">System Model</tspan> |
|
328 <tspan font-style="italic" dy="1em" id="release-version" x="72.21603">Build M04710a</tspan> |
|
329 </text> |
|
330 </g> |
|
331 <g xmlns="http://www.w3.org/2000/svg" xmlns:m="http://exslt.org/math" id="legend-display" class="legend" opacity="0.8" transform="translate(692.0679400000001 393.55)"> |
|
332 <g id="legend-owner"> |
|
333 <rect id="legend-ctrl" rx="5" ry="5" height="9.233" x="0" y="0" visibility="hidden" pointer-events="all" width="37"/> |
|
334 </g> |
|
335 </g> |
|
336 </s:svg> |