mirror of
https://codeberg.org/cage/tinmop/
synced 2025-02-07 07:07:05 +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
|
||||
:initarg :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"))
|
||||
|
||||
(defmethod draw :after ((object simple-line-navigation-window))
|
||||
(with-accessors ((uses-border-p uses-border-p)
|
||||
(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
|
||||
(win-width-no-border object)
|
||||
(win-width object))))
|
||||
(let ((rows (renderizable-rows-data object))
|
||||
(x (if (uses-border-p object)
|
||||
1
|
||||
0))
|
||||
(y-start (if (uses-border-p object)
|
||||
1
|
||||
0)))
|
||||
(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 row in rows do
|
||||
(if (selectedp row)
|
||||
|
@ -114,27 +114,33 @@
|
||||
|
||||
(defmethod draw :before ((object open-gemini-document-link-window))
|
||||
(with-accessors ((links links)
|
||||
(uses-border-p uses-border-p)
|
||||
(single-row-height single-row-height)
|
||||
(top-row-padding top-row-padding)
|
||||
(new-messages-mark new-messages-mark)
|
||||
(top-rows-slice top-rows-slice)
|
||||
(bottom-rows-slice bottom-rows-slice)) object
|
||||
(let ((y-start (if uses-border-p
|
||||
1
|
||||
0)))
|
||||
(renderizable-rows-data object) ; set top and bottom slice
|
||||
(win-clear object)
|
||||
(with-croatoan-window (croatoan-window object)
|
||||
(loop
|
||||
for link in (safe-subseq links top-rows-slice bottom-rows-slice)
|
||||
for y from (+ 2 top-row-padding) by single-row-height do
|
||||
for y from (+ y-start top-row-padding) by single-row-height do
|
||||
(print-text object
|
||||
(gemini-parser:name link)
|
||||
1 y
|
||||
:bgcolor (bgcolor croatoan-window)
|
||||
:fgcolor (fgcolor croatoan-window))))))
|
||||
:fgcolor (fgcolor croatoan-window)))))))
|
||||
|
||||
(defun init-gemini-links (links)
|
||||
(let* ((low-level-window (make-croatoan-window :enable-function-keys t)))
|
||||
(setf *open-message-link-window*
|
||||
(make-instance 'open-gemini-document-link-window
|
||||
:top-row-padding 0
|
||||
:top-horizontal-padding 1
|
||||
:title (_ "Links")
|
||||
:links links
|
||||
:single-row-height 2
|
||||
|
Loading…
x
Reference in New Issue
Block a user