v0.8.0: tangle to XDG (~/.local/share/cl-tty/), remove stale memex .lisp files
This commit is contained in:
@@ -32,7 +32,7 @@ other container components (scrollbox, box, slot, etc.). This keeps
|
||||
the symbol namespace clean and avoids accidental collisions with
|
||||
user-level code.
|
||||
|
||||
#+BEGIN_SRC lisp :tangle ../src/components/tabbar.lisp
|
||||
#+BEGIN_SRC lisp :tangle ~/.local/share/cl-tty/src/components/tabbar.lisp
|
||||
(in-package #:cl-tty.container)
|
||||
#+END_SRC
|
||||
|
||||
@@ -48,7 +48,7 @@ The ~tabs~ slot is a simple plist list rather than a hash table or
|
||||
alist because the total number of tabs in a UI is typically small
|
||||
(< 20) and we need ordered iteration for rendering.
|
||||
|
||||
#+BEGIN_SRC lisp :tangle ../src/components/tabbar.lisp
|
||||
#+BEGIN_SRC lisp :tangle ~/.local/share/cl-tty/src/components/tabbar.lisp
|
||||
(defclass tab-bar (dirty-mixin)
|
||||
((tabs :initform nil :initarg :tabs
|
||||
:accessor tab-bar-tabs :type list)
|
||||
@@ -65,7 +65,7 @@ Convenience constructor that forwards keyword arguments to
|
||||
~make-instance~ everywhere gives us a single place to add
|
||||
defaulting, validation, or initialization hooks in the future.
|
||||
|
||||
#+BEGIN_SRC lisp :tangle ../src/components/tabbar.lisp
|
||||
#+BEGIN_SRC lisp :tangle ~/.local/share/cl-tty/src/components/tabbar.lisp
|
||||
(defun make-tab-bar (&key tabs active)
|
||||
(make-instance 'tab-bar :tabs (or tabs nil) :active active))
|
||||
#+END_SRC
|
||||
@@ -79,7 +79,7 @@ tab becomes active automatically — this ensures there is always a
|
||||
sensible default when the first tab is created. Returns the ~id~ so
|
||||
callers can chain or store it.
|
||||
|
||||
#+BEGIN_SRC lisp :tangle ../src/components/tabbar.lisp
|
||||
#+BEGIN_SRC lisp :tangle ~/.local/share/cl-tty/src/components/tabbar.lisp
|
||||
(defun tab-bar-add (tb id title)
|
||||
"Add a tab with ID and TITLE. Sets as active if first tab."
|
||||
(setf (tab-bar-tabs tb)
|
||||
@@ -95,7 +95,7 @@ Returns the layout node so the layout engine can position and size
|
||||
the tab bar within its parent. Every component that participates in
|
||||
automatic layout must implement this method.
|
||||
|
||||
#+BEGIN_SRC lisp :tangle ../src/components/tabbar.lisp
|
||||
#+BEGIN_SRC lisp :tangle ~/.local/share/cl-tty/src/components/tabbar.lisp
|
||||
(defmethod component-layout-node ((tb tab-bar))
|
||||
(tab-bar-layout-node tb))
|
||||
#+END_SRC
|
||||
@@ -110,7 +110,7 @@ The lookup strategy — mapcar ids, position, mod — is O(n) but
|
||||
acceptable since tab lists are small. A hash-based index would be
|
||||
premature optimization at this scale.
|
||||
|
||||
#+BEGIN_SRC lisp :tangle ../src/components/tabbar.lisp
|
||||
#+BEGIN_SRC lisp :tangle ~/.local/share/cl-tty/src/components/tabbar.lisp
|
||||
(defun tab-bar-next (tb)
|
||||
"Move to next tab."
|
||||
(let* ((tabs (tab-bar-tabs tb))
|
||||
@@ -130,7 +130,7 @@ incrementing it. ~mod~ handles negative wrap-around correctly in
|
||||
Common Lisp (returns a non-negative remainder), so ~(mod (1- 0) 3)~
|
||||
produces 2 rather than −1.
|
||||
|
||||
#+BEGIN_SRC lisp :tangle ../src/components/tabbar.lisp
|
||||
#+BEGIN_SRC lisp :tangle ~/.local/share/cl-tty/src/components/tabbar.lisp
|
||||
(defun tab-bar-prev (tb)
|
||||
"Move to previous tab."
|
||||
(let* ((tabs (tab-bar-tabs tb))
|
||||
@@ -150,7 +150,7 @@ cyclic navigation. This is used when a user clicks a tab (via mouse
|
||||
binding), when a programmatic action needs to switch views, or when
|
||||
activating a tab from outside the keyboard flow. Always marks dirty.
|
||||
|
||||
#+BEGIN_SRC lisp :tangle ../src/components/tabbar.lisp
|
||||
#+BEGIN_SRC lisp :tangle ~/.local/share/cl-tty/src/components/tabbar.lisp
|
||||
(defun tab-bar-select (tb id)
|
||||
"Select a tab by ID."
|
||||
(setf (tab-bar-active tb) id)
|
||||
@@ -165,7 +165,7 @@ consumed and ~nil~ otherwise, which lets the keybinding system fall
|
||||
through to other handlers — important for composable UIs where a tab
|
||||
bar lives alongside other focusable elements.
|
||||
|
||||
#+BEGIN_SRC lisp :tangle ../src/components/tabbar.lisp
|
||||
#+BEGIN_SRC lisp :tangle ~/.local/share/cl-tty/src/components/tabbar.lisp
|
||||
(defun tab-bar-handle-key (tb event)
|
||||
"Handle a key-event on a TabBar. Returns T if handled."
|
||||
(case (key-event-key event)
|
||||
@@ -186,7 +186,7 @@ exceeds the available space, tabs are truncated and an ellipsis
|
||||
~...~ is drawn at the overflow point. This prevents the tab bar from
|
||||
breaking the layout on narrow terminals.
|
||||
|
||||
#+BEGIN_SRC lisp :tangle ../src/components/tabbar.lisp
|
||||
#+BEGIN_SRC lisp :tangle ~/.local/share/cl-tty/src/components/tabbar.lisp
|
||||
(defmethod render ((tb tab-bar) backend)
|
||||
(let* ((ln (tab-bar-layout-node tb))
|
||||
(x (if ln (layout-node-x ln) 0))
|
||||
|
||||
Reference in New Issue
Block a user