1 #ifndef __SMILIMPL_H__
2 #define __SMILIMPL_H__
3 /**
4 * Phoebe DOM Implementation.
5 *
6 * This is a C++ approximation of the W3C DOM model, which follows
7 * fairly closely the specifications in the various .idl files, copies of
8 * which are provided for reference. Most important is this one:
9 *
10 * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
11 *
12 * Authors:
13 * Bob Jamison
14 *
15 * Copyright (C) 2005 Bob Jamison
16 *
17 * This library is free software; you can redistribute it and/or
18 * modify it under the terms of the GNU Lesser General Public
19 * License as published by the Free Software Foundation; either
20 * version 2.1 of the License, or (at your option) any later version.
21 *
22 * This library is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
25 * Lesser General Public License for more details.
26 *
27 * You should have received a copy of the GNU Lesser General Public
28 * License along with this library; if not, write to the Free Software
29 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
30 */
33 #include "smil.h"
34 #include "domimpl.h"
35 #include "views.h"
36 #include "events.h"
39 namespace org
40 {
41 namespace w3c
42 {
43 namespace dom
44 {
45 namespace smil
46 {
49 /*#########################################################################
50 ## SMILDocumentImpl
51 #########################################################################*/
53 /**
54 *
55 */
56 class SMILDocumentImpl : virtual public SMILDocument,
57 virtual public DocumentImpl
58 {
59 public:
62 //##################
63 //# Non-API methods
64 //##################
66 /**
67 *
68 */
69 SMILDocumentImpl();
71 /**
72 *
73 */
74 virtual ~SMILDocumentImpl();
77 };
80 /*#########################################################################
81 ## SMILElementImpl
82 #########################################################################*/
84 /**
85 *
86 */
87 class SMILElementImpl : virtual public SMILElement,
88 public ElementImpl
89 {
90 public:
92 /**
93 *
94 */
95 virtual DOMString getId();
97 /**
98 *
99 */
100 virtual void setId(const DOMString &val) throw (dom::DOMException);
103 //##################
104 //# Non-API methods
105 //##################
107 /**
108 *
109 */
110 virtual ~SMILElementImpl();
113 };
116 /*#########################################################################
117 ## SMILLayoutElementImpl
118 #########################################################################*/
120 /**
121 *
122 */
123 class SMILLayoutElementImpl : virtual public SMILLayoutElement,
124 public SMILElementImpl
125 {
126 public:
128 /**
129 *
130 */
131 virtual DOMString getType();
133 /**
134 *
135 */
136 virtual bool getResolved();
138 //##################
139 //# Non-API methods
140 //##################
142 /**
143 *
144 */
145 virtual ~SMILLayoutElementImpl();
148 };
151 /*#########################################################################
152 ## SMILTopLayoutElementImpl
153 #########################################################################*/
155 /**
156 *
157 */
158 class SMILTopLayoutElementImpl : virtual public SMILTopLayoutElement,
159 public SMILElementImpl
160 {
161 public:
164 //##################
165 //# Non-API methods
166 //##################
168 /**
169 *
170 */
171 virtual ~SMILTopLayoutElementImpl();
174 };
177 /*#########################################################################
178 ## SMILRootLayoutElementImpl
179 #########################################################################*/
181 /**
182 *
183 */
184 class SMILRootLayoutElementImpl : virtual public SMILRootLayoutElement,
185 public SMILElementImpl
186 {
187 public:
190 //##################
191 //# Non-API methods
192 //##################
194 /**
195 *
196 */
197 virtual ~SMILRootLayoutElementImpl();
200 };
203 /*#########################################################################
204 ## SMILRegionElementImpl
205 #########################################################################*/
207 /**
208 *
209 */
210 class SMILRegionElementImpl : virtual public SMILRegionElement,
211 public SMILElementImpl
212 {
213 public:
216 /**
217 *
218 */
219 virtual DOMString getFit();
221 /**
222 *
223 */
224 virtual void setFit(const DOMString &val) throw (dom::DOMException);
226 /**
227 *
228 */
229 virtual DOMString getTop();
231 /**
232 *
233 */
234 virtual void setTop(const DOMString &val) throw (dom::DOMException);
236 /**
237 *
238 */
239 virtual long getZIndex();
241 /**
242 *
243 */
244 virtual void setZIndex(long val) throw (dom::DOMException);
247 //##################
248 //# Non-API methods
249 //##################
251 /**
252 *
253 */
254 virtual ~SMILRegionElementImpl();
257 };
263 /*#########################################################################
264 ## SMILMediaElementImpl
265 #########################################################################*/
267 /**
268 *
269 */
270 class SMILMediaElementImpl : virtual public SMILMediaElement,
271 public SMILElementImpl
272 {
273 public:
276 /**
277 *
278 */
279 virtual DOMString getAbstractAttr();
281 /**
282 *
283 */
284 virtual void setAbstractAttr(const DOMString &val) throw (dom::DOMException);
286 /**
287 *
288 */
289 virtual DOMString getAlt();
291 /**
292 *
293 */
294 virtual void setAlt(const DOMString &val) throw (dom::DOMException);
296 /**
297 *
298 */
299 virtual DOMString getAuthor();
301 /**
302 *
303 */
304 virtual void setAuthor(const DOMString &val) throw (dom::DOMException);
306 /**
307 *
308 */
309 virtual DOMString getClipBegin();
311 /**
312 *
313 */
314 virtual void setClipBegin(const DOMString &val) throw (dom::DOMException);
316 /**
317 *
318 */
319 virtual DOMString getClipEnd();
321 /**
322 *
323 */
324 virtual void setClipEnd(const DOMString &val) throw (dom::DOMException);
326 /**
327 *
328 */
329 virtual DOMString getCopyright();
331 /**
332 *
333 */
334 virtual void setCopyright(const DOMString &val) throw (dom::DOMException);
336 /**
337 *
338 */
339 virtual DOMString getLongdesc();
341 /**
342 *
343 */
344 virtual void setLongdesc(const DOMString &val) throw (dom::DOMException);
346 /**
347 *
348 */
349 virtual DOMString getPort();
351 /**
352 *
353 */
354 virtual void setPort(const DOMString &val) throw (dom::DOMException);
356 /**
357 *
358 */
359 virtual DOMString getReadIndex();
361 /**
362 *
363 */
364 virtual void setReadIndex(const DOMString &val) throw (dom::DOMException);
366 /**
367 *
368 */
369 virtual DOMString getRtpformat();
371 /**
372 *
373 */
374 virtual void setRtpformat(const DOMString &val) throw (dom::DOMException);
376 /**
377 *
378 */
379 virtual DOMString getSrc();
381 /**
382 *
383 */
384 virtual void setSrc(const DOMString &val) throw (dom::DOMException);
386 /**
387 *
388 */
389 virtual DOMString getStripRepeat();
391 /**
392 *
393 */
394 virtual void setStripRepeat(const DOMString &val) throw (dom::DOMException);
396 /**
397 *
398 */
399 virtual DOMString getTitle();
401 /**
402 *
403 */
404 virtual void setTitle(const DOMString &val) throw (dom::DOMException);
406 /**
407 *
408 */
409 virtual DOMString getTransport();
411 /**
412 *
413 */
414 virtual void setTransport(const DOMString &val) throw (dom::DOMException);
416 /**
417 *
418 */
419 virtual DOMString getType();
421 /**
422 *
423 */
424 virtual void setType(const DOMString &val) throw (dom::DOMException);
428 //##################
429 //# Non-API methods
430 //##################
432 /**
433 *
434 */
435 virtual ~SMILMediaElementImpl();
438 };
441 /*#########################################################################
442 ## SMILRefElementImpl
443 #########################################################################*/
445 /**
446 *
447 */
448 class SMILRefElementImpl : virtual public SMILRefElement,
449 public SMILMediaElementImpl
450 {
451 public:
454 //##################
455 //# Non-API methods
456 //##################
458 /**
459 *
460 */
461 virtual ~SMILRefElementImpl();
464 };
467 /*#########################################################################
468 ## SMILAnimationImpl
469 #########################################################################*/
471 /**
472 *
473 */
474 class SMILAnimationImpl : virtual public SMILAnimation,
475 public SMILElementImpl
476 {
477 public:
479 /**
480 *
481 */
482 virtual unsigned short getAdditive();
484 /**
485 *
486 */
487 virtual void setAdditive(unsigned short val) throw (dom::DOMException);
489 /**
490 *
491 */
492 virtual unsigned short getAccumulate();
494 /**
495 *
496 */
497 virtual void setAccumulate(unsigned short val) throw (dom::DOMException);
499 /**
500 *
501 */
502 virtual unsigned short getCalcMode();
504 /**
505 *
506 */
507 virtual void setCalcMode(unsigned short val) throw (dom::DOMException);
509 /**
510 *
511 */
512 virtual DOMString getKeySplines();
514 /**
515 *
516 */
517 virtual void setKeySplines(const DOMString &val) throw (dom::DOMException);
519 /**
520 *
521 */
522 virtual TimeList getKeyTimes();
524 /**
525 *
526 */
527 virtual void setKeyTimes(const TimeList &val) throw (dom::DOMException);
529 /**
530 *
531 */
532 virtual DOMString getValues();
534 /**
535 *
536 */
537 virtual void setValues(const DOMString &val) throw (dom::DOMException);
539 /**
540 *
541 */
542 virtual DOMString getFrom();
544 /**
545 *
546 */
547 virtual void setFrom(const DOMString &val) throw (dom::DOMException);
549 /**
550 *
551 */
552 virtual DOMString getTo();
554 /**
555 *
556 */
557 virtual void setTo(const DOMString &val) throw (dom::DOMException);
559 /**
560 *
561 */
562 virtual DOMString getBy();
564 /**
565 *
566 */
567 virtual void setBy(const DOMString &val) throw (dom::DOMException);
569 //##################
570 //# Non-API methods
571 //##################
573 /**
574 *
575 */
576 virtual ~SMILAnimationImpl();
578 protected:
580 TimeList keyTimes;
583 };
586 /*#########################################################################
587 ## SMILAnimateElementImpl
588 #########################################################################*/
590 /**
591 *
592 */
593 class SMILAnimateElementImpl : virtual public SMILAnimateElement,
594 public SMILAnimationImpl
595 {
596 public:
599 //##################
600 //# Non-API methods
601 //##################
603 /**
604 *
605 */
606 virtual ~SMILAnimateElementImpl();
609 };
612 /*#########################################################################
613 ## SMILSetElementImpl
614 #########################################################################*/
616 /**
617 *
618 */
619 class SMILSetElementImpl : virtual public SMILSetElement,
620 public SMILElementImpl
621 {
622 public:
624 /**
625 *
626 */
627 virtual DOMString getTo();
629 /**
630 *
631 */
632 virtual void setTo(const DOMString &val);
634 //##################
635 //# Non-API methods
636 //##################
638 /**
639 *
640 */
641 virtual ~SMILSetElementImpl();
644 };
647 /*#########################################################################
648 ## SMILAnimateMotionElementImpl
649 #########################################################################*/
651 /**
652 *
653 */
654 class SMILAnimateMotionElementImpl : virtual public SMILAnimateMotionElement,
655 public SMILAnimateElementImpl
656 {
657 public:
659 /**
660 *
661 */
662 virtual DOMString getPath();
664 /**
665 *
666 */
667 virtual void setPath(const DOMString &val) throw(dom::DOMException);
669 /**
670 *
671 */
672 virtual DOMString getOrigin();
674 /**
675 *
676 */
677 virtual void setOrigin(const DOMString &val) throw(dom::DOMException);
680 //##################
681 //# Non-API methods
682 //##################
684 /**
685 *
686 */
687 virtual ~SMILAnimateMotionElementImpl();
690 };
693 /*#########################################################################
694 ## SMILAnimateColorElementImpl
695 #########################################################################*/
697 /**
698 *
699 */
700 class SMILAnimateColorElementImpl : virtual public SMILAnimateColorElement,
701 public SMILAnimationImpl
702 {
703 public:
706 //##################
707 //# Non-API methods
708 //##################
710 /**
711 *
712 */
713 virtual ~SMILAnimateColorElementImpl();
716 };
722 /*#########################################################################
723 ## SMILSwitchElementImpl
724 #########################################################################*/
726 /**
727 *
728 */
729 class SMILSwitchElementImpl : virtual public SMILSwitchElement,
730 public SMILElementImpl
731 {
732 public:
734 /**
735 *
736 */
737 virtual Element *getSelectedElement();
739 //##################
740 //# Non-API methods
741 //##################
743 /**
744 *
745 */
746 virtual ~SMILSwitchElementImpl();
749 };
755 } //namespace smil
756 } //namespace dom
757 } //namespace w3c
758 } //namespace org
760 #endif /* __SMILIMPL_H__ */
762 /*#########################################################################
763 ## E N D O F F I L E
764 #########################################################################*/