;;; -*- mode: Lisp; Syntax: Common-Lisp; -*- ;;; ;;; Copyright (c) 2009 by the authors. ;;; ;;; See LICENCE for details. (in-package :hu.dwim.blog) ;;;;;; ;;; Frame (def method make-frame-root-component-using-application ((application blog-application) session frame content) (bind (((:values blog-menu initial-content) (make-blog-menu)) (menu-bar (menu-bar/widget () blog-menu (make-debug-menu)))) (frame/widget (:title "hu.dwim.blog" :stylesheet-uris (make-stylesheet-uris :hu.dwim.blog "static/blog/" "css/blog.css")) (top/widget (:menu-bar menu-bar) (or content initial-content))))) ;;;;;; ;;; Menu (def function make-blog-menu () (bind (((:values blog-menu-item blog-content) (make-read-blog-posts-menu-item))) (values (menu-item/widget () "Blog" blog-menu-item (make-filter-blog-posts-menu-item) #+nil (make-make-blog-post-menu-item)) blog-content))) (def function make-read-blog-posts-menu-item () ;; FIXME that with-transaction here is fishy... why? avoid somehow... (bind ((content (make-value-inspector (with-model-database (with-transaction (select-instances blog-post)))))) (values (menu-item/widget () (replace-target-place/widget () "Read" content)) content))) (def function make-filter-blog-posts-menu-item () (menu-item/widget () (replace-target-place/widget () "Search" (make-filter 'blog-post)))) (def function make-make-blog-post-menu-item () (menu-item/widget () (replace-target-place/widget () "Post" (make-maker 'blog-post))))