mirror of
https://codeberg.org/cage/tinmop/
synced 2025-02-12 07:30:34 +01:00
- added vertical top padding for 'line-oriented-window'.
This means also that the gemini links window will render the link name on top of the link uri.
This commit is contained in:
parent
0bb4406be7
commit
940525a6fe
@ -244,22 +244,39 @@ this exact quantity wold go beyond the length or fows or zero."
|
|||||||
:initform :red
|
:initform :red
|
||||||
:initarg :selected-line-fg
|
:initarg :selected-line-fg
|
||||||
:accessor selected-line-fg
|
:accessor selected-line-fg
|
||||||
:documentation "The foreground color for a selected line"))
|
:documentation "The foreground color for a selected line")
|
||||||
|
(line
|
||||||
|
:initform :red
|
||||||
|
:initarg :selected-line-fg
|
||||||
|
:accessor selected-line-fg
|
||||||
|
:documentation "The foreground color for a selected line")
|
||||||
|
(top-horizontal-padding
|
||||||
|
:initform 0
|
||||||
|
:initarg :top-horizontal-padding
|
||||||
|
:accessor top-horizontal-padding
|
||||||
|
:documentation "The vertical padding (from top) of each single row"))
|
||||||
(:documentation "A window that displays a navigable list of objects"))
|
(:documentation "A window that displays a navigable list of objects"))
|
||||||
|
|
||||||
(defmethod draw :after ((object simple-line-navigation-window))
|
(defmethod draw :after ((object simple-line-navigation-window))
|
||||||
(with-accessors ((uses-border-p uses-border-p)
|
(with-accessors ((uses-border-p uses-border-p)
|
||||||
(single-row-height single-row-height)
|
(single-row-height single-row-height)
|
||||||
(top-row-padding top-row-padding)) object
|
(top-row-padding top-row-padding)
|
||||||
|
(top-horizontal-padding top-horizontal-padding)) object
|
||||||
(let ((max-line-size (if uses-border-p
|
(let ((max-line-size (if uses-border-p
|
||||||
(win-width-no-border object)
|
(win-width-no-border object)
|
||||||
(win-width object))))
|
(win-width object))))
|
||||||
(let ((rows (renderizable-rows-data object))
|
(let ((rows (renderizable-rows-data object))
|
||||||
(x (if (uses-border-p object)
|
(x (if (uses-border-p object)
|
||||||
1
|
1
|
||||||
0)))
|
0))
|
||||||
|
(y-start (if (uses-border-p object)
|
||||||
|
1
|
||||||
|
0)))
|
||||||
(loop
|
(loop
|
||||||
for y from (1+ top-row-padding) by single-row-height
|
for y from (+ y-start
|
||||||
|
top-horizontal-padding
|
||||||
|
top-row-padding)
|
||||||
|
by single-row-height
|
||||||
for ct from 0
|
for ct from 0
|
||||||
for row in rows do
|
for row in rows do
|
||||||
(if (selectedp row)
|
(if (selectedp row)
|
||||||
|
@ -114,33 +114,39 @@
|
|||||||
|
|
||||||
(defmethod draw :before ((object open-gemini-document-link-window))
|
(defmethod draw :before ((object open-gemini-document-link-window))
|
||||||
(with-accessors ((links links)
|
(with-accessors ((links links)
|
||||||
|
(uses-border-p uses-border-p)
|
||||||
(single-row-height single-row-height)
|
(single-row-height single-row-height)
|
||||||
(top-row-padding top-row-padding)
|
(top-row-padding top-row-padding)
|
||||||
(new-messages-mark new-messages-mark)
|
(new-messages-mark new-messages-mark)
|
||||||
(top-rows-slice top-rows-slice)
|
(top-rows-slice top-rows-slice)
|
||||||
(bottom-rows-slice bottom-rows-slice)) object
|
(bottom-rows-slice bottom-rows-slice)) object
|
||||||
(renderizable-rows-data object) ; set top and bottom slice
|
(let ((y-start (if uses-border-p
|
||||||
(win-clear object)
|
1
|
||||||
(with-croatoan-window (croatoan-window object)
|
0)))
|
||||||
(loop
|
(renderizable-rows-data object) ; set top and bottom slice
|
||||||
for link in (safe-subseq links top-rows-slice bottom-rows-slice)
|
(win-clear object)
|
||||||
for y from (+ 2 top-row-padding) by single-row-height do
|
(with-croatoan-window (croatoan-window object)
|
||||||
(print-text object
|
(loop
|
||||||
(gemini-parser:name link)
|
for link in (safe-subseq links top-rows-slice bottom-rows-slice)
|
||||||
1 y
|
for y from (+ y-start top-row-padding) by single-row-height do
|
||||||
:bgcolor (bgcolor croatoan-window)
|
(print-text object
|
||||||
:fgcolor (fgcolor croatoan-window))))))
|
(gemini-parser:name link)
|
||||||
|
1 y
|
||||||
|
:bgcolor (bgcolor croatoan-window)
|
||||||
|
:fgcolor (fgcolor croatoan-window)))))))
|
||||||
|
|
||||||
(defun init-gemini-links (links)
|
(defun init-gemini-links (links)
|
||||||
(let* ((low-level-window (make-croatoan-window :enable-function-keys t)))
|
(let* ((low-level-window (make-croatoan-window :enable-function-keys t)))
|
||||||
(setf *open-message-link-window*
|
(setf *open-message-link-window*
|
||||||
(make-instance 'open-gemini-document-link-window
|
(make-instance 'open-gemini-document-link-window
|
||||||
:title (_ "Links")
|
:top-row-padding 0
|
||||||
:links links
|
:top-horizontal-padding 1
|
||||||
:single-row-height 2
|
:title (_ "Links")
|
||||||
:uses-border-p t
|
:links links
|
||||||
:keybindings keybindings:*open-message-link-keymap*
|
:single-row-height 2
|
||||||
:croatoan-window low-level-window))
|
:uses-border-p t
|
||||||
|
:keybindings keybindings:*open-message-link-keymap*
|
||||||
|
:croatoan-window low-level-window))
|
||||||
(refresh-config *open-message-link-window*)
|
(refresh-config *open-message-link-window*)
|
||||||
(resync-rows-db *open-message-link-window* :redraw nil)
|
(resync-rows-db *open-message-link-window* :redraw nil)
|
||||||
(when (rows *open-message-link-window*)
|
(when (rows *open-message-link-window*)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user