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 }