.
original commit: 5776f3f92796d8cdd88e4f0c9ba4cd45d7effffa
This commit is contained in:
parent
826fff51bf
commit
c68eb72239
|
@ -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^])
|
||||||
|
|
||||||
|
|
|
@ -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^]))
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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%)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user