
simpler. Use that support to adjust the Show menu to have a better ordering for the built-in DrRacket items.
135 lines
3.7 KiB
Racket
135 lines
3.7 KiB
Racket
#lang racket/unit
|
|
#|
|
|
|
|
This file has names with partial prefixes built into them
|
|
because the interfaces here used to be in other files, but
|
|
that was causing circular dependencies; the interfaces
|
|
were moved here to break the cycle, but the names should
|
|
remain the same for tools that use them.
|
|
|
|
|#
|
|
|
|
(require "drsig.rkt"
|
|
"local-member-names.rkt"
|
|
racket/class
|
|
framework)
|
|
(import)
|
|
(export drracket:interface^)
|
|
|
|
(define frame:basics<%> (interface (frame:standard-menus<%>)))
|
|
(define frame:<%>
|
|
(interface (frame:editor<%> frame:basics<%> frame:text-info<%>)
|
|
get-show-menu
|
|
update-shown
|
|
add-show-menu-items
|
|
set-show-menu-sort-key))
|
|
|
|
(define unit:frame<%>
|
|
(interface (frame:<%>
|
|
frame:searchable-text<%>
|
|
frame:delegate<%>)
|
|
get-insert-menu
|
|
get-special-menu
|
|
get-interactions-text
|
|
get-definitions-text
|
|
get-interactions-canvas
|
|
get-definitions-canvas
|
|
get-button-panel
|
|
execute-callback
|
|
get-current-tab
|
|
open-in-new-tab
|
|
create-new-tab
|
|
close-current-tab
|
|
on-tab-change
|
|
enable-evaluation
|
|
disable-evaluation
|
|
get-definitions/interactions-panel-parent
|
|
register-capability-menu-item
|
|
|
|
ensure-rep-shown
|
|
ensure-rep-hidden
|
|
ensure-defs-shown
|
|
|
|
|
|
get-language-menu
|
|
register-toolbar-button
|
|
register-toolbar-buttons
|
|
unregister-toolbar-button
|
|
sort-toolbar-buttons-panel
|
|
get-tabs))
|
|
|
|
(define unit:definitions-text<%>
|
|
(interface ()
|
|
begin-metadata-changes
|
|
end-metadata-changes
|
|
get-tab
|
|
get-next-settings
|
|
after-set-next-settings
|
|
set-needs-execution-message))
|
|
|
|
(define rep:context<%>
|
|
(interface ()
|
|
ensure-rep-shown ;; (interactions-text -> void)
|
|
;; make the rep visible in the frame
|
|
|
|
repl-submit-happened ;; (-> boolean)
|
|
;; notify the context that an evaluation is about to
|
|
;; happen in the REPL (so it can show a warning about
|
|
;; the language/etc is out of sync if neccessary).
|
|
|
|
enable-evaluation ;; (-> void)
|
|
;; make the context enable all methods of evaluation
|
|
;; (disable buttons, menus, etc)
|
|
|
|
disable-evaluation ;; (-> void)
|
|
;; make the context disable all methods of evaluation
|
|
;; (disable buttons, menus, etc)
|
|
|
|
set-breakables ;; (union thread #f) (union custodian #f) -> void
|
|
;; the context might initiate breaks or kills to
|
|
;; the thread passed to this function
|
|
|
|
get-breakables ;; -> (values (union thread #f) (union custodian #f))
|
|
;; returns the last values passed to set-breakables.
|
|
|
|
reset-offer-kill ;; (-> void)
|
|
;; the next time the break button is pushed, it will only
|
|
;; break. (if the break button is clicked twice without
|
|
;; this method being called in between, it will offer to
|
|
;; kill the user's program)
|
|
|
|
update-running ;; (boolean -> void)
|
|
;; a callback to indicate that the repl may have changed its running state
|
|
;; use the repls' get-in-evaluation? method to find out what the current state is.
|
|
|
|
clear-annotations ;; (-> void)
|
|
;; clear any error highlighting context
|
|
|
|
get-directory ;; (-> (union #f string[existing directory]))
|
|
;; returns the directory that should be the default for
|
|
;; the `current-directory' parameter in the repl.
|
|
))
|
|
|
|
(define unit:tab<%>
|
|
(interface (rep:context<%>)
|
|
get-frame
|
|
get-defs
|
|
get-ints
|
|
get-visible-defs
|
|
set-visible-defs
|
|
set-visible-ints
|
|
set-focus-d/i
|
|
get-i
|
|
set-i
|
|
break-callback
|
|
is-current-tab?
|
|
get-enabled
|
|
on-close
|
|
can-close?
|
|
toggle-log))
|
|
|
|
(define module-language-tools:definitions-text<%> (interface () move-to-new-language))
|
|
(define module-language-tools:tab<%> (interface ()))
|
|
(define module-language-tools:frame<%> (interface ()))
|
|
|