Skip to content

Commit

Permalink
dom: remove X* = ref XObj [backport] (nim-lang#20910)
Browse files Browse the repository at this point in the history
dom: remove X* = ref XObj
  • Loading branch information
metagn authored Nov 29, 2022
1 parent 9c5061e commit ce97140
Showing 1 changed file with 37 additions and 76 deletions.
113 changes: 37 additions & 76 deletions lib/js/dom.nim
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,7 @@ const
DomApiVersion* = 3 ## the version of DOM API we try to follow. No guarantees though.

type
EventTarget* = ref EventTargetObj
EventTargetObj {.importc.} = object of RootObj
EventTarget* {.importc.} = ref object of RootObj
onabort*: proc (event: Event) {.closure.}
onblur*: proc (event: Event) {.closure.}
onchange*: proc (event: Event) {.closure.}
Expand Down Expand Up @@ -160,8 +159,7 @@ type

Storage* {.importc.} = ref object

Window* = ref WindowObj
WindowObj {.importc.} = object of EventTargetObj
Window* {.importc.} = ref object of EventTarget
document*: Document
event*: Event
history*: History
Expand Down Expand Up @@ -190,11 +188,9 @@ type
sessionStorage*: Storage
parent*: Window

Frame* = ref FrameObj
FrameObj {.importc.} = object of WindowObj
Frame* {.importc.} = ref object of Window

ClassList* = ref ClassListObj
ClassListObj {.importc.} = object of RootObj
ClassList* {.importc.} = ref object of RootObj

NodeType* = enum
ElementNode = 1,
Expand All @@ -210,8 +206,7 @@ type
DocumentFragmentNode,
NotationNode

Node* = ref NodeObj
NodeObj {.importc.} = object of EventTargetObj
Node* {.importc.} = ref object of EventTarget
attributes*: seq[Node]
childNodes*: seq[Node]
children*: seq[Node]
Expand All @@ -235,8 +230,7 @@ type
parentElement*: Element
isConnected*: bool

Document* = ref DocumentObj
DocumentObj {.importc.} = object of NodeObj
Document* {.importc.} = ref object of Node
activeElement*: Element
documentElement*: Element
alinkColor*: cstring
Expand All @@ -263,8 +257,7 @@ type
links*: seq[LinkElement]
fonts*: FontFaceSet

Element* = ref ElementObj
ElementObj {.importc.} = object of NodeObj
Element* {.importc.} = ref object of Node
className*: cstring
classList*: ClassList
checked*: bool
Expand All @@ -285,8 +278,7 @@ type
offsetLeft*: int
offsetTop*: int

ValidityState* = ref ValidityStateObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/ValidityState>`_
ValidityStateObj {.importc.} = object
ValidityState* {.importc.} = ref object ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/ValidityState>`_
badInput*: bool
customError*: bool
patternMismatch*: bool
Expand All @@ -299,25 +291,21 @@ type
valid*: bool
valueMissing*: bool

Blob* = ref BlobObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/Blob>`_
BlobObj {.importc.} = object of RootObj
Blob* {.importc.} = ref object of RootObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/Blob>`_
size*: int
`type`*: cstring

File* = ref FileObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/File>`_
FileObj {.importc.} = object of Blob
File* {.importc.} = ref object of Blob ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/File>`_
lastModified*: int
name*: cstring

TextAreaElement* = ref TextAreaElementObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement>`_
TextAreaElementObj {.importc.} = object of Element
TextAreaElement* {.importc.} = ref object of Element ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement>`_
value*: cstring
selectionStart*, selectionEnd*: int
selectionDirection*: cstring
rows*, cols*: int

InputElement* = ref InputElementObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement>`_
InputElementObj {.importc.} = object of Element
InputElement* {.importc.} = ref object of Element ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement>`_
# Properties related to the parent form
formAction*: cstring
formEncType*: cstring
Expand Down Expand Up @@ -369,37 +357,32 @@ type
valueAsDate*: cstring
valueAsNumber*: float

LinkElement* = ref LinkObj
LinkObj {.importc.} = object of ElementObj
LinkElement* {.importc.} = ref object of Element
target*: cstring
text*: cstring
x*: int
y*: int

EmbedElement* = ref EmbedObj
EmbedObj {.importc.} = object of ElementObj
EmbedElement* {.importc.} = ref object of Element
height*: int
hspace*: int
src*: cstring
width*: int
`type`*: cstring
vspace*: int

AnchorElement* = ref AnchorObj
AnchorObj {.importc.} = object of ElementObj
AnchorElement* {.importc.} = ref object of Element
text*: cstring
x*, y*: int

OptionElement* = ref OptionObj
OptionObj {.importc.} = object of ElementObj
OptionElement* {.importc.} = ref object of Element
defaultSelected*: bool
selected*: bool
selectedIndex*: int
text*: cstring
value*: cstring

FormElement* = ref FormObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement>`_
FormObj {.importc.} = object of ElementObj
FormElement* {.importc.} = ref object of Element ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement>`_
acceptCharset*: cstring
action*: cstring
autocomplete*: cstring
Expand All @@ -411,8 +394,7 @@ type
noValidate*: bool
target*: cstring

ImageElement* = ref ImageObj
ImageObj {.importc.} = object of ElementObj
ImageElement* {.importc.} = ref object of Element
border*: int
complete*: bool
height*: int
Expand All @@ -422,8 +404,7 @@ type
vspace*: int
width*: int

Style* = ref StyleObj
StyleObj {.importc.} = object of RootObj
Style* {.importc.} = ref object of RootObj
alignContent*: cstring
alignItems*: cstring
alignSelf*: cstring
Expand Down Expand Up @@ -799,8 +780,7 @@ type
AtTarget,
BubblingPhase

Event* = ref EventObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/Event>`_
EventObj {.importc.} = object of RootObj
Event* {.importc.} = ref object of RootObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/Event>`_
bubbles*: bool
cancelBubble*: bool
cancelable*: bool
Expand All @@ -812,13 +792,11 @@ type
`type`*: cstring
isTrusted*: bool

UIEvent* = ref UIEventObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/UIEvent>`_
UIEventObj {.importc.} = object of Event
UIEvent* {.importc.} = ref object of Event ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/UIEvent>`_
detail*: int64
view*: Window

KeyboardEvent* = ref KeyboardEventObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent>`_
KeyboardEventObj {.importc.} = object of UIEvent
KeyboardEvent* {.importc.} = ref object of UIEvent ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent>`_
altKey*, ctrlKey*, metaKey*, shiftKey*: bool
code*: cstring
isComposing*: bool
Expand Down Expand Up @@ -1180,8 +1158,7 @@ type
FourthButton = 8,
FifthButton = 16

MouseEvent* = ref MouseEventObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent>`_
MouseEventObj {.importc.} = object of UIEvent
MouseEvent* {.importc.} = ref object of UIEvent ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent>`_
altKey*, ctrlKey*, metaKey*, shiftKey*: bool
button*: int
buttons*: int
Expand All @@ -1198,13 +1175,11 @@ type
File = "file",
String = "string"

DataTransferItem* = ref DataTransferItemObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem>`_
DataTransferItemObj {.importc.} = object of RootObj
DataTransferItem* {.importc.} = ref object of RootObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem>`_
kind*: cstring
`type`*: cstring

DataTransfer* = ref DataTransferObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer>`_
DataTransferObj {.importc.} = object of RootObj
DataTransfer* {.importc.} = ref object of RootObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer>`_
dropEffect*: cstring
effectAllowed*: cstring
files*: seq[Element]
Expand Down Expand Up @@ -1246,8 +1221,7 @@ type
## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent>`_
clipboardData*: DataTransfer

StorageEvent* = ref StorageEventObj ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent>`_
StorageEventObj {.importc.} = object of Event
StorageEvent* {.importc.} = ref object of Event ## see `docs<https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent>`_
key*: cstring
newValue*, oldValue*: cstring
storageArea*: Storage
Expand All @@ -1256,21 +1230,18 @@ type
TouchList* {.importc.} = ref object of RootObj
length*: int

Touch* = ref TouchObj
TouchObj {.importc.} = object of RootObj
Touch* {.importc.} = ref object of RootObj
identifier*: int
screenX*, screenY*, clientX*, clientY*, pageX*, pageY*: int
target*: Element
radiusX*, radiusY*: int
rotationAngle*: int
force*: float

TouchEvent* = ref TouchEventObj
TouchEventObj {.importc.} = object of UIEvent
TouchEvent* {.importc.} = ref object of UIEvent
changedTouches*, targetTouches*, touches*: seq[Touch]

Location* = ref LocationObj
LocationObj {.importc.} = object of RootObj
Location* {.importc.} = ref object of RootObj
hash*: cstring
host*: cstring
hostname*: cstring
Expand All @@ -1281,12 +1252,10 @@ type
search*: cstring
origin*: cstring

History* = ref HistoryObj
HistoryObj {.importc.} = object of RootObj
History* {.importc.} = ref object of RootObj
length*: int

Navigator* = ref NavigatorObj
NavigatorObj {.importc.} = object of RootObj
Navigator* {.importc.} = ref object of RootObj
appCodeName*: cstring
appName*: cstring
appVersion*: cstring
Expand Down Expand Up @@ -1324,8 +1293,7 @@ type
ToolBar* = LocationBar
StatusBar* = LocationBar

Screen = ref ScreenObj
ScreenObj {.importc.} = object of RootObj
Screen* {.importc.} = ref object of RootObj
availHeight*: int
availWidth*: int
colorDepth*: int
Expand Down Expand Up @@ -1355,8 +1323,7 @@ type
`block`*: cstring
inline*: cstring

MediaQueryList* = ref MediaQueryListObj
MediaQueryListObj {.importc.} = object of EventTargetObj
MediaQueryList* {.importc.} = ref object of EventTarget
matches*: bool
media*: cstring

Expand All @@ -1371,31 +1338,26 @@ since (1, 3):
## discard prsr.parseFromString("<html><marquee>Hello World</marquee></html>".cstring, "text/html".cstring)
## ```

DomException* = ref DOMExceptionObj
DomException* {.importc.} = ref object
## The DOMException interface represents an abnormal event (called an exception)
## which occurs as a result of calling a method or accessing a property of a web API.
## Each exception has a name, which is a short "CamelCase" style string identifying
## the error or abnormal condition.
## https://developer.mozilla.org/en-US/docs/Web/API/DOMException

DOMExceptionObj {.importc.} = object

FileReader* = ref FileReaderObj
FileReader* {.importc.} = ref object of EventTarget
## The FileReader object lets web applications asynchronously read the contents of files
## (or raw data buffers) stored on the user's computer, using File or Blob objects to specify
## the file or data to read.
## https://developer.mozilla.org/en-US/docs/Web/API/FileReader

FileReaderObj {.importc.} = object of EventTargetObj

FileReaderState* = distinct range[0'u16..2'u16]
RootNodeOptions* = object of RootObj
composed*: bool
DocumentOrShadowRoot* {.importc.} = object of RootObj
activeElement*: Element
# styleSheets*: StyleSheetList
ShadowRoot* = ref ShadowRootObj
ShadowRootObj {.importc.} = object of DocumentOrShadowRoot
ShadowRoot* {.importc.} = ref object of DocumentOrShadowRoot
delegatesFocus*: bool
host*: Element
innerHTML*: cstring
Expand All @@ -1404,8 +1366,7 @@ since (1, 3):
mode*: cstring
delegatesFocus*: bool

HTMLSlotElement* = ref HTMLSlotElementObj
HTMLSlotElementObj {.importc.} = object of RootObj
HTMLSlotElement* {.importc.} = ref object of RootObj
name*: cstring
SlotOptions* = object of RootObj
flatten*: bool
Expand Down

0 comments on commit ce97140

Please sign in to comment.