summaryrefslogtreecommitdiff
path: root/strigoform/element.scm
diff options
context:
space:
mode:
Diffstat (limited to 'strigoform/element.scm')
-rw-r--r--strigoform/element.scm52
1 files changed, 52 insertions, 0 deletions
diff --git a/strigoform/element.scm b/strigoform/element.scm
new file mode 100644
index 0000000..a901960
--- /dev/null
+++ b/strigoform/element.scm
@@ -0,0 +1,52 @@
+(library (strigoform element)
+ (export element-value
+ set-element-value!
+ set-element-width!
+ set-element-height!
+ append-child!
+ remove!
+ replace-with!
+ set-attribute!
+ remove-attribute!
+ add-event-listener!
+ remove-event-listener!
+ clone-element)
+ (import (scheme base)
+ (hoot ffi))
+
+ (define-foreign element-value
+ "element" "value"
+ (ref null extern) -> (ref string))
+ (define-foreign set-element-value!
+ "element" "setValue"
+ (ref null extern) (ref string) -> none)
+ (define-foreign set-element-width!
+ "element" "setWidth"
+ (ref null extern) i32 -> none)
+ (define-foreign set-element-height!
+ "element" "setHeight"
+ (ref null extern) i32 -> none)
+ (define-foreign append-child!
+ "element" "appendChild"
+ (ref null extern) (ref null extern) -> (ref null extern))
+ (define-foreign remove!
+ "element" "remove"
+ (ref null extern) -> none)
+ (define-foreign replace-with!
+ "element" "replaceWith"
+ (ref null extern) (ref null extern) -> none)
+ (define-foreign set-attribute!
+ "element" "setAttribute"
+ (ref null extern) (ref string) (ref string) -> none)
+ (define-foreign remove-attribute!
+ "element" "removeAttribute"
+ (ref null extern) (ref string) -> none)
+ (define-foreign add-event-listener!
+ "element" "addEventListener"
+ (ref null extern) (ref string) (ref null extern) -> none)
+ (define-foreign remove-event-listener!
+ "element" "removeEventListener"
+ (ref null extern) (ref string) (ref null extern) -> none)
+ (define-foreign clone-element
+ "element" "clone"
+ (ref null extern) -> (ref null extern)))