]> gitweb.factorcode.org Git - factor.git/commitdiff
ui.gadgets.flex-border: new vocab
authorAlexander Ilin <alex.ilin@protonmail.com>
Mon, 14 Aug 2023 20:49:01 +0000 (22:49 +0200)
committerAlexander Ilin <alex.ilin@protonmail.com>
Mon, 14 Aug 2023 20:55:04 +0000 (22:55 +0200)
extra/ui/gadgets/flex-borders/authors.txt [new file with mode: 0644]
extra/ui/gadgets/flex-borders/flex-borders.factor [new file with mode: 0644]
extra/ui/gadgets/flex-borders/summary.txt [new file with mode: 0644]

diff --git a/extra/ui/gadgets/flex-borders/authors.txt b/extra/ui/gadgets/flex-borders/authors.txt
new file mode 100644 (file)
index 0000000..8e1955f
--- /dev/null
@@ -0,0 +1 @@
+Alexander Ilin
diff --git a/extra/ui/gadgets/flex-borders/flex-borders.factor b/extra/ui/gadgets/flex-borders/flex-borders.factor
new file mode 100644 (file)
index 0000000..97f2bf8
--- /dev/null
@@ -0,0 +1,20 @@
+! Copyright (C) 2019 Alexander Ilin.
+USING: accessors arrays kernel locals math sequences
+ui.gadgets ui.gadgets.tracks ;
+IN: ui.gadgets.flex-borders
+
+<PRIVATE
+
+:: border ( gadget dim orientation -- gadget' )
+    orientation <track>
+        <gadget> dim >>dim f track-add
+        gadget             1 track-add
+        <gadget> dim >>dim f track-add ;
+
+PRIVATE>
+
+: <flex-border> ( gadget gaps -- gadget' )
+    first2 [| w h |
+        w 0 > [ w 0 2array horizontal border ] when
+        h 0 > [ 0 h 2array vertical   border ] when
+    ] call ;
diff --git a/extra/ui/gadgets/flex-borders/summary.txt b/extra/ui/gadgets/flex-borders/summary.txt
new file mode 100644 (file)
index 0000000..7218ae4
--- /dev/null
@@ -0,0 +1 @@
+A border implementation that doesn't fixate the contained gadget size