original commit: 5776f3f92796d8cdd88e4f0c9ba4cd45d7effffa
This commit is contained in:
Robby Findler 2000-09-11 16:01:01 +00:00
parent 826fff51bf
commit c68eb72239
4 changed files with 47 additions and 34 deletions

View File

@ -15,6 +15,7 @@
[pasteboard : framework:pasteboard^] [pasteboard : framework:pasteboard^]
[editor : framework:editor^] [editor : framework:editor^]
[canvas : framework:canvas^] [canvas : framework:canvas^]
[menu : framework:menu^]
[mzlib:function : mzlib:function^] [mzlib:function : mzlib:function^]
[mzlib:file : mzlib:file^]) [mzlib:file : mzlib:file^])

View File

@ -11,6 +11,12 @@
(require-relative-library "tests.ss") (require-relative-library "tests.ss")
(require-relative-library "guiutilss.ss") (require-relative-library "guiutilss.ss")
(define-signature framework:menu^
(can-restore<%>
can-restore-mixin
can-restore-menu-item%
can-restore-checkable-menu-item%))
(define-signature framework:prefs-file^ (define-signature framework:prefs-file^
(get-preferences-filename)) (get-preferences-filename))
@ -301,6 +307,8 @@
[unit panel : framework:panel^] [unit panel : framework:panel^]
[unit menu : framework:menu^]
[unit frame : framework:frame^] [unit frame : framework:frame^]
[unit scheme : framework:scheme^] [unit scheme : framework:scheme^]
[unit main : framework:main^])) [unit main : framework:main^]))

View File

@ -99,7 +99,7 @@ string=? ; exec mred -qr $0
,(menu-name->id name-string) ,(menu-name->id name-string)
(let ([,name (lambda (item evt) (,name item evt))]) (let ([,name (lambda (item evt) (,name item evt))])
,name) ,name)
(if (preferences:get 'framework:menu-bindings) ,key #f) ,key
(,(build-id item "-help-string"))))]))) (,(build-id item "-help-string"))))])))
(define build-menu-clause (define build-menu-clause
@ -155,36 +155,38 @@ string=? ; exec mred -qr $0
`(define standard-menus-mixin `(define standard-menus-mixin
(mixin (basic<%>) (standard-menus<%>) args (mixin (basic<%>) (standard-menus<%>) args
(inherit on-menu-char on-traverse-char) (inherit on-menu-char on-traverse-char)
(rename [super-on-subwindow-char on-subwindow-char]) ; (rename [super-on-subwindow-char on-subwindow-char])
(override ; (override
[on-subwindow-char ; [on-subwindow-char
(lambda (receiver event) ; (lambda (receiver event)
(if (preferences:get 'framework:menu-bindings) ; (if (preferences:get 'framework:menu-bindings)
(super-on-subwindow-char receiver event) ; (super-on-subwindow-char receiver event)
(on-traverse-char event)))]) ; (on-traverse-char event)))])
; need to save old keybindings... (rename [super-on-close on-close])
; (rename [super-on-close on-close]) (private
; (private [remove-prefs-callback
; [remove-prefs-callback (preferences:add-callback
; (preferences:add-callback 'framework:menu-bindings
; 'framework:menu-bindings (lambda (p v)
; (lambda (p v) (let ([mb (get-menu-bar)])
; (let ([mb (get-menu-bar)]) (let loop ([menu (get-menu-bar)])
; (let loop ([menu (get-menu-bar)]) (cond
; (cond [(is-a? menu menu-item-container<%>)
; [(is-a? menu menu-item-container<%>) (for-each loop (send menu get-items))]
; (for-each loop (send menu get-items))] [(is-a? menu selectable-menu-item<%>)
; [(is-a? menu selectable-menu-item<%>) (when (is-a? menu menu:can-restore<%>)
; (void)])))))]) (if v
(send menu restore-keybinding)
; (override (send menu set-shortcut #f)))])))))])
; [on-close
; (lambda () (override
; (remove-prefs-callback) [on-close
; (super-on-close))]) (lambda ()
(remove-prefs-callback)
(inherit get-menu-bar can-close? on-close show get-edit-target-object) (super-on-close))])
(inherit get-menu-bar show can-close? get-edit-target-object)
(sequence (apply super-init args)) (sequence (apply super-init args))
,@(append ,@(append
(map (lambda (x) (map (lambda (x)

View File

@ -72,7 +72,7 @@
"" ""
"defaultly returns" "defaultly returns"
"@link menu")) "@link menu"))
(make-generic 'get-menu-item% '(lambda () menu-item%) (make-generic 'get-menu-item% '(lambda () menu:can-restore-menu-item%)
'("The result of this method is used as the class for creating" '("The result of this method is used as the class for creating"
"the menu items in this class (see " "the menu items in this class (see "
"@link frame:standard-menus" "@link frame:standard-menus"
@ -81,8 +81,9 @@
"@return : (derived-from \\iscmclass{menu-item})" "@return : (derived-from \\iscmclass{menu-item})"
"" ""
"defaultly returns" "defaultly returns"
"@link menu-item")) "@link menu:can-restore-menu-item %"
(make-generic 'get-checkable-menu-item% '(lambda () checkable-menu-item%) "."))
(make-generic 'get-checkable-menu-item% '(lambda () menu:can-restore-checkable-menu-item%)
'("The result of this method is used as the class for creating" '("The result of this method is used as the class for creating"
"checkable menu items in this class (see " "checkable menu items in this class (see "
"@link frame:standard-menus" "@link frame:standard-menus"
@ -91,7 +92,8 @@
"@return : (derived-from \\iscmclass{checkable-menu-item})" "@return : (derived-from \\iscmclass{checkable-menu-item})"
"" ""
"defaultly returns" "defaultly returns"
"@link menu-item")) "@link menu:can-restore-checkable-menu-item %"
"."))
(make-generic 'get-file-menu (make-generic 'get-file-menu
'(let ([m (make-object (get-menu%) '(let ([m (make-object (get-menu%)