1
0
Fork 0

- [GUI] added code to render the bookmarks page.

This commit is contained in:
cage 2023-04-09 11:29:01 +02:00
parent 7ae9cdae59
commit 652a09177a
5 changed files with 46 additions and 21 deletions

View File

@ -163,4 +163,6 @@ General Public License for more details."
(define-constant +gemini-file-extension+ "gmi" :test #'string=)
(define-constant +file-scheme+ "file" :test #'string=)
(define-constant +file-scheme+ "file" :test #'string=)
(define-constant +internal-scheme+ "about" :test #'string=)

View File

@ -127,3 +127,6 @@
:accessor rows
:initform '()
:initarg :rows)))
(defun make-internal-iri (path &optional (query nil) (fragment nil))
(iri:make-iri +internal-scheme+ nil nil nil path query fragment))

View File

@ -193,17 +193,20 @@
(setf (fetching-thread stream-wrapper) stream-thread)
stream-wrapper)))))
(defun initialize-menu (parent)
(with-accessors ((main-window main-window)) parent
(let* ((bar (gui:make-menubar parent))
(file (gui:make-menu bar (_ "File") :underline 0))
(tools (gui:make-menu bar (_ "Tools") :underline 0))
(help (gui:make-menu bar (_ "Help") :underline 0)))
(gui:make-menubutton tools (_ "Certificates") #'menu:show-certificates :underline 0)
(gui:make-menubutton tools (_ "Streams") #'menu:show-streams :underline 0)
(gui:make-menubutton file (_ "Quit") #'menu:quit :underline 0)
(gui:make-menubutton help (_ "About") #'menu:help-about :underline 0))))
(defun initialize-menu (parent main-window)
(let* ((bar (gui:make-menubar parent))
(file (gui:make-menu bar (_ "File") :underline 0))
(tools (gui:make-menu bar (_ "Tools") :underline 0))
(bookmarks (gui:make-menu bar (_ "Bookmarks") :underline 0))
(help (gui:make-menu bar (_ "Help") :underline 0)))
(gui:make-menubutton tools (_ "Certificates") #'menu:show-certificates :underline 0)
(gui:make-menubutton tools (_ "Streams") #'menu:show-streams :underline 0)
(gui:make-menubutton file (_ "Quit") #'menu:quit :underline 0)
(gui:make-menubutton help (_ "About") #'menu:help-about :underline 0)
(gui:make-menubutton bookmarks
(_ "Show")
(menu:show-bookmarks-clsr main-window)
:underline 0)))
(defclass tool-bar (gui:frame)
((iri-entry
@ -843,11 +846,7 @@
(gui-goodies:gui-resize-grid-all object)))
(defclass main-frame (gui:frame)
((main-window
:initform nil
:initarg :main-window
:accessor main-window)
(gemtext-widget
((gemtext-widget
:initform nil
:initarg :gemtext-widget
:accessor gemtext-widget)
@ -947,15 +946,18 @@
(defun set-text-gemtext (main-window text)
(setf (gui:text (gemtext-widget main-window)) text))
(defun set-address-bar-text (main-window text)
(setf (gui:text (iri-entry (tool-bar main-window))) text))
(defun init-main-window ()
(let ((gui:*debug-tk* nil))
(gui:with-nodgui (:title +program-name+)
(icons:load-icons)
(initialize-menu gui:*tk*)
(setf gui-goodies:*toplevel* gui:*tk*)
(setf gui-goodies:*gui-server* gui:*wish*)
(client-events:start-events-loop)
(let ((main-frame (make-instance 'main-frame)))
(setf gui-goodies:*main-frame* main-frame)
(initialize-menu gui:*tk* main-frame)
(gui:grid main-frame 0 0 :sticky :nswe)
(gui-goodies:gui-resize-grid-all gui-goodies:*toplevel*)))))

View File

@ -24,3 +24,14 @@
(defun show-streams ()
(let ((master gui-goodies:*toplevel*))
(client-stream-window:init-window master)))
(defun show-bookmarks-clsr (main-window)
(lambda ()
(ev:with-enqueued-process-and-unblock ()
(let ((parsed-page (comm:make-request :gemini-generate-bookmark-page 1))
(iri (gui-goodies:make-internal-iri "bookmark")))
(client-main-window:set-address-bar-text main-window (to-s iri))
(client-main-window:clean-gemtext main-window)
(client-main-window::collect-ir-lines (to-s iri)
main-window
parsed-page)))))

View File

@ -69,6 +69,7 @@
:+octect-type+
:+gemini-file-extension+
:+file-scheme+
:+internal-scheme+
;; GUI
:+minimum-padding+
:+ps-file-dialog-filter+
@ -3381,7 +3382,8 @@
:password-dialog
:table-frame
:tree
:rows))
:rows
:make-internal-iri))
(defpackage :client-menu-command
(:use
@ -3403,7 +3405,8 @@
:help-about
:quit
:show-certificates
:show-streams))
:show-streams
:show-bookmarks-clsr))
(defpackage :client-certificates-window
(:use
@ -3491,7 +3494,11 @@
:remove-db-stream
:find-db-stream-url
:open-local-path
:init-main-window))
:init-main-window
:set-address-bar-text
:set-bookmark-button-true
:set-bookmark-button-false
:clean-gemtext))
(defpackage :main
(:use