pull the keybindings code out of the framework compound unit structure
This commit is contained in:
parent
9cc25592c3
commit
ce926b4692
|
@ -5,6 +5,7 @@
|
||||||
"sig.rkt"
|
"sig.rkt"
|
||||||
"../preferences.rkt"
|
"../preferences.rkt"
|
||||||
"../gui-utils.rkt"
|
"../gui-utils.rkt"
|
||||||
|
"interfaces.rkt"
|
||||||
mzlib/etc
|
mzlib/etc
|
||||||
mred/mred-sig
|
mred/mred-sig
|
||||||
racket/path)
|
racket/path)
|
||||||
|
@ -26,22 +27,7 @@
|
||||||
;; renaming, for editor-mixin where get-file is shadowed by a method.
|
;; renaming, for editor-mixin where get-file is shadowed by a method.
|
||||||
(define mred:get-file get-file)
|
(define mred:get-file get-file)
|
||||||
|
|
||||||
(define basic<%>
|
(define basic<%> editor:basic<%>)
|
||||||
(interface (editor<%>)
|
|
||||||
has-focus?
|
|
||||||
local-edit-sequence?
|
|
||||||
run-after-edit-sequence
|
|
||||||
get-top-level-window
|
|
||||||
save-file-out-of-date?
|
|
||||||
save-file/gui-error
|
|
||||||
load-file/gui-error
|
|
||||||
on-close
|
|
||||||
can-close?
|
|
||||||
close
|
|
||||||
get-filename/untitled-name
|
|
||||||
|
|
||||||
get-pos/text
|
|
||||||
get-pos/text-dc-location))
|
|
||||||
|
|
||||||
(define basic-mixin
|
(define basic-mixin
|
||||||
(mixin (editor<%>) (basic<%>)
|
(mixin (editor<%>) (basic<%>)
|
||||||
|
@ -506,7 +492,7 @@
|
||||||
delta)))
|
delta)))
|
||||||
(void)))
|
(void)))
|
||||||
|
|
||||||
(define -keymap<%> (interface (basic<%>) get-keymaps))
|
(define -keymap<%> editor:keymap<%>)
|
||||||
(define keymap-mixin
|
(define keymap-mixin
|
||||||
(mixin (basic<%>) (-keymap<%>)
|
(mixin (basic<%>) (-keymap<%>)
|
||||||
(define/public (get-keymaps)
|
(define/public (get-keymaps)
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
"../gui-utils.rkt"
|
"../gui-utils.rkt"
|
||||||
"bday.rkt"
|
"bday.rkt"
|
||||||
"gen-standard-menus.rkt"
|
"gen-standard-menus.rkt"
|
||||||
|
"interfaces.rkt"
|
||||||
framework/private/focus-table
|
framework/private/focus-table
|
||||||
mrlib/close-icon
|
mrlib/close-icon
|
||||||
mred/mred-sig)
|
mred/mred-sig)
|
||||||
|
@ -132,15 +133,7 @@
|
||||||
(set! frame-width (min frame-width (- w window-trimming-upper-bound-width)))
|
(set! frame-width (min frame-width (- w window-trimming-upper-bound-width)))
|
||||||
(set! frame-height (min frame-height (- h window-trimming-upper-bound-height)))))
|
(set! frame-height (min frame-height (- h window-trimming-upper-bound-height)))))
|
||||||
|
|
||||||
(define basic<%> (interface ((class->interface frame%))
|
(define basic<%> frame:basic<%>)
|
||||||
get-area-container%
|
|
||||||
get-area-container
|
|
||||||
get-menu-bar%
|
|
||||||
make-root-area-container
|
|
||||||
close
|
|
||||||
editing-this-file?
|
|
||||||
get-filename
|
|
||||||
make-visible))
|
|
||||||
|
|
||||||
(define focus-table<%> (interface (top-level-window<%>)))
|
(define focus-table<%> (interface (top-level-window<%>)))
|
||||||
(define focus-table-mixin
|
(define focus-table-mixin
|
||||||
|
@ -741,17 +734,7 @@
|
||||||
|
|
||||||
(super-new)))
|
(super-new)))
|
||||||
|
|
||||||
(define info<%> (interface (basic<%>)
|
(define info<%> frame:info<%>)
|
||||||
determine-width
|
|
||||||
lock-status-changed
|
|
||||||
update-info
|
|
||||||
set-info-canvas
|
|
||||||
get-info-canvas
|
|
||||||
get-info-editor
|
|
||||||
get-info-panel
|
|
||||||
show-info
|
|
||||||
hide-info
|
|
||||||
is-info-hidden?))
|
|
||||||
|
|
||||||
(define magic-space 25)
|
(define magic-space 25)
|
||||||
|
|
||||||
|
@ -1038,13 +1021,7 @@
|
||||||
(min-client-height (inexact->exact (floor th)))))
|
(min-client-height (inexact->exact (floor th)))))
|
||||||
(update-client-width init-width)))
|
(update-client-width init-width)))
|
||||||
|
|
||||||
(define text-info<%> (interface (info<%>)
|
(define text-info<%> frame:text-info<%>)
|
||||||
set-macro-recording
|
|
||||||
overwrite-status-changed
|
|
||||||
anchor-status-changed
|
|
||||||
editor-position-changed
|
|
||||||
use-file-text-mode-changed
|
|
||||||
add-line-number-menu-items))
|
|
||||||
(define text-info-mixin
|
(define text-info-mixin
|
||||||
(mixin (info<%>) (text-info<%>)
|
(mixin (info<%>) (text-info<%>)
|
||||||
(inherit get-info-editor)
|
(inherit get-info-editor)
|
||||||
|
@ -1343,6 +1320,7 @@
|
||||||
(mixin (basic<%>) (pasteboard-info<%>)
|
(mixin (basic<%>) (pasteboard-info<%>)
|
||||||
(super-new)))
|
(super-new)))
|
||||||
|
|
||||||
|
(define standard-menus<%> frame:standard-menus<%>)
|
||||||
(generate-standard-menus-code)
|
(generate-standard-menus-code)
|
||||||
|
|
||||||
(define -editor<%> (interface (standard-menus<%>)
|
(define -editor<%> (interface (standard-menus<%>)
|
||||||
|
|
|
@ -101,29 +101,34 @@
|
||||||
`((define/public ,(generic-name generic)
|
`((define/public ,(generic-name generic)
|
||||||
,(generic-initializer generic)))]))
|
,(generic-initializer generic)))]))
|
||||||
|
|
||||||
(provide generate-standard-menus-code)
|
(provide generate-standard-menus-code
|
||||||
|
generate-standard-menus-interface-code)
|
||||||
|
(define-syntax (generate-standard-menus-interface-code stx)
|
||||||
|
(datum->syntax
|
||||||
|
stx
|
||||||
|
`(define frame:standard-menus<%>
|
||||||
|
(interface (frame:basic<%>)
|
||||||
|
,@(append-map
|
||||||
|
(λ (x)
|
||||||
|
(cond [(an-item? x)
|
||||||
|
(list (an-item->callback-name x)
|
||||||
|
(an-item->get-item-name x)
|
||||||
|
(an-item->string-name x)
|
||||||
|
(an-item->help-string-name x)
|
||||||
|
(an-item->on-demand-name x)
|
||||||
|
(an-item->create-menu-item-name x))]
|
||||||
|
[(between? x)
|
||||||
|
(list (between->name x))]
|
||||||
|
[(or (after? x) (before? x))
|
||||||
|
(list (before/after->name x))]
|
||||||
|
[(generic? x)
|
||||||
|
(if (generic-method? x) (list (generic-name x)) '())]))
|
||||||
|
items)))))
|
||||||
|
|
||||||
(define-syntax (generate-standard-menus-code stx)
|
(define-syntax (generate-standard-menus-code stx)
|
||||||
(datum->syntax
|
(datum->syntax
|
||||||
stx
|
stx
|
||||||
`(begin
|
`(begin
|
||||||
(define standard-menus<%>
|
|
||||||
(interface (basic<%>)
|
|
||||||
,@(append-map
|
|
||||||
(λ (x)
|
|
||||||
(cond [(an-item? x)
|
|
||||||
(list (an-item->callback-name x)
|
|
||||||
(an-item->get-item-name x)
|
|
||||||
(an-item->string-name x)
|
|
||||||
(an-item->help-string-name x)
|
|
||||||
(an-item->on-demand-name x)
|
|
||||||
(an-item->create-menu-item-name x))]
|
|
||||||
[(between? x)
|
|
||||||
(list (between->name x))]
|
|
||||||
[(or (after? x) (before? x))
|
|
||||||
(list (before/after->name x))]
|
|
||||||
[(generic? x)
|
|
||||||
(if (generic-method? x) (list (generic-name x)) '())]))
|
|
||||||
items)))
|
|
||||||
(define standard-menus-mixin
|
(define standard-menus-mixin
|
||||||
(mixin (basic<%>) (standard-menus<%>)
|
(mixin (basic<%>) (standard-menus<%>)
|
||||||
(inherit on-menu-char on-traverse-char)
|
(inherit on-menu-char on-traverse-char)
|
||||||
|
|
86
gui-lib/framework/private/interfaces.rkt
Normal file
86
gui-lib/framework/private/interfaces.rkt
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
#lang racket/base
|
||||||
|
(require racket/class
|
||||||
|
racket/gui/base
|
||||||
|
"gen-standard-menus.rkt")
|
||||||
|
|
||||||
|
(provide editor:basic<%>
|
||||||
|
editor:keymap<%>
|
||||||
|
text:basic<%>
|
||||||
|
frame:basic<%>
|
||||||
|
frame:standard-menus<%>
|
||||||
|
frame:info<%>
|
||||||
|
frame:text-info<%>)
|
||||||
|
|
||||||
|
(define editor:basic<%>
|
||||||
|
(interface (editor<%>)
|
||||||
|
has-focus?
|
||||||
|
local-edit-sequence?
|
||||||
|
run-after-edit-sequence
|
||||||
|
get-top-level-window
|
||||||
|
save-file-out-of-date?
|
||||||
|
save-file/gui-error
|
||||||
|
load-file/gui-error
|
||||||
|
on-close
|
||||||
|
can-close?
|
||||||
|
close
|
||||||
|
get-filename/untitled-name
|
||||||
|
|
||||||
|
get-pos/text
|
||||||
|
get-pos/text-dc-location))
|
||||||
|
|
||||||
|
(define editor:keymap<%>
|
||||||
|
(interface (editor:basic<%>)
|
||||||
|
get-keymaps))
|
||||||
|
|
||||||
|
(define text:basic<%>
|
||||||
|
(interface (editor:basic<%> (class->interface text%))
|
||||||
|
highlight-range
|
||||||
|
unhighlight-range
|
||||||
|
unhighlight-ranges
|
||||||
|
unhighlight-ranges/key
|
||||||
|
get-highlighted-ranges
|
||||||
|
get-styles-fixed
|
||||||
|
get-fixed-style
|
||||||
|
set-styles-fixed
|
||||||
|
move/copy-to-edit
|
||||||
|
initial-autowrap-bitmap
|
||||||
|
get-port-name
|
||||||
|
port-name-matches?
|
||||||
|
after-set-port-unsaved-name
|
||||||
|
set-port-unsaved-name
|
||||||
|
get-start-of-line))
|
||||||
|
|
||||||
|
(define frame:basic<%>
|
||||||
|
(interface ((class->interface frame%))
|
||||||
|
get-area-container%
|
||||||
|
get-area-container
|
||||||
|
get-menu-bar%
|
||||||
|
make-root-area-container
|
||||||
|
close
|
||||||
|
editing-this-file?
|
||||||
|
get-filename
|
||||||
|
make-visible))
|
||||||
|
|
||||||
|
(generate-standard-menus-interface-code)
|
||||||
|
|
||||||
|
(define frame:info<%>
|
||||||
|
(interface (frame:basic<%>)
|
||||||
|
determine-width
|
||||||
|
lock-status-changed
|
||||||
|
update-info
|
||||||
|
set-info-canvas
|
||||||
|
get-info-canvas
|
||||||
|
get-info-editor
|
||||||
|
get-info-panel
|
||||||
|
show-info
|
||||||
|
hide-info
|
||||||
|
is-info-hidden?))
|
||||||
|
|
||||||
|
(define frame:text-info<%>
|
||||||
|
(interface (frame:info<%>)
|
||||||
|
set-macro-recording
|
||||||
|
overwrite-status-changed
|
||||||
|
anchor-status-changed
|
||||||
|
editor-position-changed
|
||||||
|
use-file-text-mode-changed
|
||||||
|
add-line-number-menu-items))
|
1364
gui-lib/framework/private/keymap-global.rkt
Normal file
1364
gui-lib/framework/private/keymap-global.rkt
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -6,6 +6,7 @@
|
||||||
racket/path
|
racket/path
|
||||||
racket/math
|
racket/math
|
||||||
"sig.rkt"
|
"sig.rkt"
|
||||||
|
"interfaces.rkt"
|
||||||
"../gui-utils.rkt"
|
"../gui-utils.rkt"
|
||||||
"../preferences.rkt"
|
"../preferences.rkt"
|
||||||
"autocomplete.rkt"
|
"autocomplete.rkt"
|
||||||
|
@ -85,23 +86,7 @@
|
||||||
|
|
||||||
(values register-port-name! lookup-port-name)))
|
(values register-port-name! lookup-port-name)))
|
||||||
|
|
||||||
(define basic<%>
|
(define basic<%> text:basic<%>)
|
||||||
(interface (editor:basic<%> (class->interface text%))
|
|
||||||
highlight-range
|
|
||||||
unhighlight-range
|
|
||||||
unhighlight-ranges
|
|
||||||
unhighlight-ranges/key
|
|
||||||
get-highlighted-ranges
|
|
||||||
get-styles-fixed
|
|
||||||
get-fixed-style
|
|
||||||
set-styles-fixed
|
|
||||||
move/copy-to-edit
|
|
||||||
initial-autowrap-bitmap
|
|
||||||
get-port-name
|
|
||||||
port-name-matches?
|
|
||||||
after-set-port-unsaved-name
|
|
||||||
set-port-unsaved-name
|
|
||||||
get-start-of-line))
|
|
||||||
|
|
||||||
(define highlight-range-mixin
|
(define highlight-range-mixin
|
||||||
(mixin (editor:basic<%> (class->interface text%)) ()
|
(mixin (editor:basic<%> (class->interface text%)) ()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user