From a0bcdbb14e100106f2a6bbc6b3a071755779d9f1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Laurent?= <francois.laurent@posteo.net>
Date: Sat, 28 May 2022 09:54:00 +0200
Subject: [PATCH] inline tag selector (#16 complete)

---
 src/larvatagger.css | 21 +++++++++++++++++++++
 src/wgl.jl          |  6 +++---
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/src/larvatagger.css b/src/larvatagger.css
index d30142c..c4bbf26 100644
--- a/src/larvatagger.css
+++ b/src/larvatagger.css
@@ -145,3 +145,24 @@ input[type=text]:disabled {
 	height: 192px;
 	border-width: 8px;
 }
+
+.player button {
+	margin-left: 0.25rem;
+}
+
+#tag-selector {
+	width: 1000px;
+	overflow-x: auto;
+}
+#tag-selector select {
+	margin-top: 0.75rem;
+	margin-bottom: 0.5rem;
+}
+#tag-selector option {
+	border-color: #000;
+	border-width: 1px;
+	border-radius: 0.25rem;
+	display: inline-block;
+	float: left;
+	margin-left: 0.25rem;
+}
diff --git a/src/wgl.jl b/src/wgl.jl
index b770297..6793a06 100644
--- a/src/wgl.jl
+++ b/src/wgl.jl
@@ -350,7 +350,7 @@ function player(animator::TimeController; kwargs...)
            stepbackwardbutton(animator),
            stepforwardbutton(animator),
            with_attributes(kwargs;
-                           class="flex flex-row",
+                           class="flex flex-row player",
                            style="width: 100%; height: 40px"),
           )
 end
@@ -859,7 +859,7 @@ function to_dom(selectedtags, selectable)
                           onmousedown=selectable ? js"LarvaTagger.toggleTagAtPointer(event)" : nothing,
                          ) for (tagname, selected) in selectedtags;
                multiple=true,
-               size=length(selectedtags),
+               size=1,
               )
 end
 
@@ -880,7 +880,7 @@ function JSServe.jsrender(session::Session, ts::TagSelector)
         end
         evaljs(session, js"LarvaTagger.setTagSelector($fromjs)")
     end
-    taglist = r(session, DOM.div(to_dom(ts.selected[], ts.selectable)))
+    taglist = r(session, DOM.div(to_dom(ts.selected[], ts.selectable); id="tag-selector"))
     on(ts.selected) do selected
         js_dom = JSServe.jsrender(session, to_dom(selected, ts.selectable))
         html_dom = replace(string(js_dom), "'" => "\\'")
-- 
GitLab