From 1ad7567b288d873e12021f6100a20bc82d7cc664 Mon Sep 17 00:00:00 2001 From: Araq Date: Wed, 22 Nov 2017 14:37:12 +0100 Subject: [PATCH] added new experiments --- experiments/config.nims | 1 + experiments/scrollapp_simple.nim | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 experiments/config.nims create mode 100644 experiments/scrollapp_simple.nim diff --git a/experiments/config.nims b/experiments/config.nims new file mode 100644 index 0000000..532b206 --- /dev/null +++ b/experiments/config.nims @@ -0,0 +1 @@ +--path: "../src" diff --git a/experiments/scrollapp_simple.nim b/experiments/scrollapp_simple.nim new file mode 100644 index 0000000..cdd19cd --- /dev/null +++ b/experiments/scrollapp_simple.nim @@ -0,0 +1,25 @@ +## Example that shows how to accomplish an "infinitely scrolling" app. + +include karax / prelude +import karax / [kdom, vstyles] + +var entries: seq[cstring] = @[] +for i in 1..500: + entries.add(cstring("Entry ") & &i) + +proc scrollEvent(ev: Event; n: VNode) = + let d = n.dom + if d != nil and inViewport(d.lastChild): + # "load" more data: + for i in 1..50: + entries.add(cstring("Loaded Entry ") & &i) + +proc createDom(): VNode = + result = buildHtml(): + tdiv(onscroll=scrollEvent, style=style( + (StyleAttr.height, cstring"400px"), (StyleAttr.overflow, cstring"scroll"))): + for x in entries: + tdiv: + text x + +setRenderer createDom