166 lines
3.3 KiB
Scheme
166 lines
3.3 KiB
Scheme
|
|
#lang scheme/base
|
|
(require scheme/class)
|
|
(provide (all-defined-out))
|
|
|
|
;; displays-manager<%>
|
|
(define displays-manager<%>
|
|
(interface ()
|
|
;; add-syntax-display : display<%> -> void
|
|
add-syntax-display
|
|
|
|
;; remove-all-syntax-displays : -> void
|
|
remove-all-syntax-displays))
|
|
|
|
;; selection-manager<%>
|
|
(define selection-manager<%>
|
|
(interface ()
|
|
;; selected-syntax : syntax/#f
|
|
set-selected-syntax
|
|
get-selected-syntax
|
|
listen-selected-syntax
|
|
))
|
|
|
|
;; mark-manager<%>
|
|
;; Manages marks, mappings from marks to colors
|
|
(define mark-manager<%>
|
|
(interface ()
|
|
;; get-primary-partition : -> partition
|
|
get-primary-partition))
|
|
|
|
;; secondary-partition<%>
|
|
(define secondary-partition<%>
|
|
(interface (displays-manager<%>)
|
|
;; get-secondary-partition : -> partition<%>
|
|
get-secondary-partition
|
|
|
|
;; set-secondary-partition : partition<%> -> void
|
|
set-secondary-partition
|
|
|
|
;; listen-secondary-partition : (partition<%> -> void) -> void
|
|
listen-secondary-partition
|
|
|
|
;; get-identifier=? : -> (cons string procedure)
|
|
get-identifier=?
|
|
|
|
;; set-identifier=? : (cons string procedure) -> void
|
|
set-identifier=?
|
|
|
|
;; listen-identifier=? : ((cons string procedure) -> void) -> void
|
|
listen-identifier=?))
|
|
|
|
;; controller<%>
|
|
(define controller<%>
|
|
(interface (displays-manager<%>
|
|
selection-manager<%>
|
|
mark-manager<%>
|
|
secondary-partition<%>)))
|
|
|
|
;; host<%>
|
|
(define host<%>
|
|
(interface ()
|
|
;; get-controller : -> controller<%>
|
|
get-controller
|
|
|
|
;; add-keymap : text snip
|
|
add-keymap
|
|
))
|
|
|
|
|
|
;; display<%>
|
|
(define display<%>
|
|
(interface ()
|
|
;; refresh : -> void
|
|
refresh
|
|
|
|
;; highlight-syntaxes : (list-of syntax) color -> void
|
|
highlight-syntaxes
|
|
|
|
;; get-start-position : -> number
|
|
get-start-position
|
|
|
|
;; get-end-position : -> number
|
|
get-end-position
|
|
|
|
;; get-range : -> range<%>
|
|
get-range))
|
|
|
|
;; range<%>
|
|
(define range<%>
|
|
(interface ()
|
|
;; get-ranges : datum -> (list-of (cons number number))
|
|
get-ranges
|
|
|
|
;; all-ranges : (list-of Range)
|
|
;; Sorted outermost-first
|
|
all-ranges
|
|
|
|
;; get-identifier-list : (list-of identifier)
|
|
get-identifier-list))
|
|
|
|
;; A Range is (make-range datum number number)
|
|
(define-struct range (obj start end))
|
|
|
|
|
|
;; syntax-prefs<%>
|
|
(define syntax-prefs<%>
|
|
(interface ()
|
|
pref:width
|
|
pref:height
|
|
pref:props-percentage
|
|
pref:props-shown?))
|
|
|
|
;; widget-hooks<%>
|
|
(define widget-hooks<%>
|
|
(interface ()
|
|
;; setup-keymap : -> void
|
|
setup-keymap
|
|
|
|
;; shutdown : -> void
|
|
shutdown
|
|
))
|
|
|
|
;; keymap-hooks<%>
|
|
(define keymap-hooks<%>
|
|
(interface ()
|
|
;; make-context-menu : -> context-menu<%>
|
|
make-context-menu
|
|
|
|
;; get-context-menu% : -> class
|
|
get-context-menu%))
|
|
|
|
;; context-menu-hooks<%>
|
|
(define context-menu-hooks<%>
|
|
(interface ()
|
|
add-edit-items
|
|
after-edit-items
|
|
add-selection-items
|
|
after-selection-items
|
|
add-partition-items
|
|
after-partition-items))
|
|
|
|
|
|
;;----------
|
|
|
|
;; Convenience widget, specialized for displaying stx and not much else
|
|
(define syntax-browser<%>
|
|
(interface ()
|
|
add-syntax
|
|
add-text
|
|
add-separator
|
|
erase-all
|
|
select-syntax
|
|
get-text
|
|
))
|
|
|
|
(define partition<%>
|
|
(interface ()
|
|
;; get-partition : any -> number
|
|
get-partition
|
|
|
|
;; same-partition? : any any -> number
|
|
same-partition?
|
|
|
|
;; count : -> number
|
|
count))
|