1 module deepmagic.dom.elements.html5.html5_element;
2 
3 import deepmagic.dom;
4 
5 class Html5Element(string tag_name = "", bool CAN_BE_EMPTY = false) : Element{
6 	bool can_be_empty = CAN_BE_EMPTY;
7 	
8 	mixin(AttributeTemplate!(typeof(this), "Id", "id"));
9 	mixin(AttributeTemplate!(typeof(this), "Title", "title"));
10 	mixin(AttributeTemplate!(typeof(this), "Lang", "lang"));
11 	mixin(AttributeTemplate!(typeof(this), "Translate", "translate"));
12 	mixin(AttributeTemplate!(typeof(this), "Dir", "dir"));
13 	//mixin(AttributeTemplate!(typeof(this), "Class", "class"));
14 	mixin(AttributeTemplate!(typeof(this), "Style", "style"));
15 	//mixin(AttributeTemplate!(typeof(this), "Data", "data-"));
16 	mixin(AttributeTemplate!(typeof(this), "OnAbort", "onabort"));
17 	mixin(AttributeTemplate!(typeof(this), "OnBlur", "onblur"));
18 	mixin(AttributeTemplate!(typeof(this), "OnCancel", "oncancel"));
19 	mixin(AttributeTemplate!(typeof(this), "OnCanPlay", "oncanplay"));
20 	mixin(AttributeTemplate!(typeof(this), "OnCanPlayThrough", "oncanplaythrough"));
21 	mixin(AttributeTemplate!(typeof(this), "OnChange", "onchange"));
22 	mixin(AttributeTemplate!(typeof(this), "OnClick", "onclick"));
23 	mixin(AttributeTemplate!(typeof(this), "OnCueChange", "oncuechange"));
24 	mixin(AttributeTemplate!(typeof(this), "OnDblClick", "ondblclick"));
25 	mixin(AttributeTemplate!(typeof(this), "OnDurationChange", "ondurationchange"));
26 	mixin(AttributeTemplate!(typeof(this), "OnEmptied", "onemptied"));
27 	mixin(AttributeTemplate!(typeof(this), "OnEnded", "onended"));
28 	mixin(AttributeTemplate!(typeof(this), "OnError", "onerror"));
29 	mixin(AttributeTemplate!(typeof(this), "OnFocus", "onfocus"));
30 	mixin(AttributeTemplate!(typeof(this), "OnInput", "oninput"));
31 	mixin(AttributeTemplate!(typeof(this), "OnInvalid", "oninvalid"));
32 	mixin(AttributeTemplate!(typeof(this), "OnKeyDown", "onkeydown"));
33 	mixin(AttributeTemplate!(typeof(this), "OnKeyPress", "onkeypress"));
34 	mixin(AttributeTemplate!(typeof(this), "OnKeyUp", "onkeyup"));
35 	mixin(AttributeTemplate!(typeof(this), "OnLoad", "onload"));
36 	mixin(AttributeTemplate!(typeof(this), "OnLoadedData", "onloadeddata"));
37 	mixin(AttributeTemplate!(typeof(this), "OnLoadedMetaData", "onloadedmetadata"));
38 	mixin(AttributeTemplate!(typeof(this), "OnLoadedStart", "onloadstart"));
39 	mixin(AttributeTemplate!(typeof(this), "OnMouseDown", "onmousedown"));
40 	mixin(AttributeTemplate!(typeof(this), "OnMouseEnter", "onmouseenter"));
41 	mixin(AttributeTemplate!(typeof(this), "OnMouseLeave", "onmouseleave"));
42 	mixin(AttributeTemplate!(typeof(this), "OnMouseMove", "onmousemove"));
43 	mixin(AttributeTemplate!(typeof(this), "OnMouseOut", "onmouseout"));
44 	mixin(AttributeTemplate!(typeof(this), "OnMouseOver", "onmouseover"));
45 	mixin(AttributeTemplate!(typeof(this), "OnMouseUp", "onmouseup"));
46 	mixin(AttributeTemplate!(typeof(this), "OnMouseWheel", "onmousewheel"));
47 	mixin(AttributeTemplate!(typeof(this), "OnPause", "onpause"));
48 	mixin(AttributeTemplate!(typeof(this), "OnPlay", "onplay"));
49 	mixin(AttributeTemplate!(typeof(this), "OnPlaying", "onplaying"));
50 	mixin(AttributeTemplate!(typeof(this), "OnProgress", "onprogress"));
51 	mixin(AttributeTemplate!(typeof(this), "OnRateChange", "onratechange"));
52 	mixin(AttributeTemplate!(typeof(this), "OnReset", "onreset"));
53 	mixin(AttributeTemplate!(typeof(this), "OnResize", "onresize"));
54 	mixin(AttributeTemplate!(typeof(this), "OnScroll", "onscroll"));
55 	mixin(AttributeTemplate!(typeof(this), "OnSeeked", "onseeked"));
56 	mixin(AttributeTemplate!(typeof(this), "OnSeeking", "onseeking"));
57 	mixin(AttributeTemplate!(typeof(this), "OnSelect", "onselect"));
58 	mixin(AttributeTemplate!(typeof(this), "OnShow", "onshow"));
59 	mixin(AttributeTemplate!(typeof(this), "OnStalled", "onstalled"));
60 	mixin(AttributeTemplate!(typeof(this), "OnSubmit", "onsubmit"));
61 	mixin(AttributeTemplate!(typeof(this), "OnSuspend", "onsuspend"));
62 	mixin(AttributeTemplate!(typeof(this), "OnTimeUpdate", "ontimeupdate"));
63 	mixin(AttributeTemplate!(typeof(this), "OnToggle", "ontoggle"));
64 	mixin(AttributeTemplate!(typeof(this), "OnVolumeChange", "onvolumechange"));
65 	mixin(AttributeTemplate!(typeof(this), "OnWaiting", "onwaiting"));
66 	
67 	this(string value = ""){
68 		super(new Html5Tag!(tag_name)());
69 		if(can_be_empty){
70 			this ~= new Text(value);
71 		}
72 	}
73 
74 	this(Element element){
75 		this();
76 		if(element !is null){
77 			this ~= element;
78 		}
79 	}
80 
81 	this(Element[] elements){
82 		this();
83 		if(elements !is null){
84 			foreach(int i, Element element; elements){
85 				this ~= element;
86 			}
87 		}
88 	}
89 
90 	void init(){}
91 
92 	void reset(){
93 		this.elements = null;
94 		this.init();
95 	}
96 }