From 2b2e9ab4b7bb96418348a7fc38cdd989002b42b5 Mon Sep 17 00:00:00 2001 From: Dave Peticolas Date: Thu, 20 Dec 2001 11:04:20 +0000 Subject: [PATCH] * src/report/report-gnome/report-gnome.scm: move some report menu setup functionality here git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6403 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/report/report-gnome/report-gnome.scm | 69 ++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/src/report/report-gnome/report-gnome.scm b/src/report/report-gnome/report-gnome.scm index 66d91bdcc1..e3943bd48c 100644 --- a/src/report/report-gnome/report-gnome.scm +++ b/src/report/report-gnome/report-gnome.scm @@ -9,12 +9,17 @@ (use-modules (gnucash main)) ;; FIXME: delete after we finish modularizing. (use-modules (gnucash gnc-module)) +(use-modules (ice-9 slib)) +(require 'printf) + (use-modules (g-wrapped gw-report-gnome)) (gnc:module-load "gnucash/gnome-utils" 0) (gnc:module-load "gnucash/report/report-system" 0) (export gnc:report-edit-options) +(export gnc:report-menu-setup) +(export gnc:add-report-template-menu-items) (define (gnc:report-options-editor report) (if (equal? (gnc:report-type report) "Multicolumn View") @@ -34,3 +39,67 @@ report)) (gnc:report-set-editor-widget! report editor-widg)) (gnc:warning-dialog (_ "This report has no options."))))))) + +(define (gnc:add-report-template-menu-items) + (define menu-namer (gnc:new-menu-namer)) + + (define (add-template-menu-item name template) + (if (gnc:report-template-in-menu? template) + (let ((title (string-append (_ "Report") ": " (_ name))) + (menu-path (gnc:report-template-menu-path template)) + (menu-name (gnc:report-template-menu-name template)) + (menu-tip (gnc:report-template-menu-tip template)) + (item #f)) + + (if (not menu-path) + (set! menu-path '("")) + (set! menu-path + (append menu-path '("")))) + + (set! menu-path (append (list gnc:menuname-reports) menu-path)) + + (if menu-name (set! name menu-name)) + + (if (not menu-tip) + (set! menu-tip + (sprintf #f (_ "Display the %s report") (_ name)))) + + (set! item + (gnc:make-menu-item + ((menu-namer 'add-name) name) + menu-tip + menu-path + (lambda () + (let ((report (gnc:make-report + (gnc:report-template-name template)))) + (gnc:main-window-open-report report #f))))) + (gnc:add-extension item)))) + + (gnc:report-templates-for-each add-template-menu-item)) + +(define (gnc:report-menu-setup) + ;; since this menu gets added to every child window, we say it + ;; comes after the "_File" menu. + (define menu (gnc:make-menu gnc:menuname-reports (list "_File"))) + (define menu-namer (gnc:new-menu-namer)) + (define tax-menu (gnc:make-menu gnc:menuname-taxes + (list gnc:menuname-reports ""))) + (define income-expense-menu + (gnc:make-menu gnc:menuname-income-expense + (list gnc:menuname-reports ""))) + (define asset-liability-menu + (gnc:make-menu gnc:menuname-asset-liability + (list gnc:menuname-reports ""))) + (define utility-menu + (gnc:make-menu gnc:menuname-utility + (list gnc:menuname-reports ""))) + + (gnc:add-extension menu) + + ;; (gnc:add-extension tax-menu) + (gnc:add-extension income-expense-menu) + (gnc:add-extension asset-liability-menu) + (gnc:add-extension utility-menu) + + ;; push reports (new items added on top of menu) + (gnc:add-report-template-menu-items))