Added language capabilities for Profj, and the Java example box

svn: r3155
This commit is contained in:
Kathy Gray 2006-05-31 19:14:10 +00:00
parent 74ebcb9631
commit 9ee8f07902
2 changed files with 25 additions and 12 deletions

View File

@ -1,5 +1,5 @@
(module tool mzscheme
(require (lib "tool.ss" "drscheme")
(require (lib "tool.ss" "drscheme") (lib "contract.ss")
(lib "mred.ss" "mred") (lib "framework.ss" "framework") (lib "unitsig.ss")
(lib "file.ss")
(lib "include-bitmap.ss" "mrlib") (lib "etc.ss")
@ -150,10 +150,16 @@
(define (java-lang-mixin level name number one-line dyn?)
(when dyn? (dynamic? #t))
(class* object% (drscheme:language:language<%>)
(define/public (capability-value s)
(cond
[(eq? s 'drscheme:language-menu-title) "Java"]
[(memq s '(slideshow:special-menu drscheme:define-popup)) #f]
[(memq s '(profj:special:java-comment-box
profj:special:java-examples-box
drscheme:special:insert-large-letters)) #t]
[(memq s '(slideshow:special-menu
drscheme:define-popup
profj:special:java-interactions-box)) #f]
[(regexp-match #rx"^drscheme:special:" (format "~a" s)) #f]
[else
(drscheme:language:get-capability-default s)]))
@ -837,7 +843,7 @@
(define (java-comment-box-mixin %)
(class %
(inherit get-special-menu get-edit-target-object)
(inherit get-special-menu get-edit-target-object register-capability-menu-item)
(super-new)
(new menu-item%
@ -848,9 +854,12 @@
(let ([c-box (new java-comment-box%)]
[text (get-edit-target-object)])
(send text insert c-box)
(send text set-caret-owner c-box 'global)))))))
(send text set-caret-owner c-box 'global)))))
(register-capability-menu-item 'profj:special:java-comment-box (get-special-menu))
))
(drscheme:get/extend:extend-unit-frame java-comment-box-mixin)
(drscheme:language:register-capability 'profj:special:java-comment-box (flat-contract boolean?) #f)
;;Java interactions box
(define ji-gif (include-bitmap (lib "j.gif" "icons")))
@ -934,7 +943,7 @@
(define (java-interactions-box-mixin %)
(class %
(inherit get-special-menu get-edit-target-object)
(inherit get-special-menu get-edit-target-object register-capability-menu-item)
(super-new)
(new menu-item%
@ -945,11 +954,13 @@
(let ([i-box (new java-interactions-box%)]
[text (get-edit-target-object)])
(send text insert i-box)
(send text set-caret-owner i-box 'global)))))))
(send text set-caret-owner i-box 'global)))))
(register-capability-menu-item 'profj:special:java-interactions-box (get-special-menu))
))
(drscheme:get/extend:extend-unit-frame java-interactions-box-mixin)
(drscheme:language:register-capability 'profj:special:java-interactions-box (flat-contract boolean?) #t)
))
(define (editor-filter delay?)
(lambda (s)

View File

@ -3,8 +3,8 @@
(provide tool@)
(require
(lib "class.ss")
(lib "mred.ss" "mred")
(lib "class.ss") (lib "contract.ss")
(lib "mred.ss" "mred")
(lib "unitsig.ss")
(lib "string-constant.ss" "string-constants")
(lib "tool.ss" "drscheme")
@ -21,7 +21,7 @@
(define (frame-mixin %)
(class %
(inherit get-edit-target-object get-special-menu)
(inherit get-edit-target-object get-special-menu register-capability-menu-item)
;; this function is copied from the drscheme/private/unit.ss file
(define (has-editor-on-demand menu-item)
@ -43,6 +43,7 @@
(send box take-caret)
(send text end-edit-sequence)))))
(demand-callback has-editor-on-demand))
(register-capability-menu-item 'profj:special:java-examples-box (get-special-menu))
#;(new menu-item%
(label (string-constant profjBoxes-insert-java-interactions))
@ -59,7 +60,8 @@
(demand-callback has-editor-on-demand))
))
(drscheme:get/extend:extend-unit-frame frame-mixin)))
(drscheme:get/extend:extend-unit-frame frame-mixin)
(drscheme:language:register-capability 'profj:special:java-examples-box (flat-contract boolean?) #f)))
(define tool@
(compound-unit/sig