a fix to the way tabs switch around, plus a few additions (that are disabled for now) in preparation for making drscheme automatically compile files that it runs

svn: r12344

original commit: a4b631050741fee37a321781ac93b6c079921eb4
This commit is contained in:
Robby Findler 2008-11-07 18:13:33 +00:00
parent e225ea8345
commit c07d9d3851
10 changed files with 89 additions and 69 deletions

View File

@ -1,8 +1,8 @@
#reader scribble/reader #reader scribble/reader
#lang scheme/gui #lang scheme/base
(require string-constants)
(require string-constants scheme/gui/base
scheme/contract scheme/class)
(require scribble/srcdoc) (require scribble/srcdoc)
(require/doc scheme/base scribble/manual) (require/doc scheme/base scribble/manual)
@ -232,12 +232,12 @@
(λ () (cursor-off))))]))) (λ () (cursor-off))))])))
(define unsaved-warning (define unsaved-warning
(lambda (filename action-anyway (can-save-now? #f) (parent #f)) (lambda (filename action-anyway (can-save-now? #f) (parent #f) [cancel? #t])
(let ([mb-res (message-box/custom (let ([mb-res (message-box/custom
(string-constant warning) (string-constant warning)
(format (string-constant file-is-not-saved) filename) (format (string-constant file-is-not-saved) filename)
(string-constant save) (string-constant save)
(string-constant cancel) (and cancel? (string-constant cancel))
action-anyway action-anyway
parent parent
(if can-save-now? (if can-save-now?
@ -454,11 +454,13 @@
(boolean? (boolean?
(or/c false/c (or/c false/c
(is-a?/c frame%) (is-a?/c frame%)
(is-a?/c dialog%))) (is-a?/c dialog%))
boolean?)
(symbols 'continue 'save 'cancel)) (symbols 'continue 'save 'cancel))
((filename action) ((filename action)
((can-save-now? #f) ((can-save-now? #f)
(parent #f))) (parent #f)
(cancel? #t)))
@{This displays a dialog that warns the user of a unsaved file. @{This displays a dialog that warns the user of a unsaved file.
@ -468,7 +470,14 @@
The result symbol indicates the user's choice. If The result symbol indicates the user's choice. If
@scheme[can-save-now?] is @scheme[#f], this function does not @scheme[can-save-now?] is @scheme[#f], this function does not
give the user the ``Save'' option and thus will not return give the user the ``Save'' option and thus will not return
@scheme['save].}) @scheme['save].
If @scheme[cancel?] is @scheme[#t] there is a cancel button
in the dialog and the result may be @scheme['cancel]. If it
is @scheme[#f], then there is no cancel button, and @scheme['cancel]
will not be the result of the function.
})
(proc-doc/names (proc-doc/names
gui-utils:get-choice gui-utils:get-choice

View File

@ -495,7 +495,10 @@
(inherit save-file) (inherit save-file)
(define/public (allow-close-with-no-filename?) #f) (define/public (allow-close-with-no-filename?) #f)
(define/augment (can-close?) (define/augment (can-close?)
(let* ([user-allowed-or-not-modified (and (user-saves-or-not-modified?)
(inner #t can-close?)))
(define/public (user-saves-or-not-modified? [allow-cancel? #t])
(or (not (is-modified?)) (or (not (is-modified?))
(and (not (get-filename)) (and (not (get-filename))
(allow-close-with-no-filename?)) (allow-close-with-no-filename?))
@ -504,12 +507,11 @@
(string-constant dont-save) (string-constant dont-save)
#t #t
(or (get-top-level-window) (or (get-top-level-window)
(get-can-close-parent))) (get-can-close-parent))
allow-cancel?)
[(continue) #t] [(continue) #t]
[(save) (save-file)] [(save) (save-file)]
[else #f]))]) [else #f])))
(and user-allowed-or-not-modified
(inner #t can-close?))))
(define/public (get-can-close-parent) #f) (define/public (get-can-close-parent) #f)

View File

@ -27,7 +27,7 @@
@defmixin[canvas:delegate-mixin (canvas:basic<%>) (canvas:delegate<%>)]{ @defmixin[canvas:delegate-mixin (canvas:basic<%>) (canvas:delegate<%>)]{
Provides an implementation of Provides an implementation of
@scheme[canvas:delegate<%>]. @scheme[canvas:delegate<%>].
@defmethod*[#:mode override (((on-superwindow-show (shown? boolean)) void))]{ @defmethod*[#:mode override (((on-superwindow-show (shown? boolean?)) void))]{
Notifies the delegate window when the original window is Notifies the delegate window when the original window is
visible. When invisible, the blue highlighting is erased. visible. When invisible, the blue highlighting is erased.

View File

@ -78,7 +78,7 @@
If clear-colors is true all the text in the buffer will have it's If clear-colors is true all the text in the buffer will have it's
style set to Standard. style set to Standard.
} }
@defmethod*[(((force-stop-colorer (stop? boolean)) void))]{ @defmethod*[(((force-stop-colorer (stop? boolean?)) void))]{
Causes the entire tokenizing/coloring system to become inactive. Causes the entire tokenizing/coloring system to become inactive.
Intended for debugging purposes only. Intended for debugging purposes only.
@ -86,11 +86,11 @@
stop? determines whether the system is being forced to stop or allowed stop? determines whether the system is being forced to stop or allowed
to wake back up. to wake back up.
} }
@defmethod*[(((is-stopped?) boolean))]{ @defmethod*[(((is-stopped?) boolean?))]{
Indicates if the colorer for this editor has been stopped, or not. Indicates if the colorer for this editor has been stopped, or not.
} }
@defmethod*[(((is-frozen?) boolean))]{ @defmethod*[(((is-frozen?) boolean?))]{
Indicates if this editor's colorer is frozen. See also Indicates if this editor's colorer is frozen. See also
@method[color:text<%> freeze-colorer] @method[color:text<%> freeze-colorer]
and and
@ -131,7 +131,7 @@
This returns the list of regions that are currently being colored in the editor. This returns the list of regions that are currently being colored in the editor.
} }
@defmethod*[(((skip-whitespace (position natural-number?) (direction (symbols (quote forward) (quote backward))) (comments? boolean)) natural-number?))]{ @defmethod*[(((skip-whitespace (position natural-number?) (direction (symbols (quote forward) (quote backward))) (comments? boolean?)) natural-number?))]{
Returns the next non-whitespace character. Returns the next non-whitespace character.
@ -172,7 +172,7 @@
Must only be called while the tokenizer is started. Must only be called while the tokenizer is started.
} }
@defmethod*[(((insert-close-paren (position natural-number?) (char char?) (flash? boolean) (fixup? boolean)) void))]{ @defmethod*[(((insert-close-paren (position natural-number?) (char char?) (flash? boolean?) (fixup? boolean?)) void))]{
Position is the place to put the parenthesis and char is the Position is the place to put the parenthesis and char is the

View File

@ -8,13 +8,13 @@
Classes matching this interface support the basic Classes matching this interface support the basic
@scheme[editor<%>] @scheme[editor<%>]
functionality required by the framework. functionality required by the framework.
@defmethod*[(((has-focus?) boolean))]{ @defmethod*[(((has-focus?) boolean?))]{
This function returns @scheme[#t] when the editor has the keyboard This function returns @scheme[#t] when the editor has the keyboard
focus. It is implemented using: focus. It is implemented using:
@method[editor<%> on-focus] @method[editor<%> on-focus]
} }
@defmethod*[(((local-edit-sequence?) boolean))]{ @defmethod*[(((local-edit-sequence?) boolean?))]{
Indicates if this editor is in an edit sequence. Enclosing buffer's Indicates if this editor is in an edit sequence. Enclosing buffer's
edit-sequence status is not considered by this method. edit-sequence status is not considered by this method.
@ -49,11 +49,11 @@
} }
@defmethod*[(((save-file-out-of-date?) boolean))]{ @defmethod*[(((save-file-out-of-date?) boolean?))]{
Returns @scheme[#t] if the file on disk has been modified, by some other program. Returns @scheme[#t] if the file on disk has been modified, by some other program.
} }
@defmethod*[(((save-file/gui-error (filename (union path |#f|) |#f|) (format (union (quote guess) (quote standard) (quote text) (quote text-force-cr) same copy) (quote same)) (show-errors? boolean |#t|)) boolean))]{ @defmethod*[(((save-file/gui-error (filename (union path |#f|) |#f|) (format (union (quote guess) (quote standard) (quote text) (quote text-force-cr) same copy) (quote same)) (show-errors? boolean |#t|)) boolean?))]{
This method is an alternative to This method is an alternative to
@method[editor<%> save-file]. Rather than showing errors via the original stdout, it @method[editor<%> save-file]. Rather than showing errors via the original stdout, it
opens a dialog with an error message showing the error. opens a dialog with an error message showing the error.
@ -63,7 +63,7 @@
no error occurred and @scheme[#f] if an error occurred. no error occurred and @scheme[#f] if an error occurred.
} }
@defmethod*[(((load-file/gui-error (filename (union string |#f|) |#f|) (format (union (quote guess) (quote standard) (quote text) (quote text-force-cr) (quote same) (quote copy)) (quote guess)) (show-errors? boolean |#t|)) boolean))]{ @defmethod*[(((load-file/gui-error (filename (union string |#f|) |#f|) (format (union (quote guess) (quote standard) (quote text) (quote text-force-cr) (quote same) (quote copy)) (quote guess)) (show-errors? boolean |#t|)) boolean?))]{
This method is an alternative to This method is an alternative to
@method[editor<%> load-file]. Rather than showing errors via the original stdout, it @method[editor<%> load-file]. Rather than showing errors via the original stdout, it
opens a dialog with an error message showing the error. opens a dialog with an error message showing the error.
@ -91,7 +91,7 @@
Does nothing. Does nothing.
} }
@defmethod*[(((can-close?) boolean))]{ @defmethod*[(((can-close?) boolean?))]{
This method is called to query the editor if is okay to This method is called to query the editor if is okay to
close the editor. Although there is no visible effect close the editor. Although there is no visible effect
associated with closing an editor, there may be some cleanup associated with closing an editor, there may be some cleanup
@ -105,7 +105,7 @@
Returns @scheme[#t]. Returns @scheme[#t].
} }
@defmethod*[(((close) boolean))]{ @defmethod*[(((close) boolean?))]{
This method is merely This method is merely
@schemeblock[ @schemeblock[
(if (can-close?) (if (can-close?)
@ -155,7 +155,7 @@
This installs the global keymap @scheme[keymap:get-global] to This installs the global keymap @scheme[keymap:get-global] to
handle keyboard and mouse mappings not handled by @scheme[keymap]. The handle keyboard and mouse mappings not handled by @scheme[keymap]. The
global keymap is created when the framework is invoked. global keymap is created when the framework is invoked.
@defmethod*[#:mode augment (((can-save-file? (filename string) (format symbol?)) boolean))]{ @defmethod*[#:mode augment (((can-save-file? (filename string) (format symbol?)) boolean?))]{
Checks to see if the file on the disk has been modified out Checks to see if the file on the disk has been modified out
side of this editor, using side of this editor, using
@ -163,7 +163,7 @@
If it has, this method prompts the user to be sure they want to save. If it has, this method prompts the user to be sure they want to save.
} }
@defmethod*[#:mode augment (((after-save-file (success? boolean)) void))]{ @defmethod*[#:mode augment (((after-save-file (success? boolean?)) void))]{
If the current filename is not a temporary filename, this method calls If the current filename is not a temporary filename, this method calls
@scheme[handler:add-to-recent]with the current filename. @scheme[handler:add-to-recent]with the current filename.
@ -175,19 +175,19 @@
@method[editor:basic<%> save-file-out-of-date?]. @method[editor:basic<%> save-file-out-of-date?].
} }
@defmethod*[#:mode augment (((after-load-file (success? boolean)) void))]{ @defmethod*[#:mode augment (((after-load-file (success? boolean?)) void))]{
Updates a private instance variable with the modification Updates a private instance variable with the modification
time of the file, for using in implementing time of the file, for using in implementing
@method[editor:basic<%> save-file-out-of-date?] @method[editor:basic<%> save-file-out-of-date?]
} }
@defmethod*[#:mode override (((on-focus (on? boolean)) void))]{ @defmethod*[#:mode override (((on-focus (on? boolean?)) void))]{
Manages the state to implement Manages the state to implement
@method[editor:basic<%> has-focus?] @method[editor:basic<%> has-focus?]
} }
@defmethod*[#:mode augment (((on-edit-sequence) boolean))]{ @defmethod*[#:mode augment (((on-edit-sequence) boolean?))]{
Always returns @scheme[#t]. Updates a flag for Always returns @scheme[#t]. Updates a flag for
@method[editor:basic<%> local-edit-sequence?] @method[editor:basic<%> local-edit-sequence?]
@ -323,7 +323,7 @@
in the editor. in the editor.
} }
@defmethod*[(((allow-close-with-no-filename?) boolean))]{ @defmethod*[(((allow-close-with-no-filename?) boolean?))]{
This method indicates if closing the file when it hasn't This method indicates if closing the file when it hasn't
been saved is a reason to alert the user. See also been saved is a reason to alert the user. See also
@method[editor:file-mixin can-close?]. @method[editor:file-mixin can-close?].
@ -331,6 +331,15 @@
Defaultly returns @scheme[#f]. Defaultly returns @scheme[#f].
} }
@defmethod[(user-saves-or-not-modified? [allow-cancel? #t]) boolean?]{
If the file has not been saved, this prompts the user about saving and,
if the user says to save, then it saves the file.
The result is @scheme[#t] if the save file is up to date, or if
the user says it is okay to continue without saving. Generally used
when closing the file or quiting the app.
}
} }
@defmixin[editor:file-mixin (editor:keymap<%>) (editor:file<%>)]{ @defmixin[editor:file-mixin (editor:keymap<%>) (editor:file<%>)]{
This editor locks itself when the file that is opened is read-only in This editor locks itself when the file that is opened is read-only in
@ -344,7 +353,7 @@
frame that matches frame that matches
@scheme[frame:editor<%>]. @scheme[frame:editor<%>].
} }
@defmethod*[#:mode augment (((can-close?) boolean))]{ @defmethod*[#:mode augment (((can-close?) boolean?))]{
If the If the
@method[editor:file<%> allow-close-with-no-filename?] @method[editor:file<%> allow-close-with-no-filename?]
@ -369,7 +378,7 @@
} }
@definterface[editor:backup-autosave<%> (editor:basic<%>)]{ @definterface[editor:backup-autosave<%> (editor:basic<%>)]{
Classes matching this interface support backup files and autosaving. Classes matching this interface support backup files and autosaving.
@defmethod*[(((backup?) boolean))]{ @defmethod*[(((backup?) boolean?))]{
Indicates weather this Indicates weather this
@scheme[editor<%>] @scheme[editor<%>]
should be backed up. should be backed up.
@ -382,7 +391,7 @@
@index{'framework:backup-files?} @index{'framework:backup-files?}
} }
@defmethod*[(((autosave?) boolean))]{ @defmethod*[(((autosave?) boolean?))]{
Indicates weather this Indicates weather this
@scheme[editor<%>] @scheme[editor<%>]
should be autosaved. should be autosaved.
@ -455,7 +464,7 @@
See also See also
@scheme[frame:text-info<%>]. @scheme[frame:text-info<%>].
@defmethod*[#:mode override (((lock (lock? boolean)) void))]{ @defmethod*[#:mode override (((lock (lock? boolean?)) void))]{
Uses Uses
@method[editor:basic<%> run-after-edit-sequence] @method[editor:basic<%> run-after-edit-sequence]

View File

@ -83,7 +83,7 @@
} }
@defmethod*[(((clear) boolean))]{ @defmethod*[(((clear) boolean?))]{
This removes all of the frames in the group. It does not close the frames. See also This removes all of the frames in the group. It does not close the frames. See also
@method[group:% on-close-all]and @method[group:% on-close-all]and
@method[group:% can-close-all?]. @method[group:% can-close-all?].

View File

@ -26,7 +26,7 @@
} }
} }
@defmixin[keymap:aug-keymap-mixin (keymap%) (keymap:aug-keymap<%>)]{ @defmixin[keymap:aug-keymap-mixin (keymap%) (keymap:aug-keymap<%>)]{
@defmethod*[#:mode override (((chain-to-keymap (next (instance keymap%)) (prefix? boolean)) void))]{ @defmethod*[#:mode override (((chain-to-keymap (next (instance keymap%)) (prefix? boolean?)) void))]{
Keeps a list of the keymaps chained to this one. Keeps a list of the keymaps chained to this one.
} }

View File

@ -47,7 +47,7 @@
} }
@defmixin[panel:single-window-mixin (panel:single<%> window<%>) (panel:single-window<%>)]{ @defmixin[panel:single-window-mixin (panel:single<%> window<%>) (panel:single-window<%>)]{
@defmethod*[#:mode override (((container-size (info (list-of (list exact-integer exact-integer boolean boolean)))) (values exact-integer exact-integer)))]{ @defmethod*[#:mode override (((container-size (info (list-of (list exact-integer exact-integer boolean boolean?)))) (values exact-integer exact-integer)))]{
Factors the border width into the size calculation. Factors the border width into the size calculation.
} }
@ -89,7 +89,7 @@
Return the current percentages of the children. Return the current percentages of the children.
} }
@defmethod*[(((get-vertical?) boolean))]{ @defmethod*[(((get-vertical?) boolean?))]{
This method controls the behavior of the other overridden This method controls the behavior of the other overridden
methods in mixins that implement this interface. methods in mixins that implement this interface.
@ -124,7 +124,7 @@
matches the number of children and calls matches the number of children and calls
@method[panel:dragable<%> after-percentage-change]. @method[panel:dragable<%> after-percentage-change].
} }
@defmethod*[#:mode override (((on-subwindow-event (receiver (instanceof window<%>)) (event (instanceof mouse-event%))) boolean))]{ @defmethod*[#:mode override (((on-subwindow-event (receiver (instanceof window<%>)) (event (instanceof mouse-event%))) boolean?))]{
When the cursor is dragging the middle bar around, this When the cursor is dragging the middle bar around, this
method handles the resizing of the two panes. method handles the resizing of the two panes.
@ -149,7 +149,7 @@
method of the method of the
@scheme[panel:dragable-mixin] @scheme[panel:dragable-mixin]
to return @scheme[#t]. to return @scheme[#t].
@defmethod*[#:mode override (((get-vertical?) boolean))]{ @defmethod*[#:mode override (((get-vertical?) boolean?))]{
Returns @scheme[#t]. Returns @scheme[#t].
} }
@ -160,7 +160,7 @@
method of the method of the
@scheme[panel:dragable-mixin] @scheme[panel:dragable-mixin]
to return @scheme[#f]. to return @scheme[#f].
@defmethod*[#:mode override (((get-vertical?) boolean))]{ @defmethod*[#:mode override (((get-vertical?) boolean?))]{
Returns @scheme[#f]. Returns @scheme[#f].
} }

View File

@ -53,7 +53,7 @@
@scheme[preferences:get]) the matching open parenthesis is flashed. @scheme[preferences:get]) the matching open parenthesis is flashed.
} }
@defmethod*[(((tabify-on-return?) boolean))]{ @defmethod*[(((tabify-on-return?) boolean?))]{
The result of this method is used to determine if the return key The result of this method is used to determine if the return key
automatically tabs over to the correct position. automatically tabs over to the correct position.

View File

@ -70,7 +70,7 @@
Returns a list of (opaque) values representing the active Returns a list of (opaque) values representing the active
ranges in the editor. ranges in the editor.
} }
@defmethod*[(((get-styles-fixed) boolean))]{ @defmethod*[(((get-styles-fixed) boolean?))]{
If the result of this function is @scheme[#t], the styles in this If the result of this function is @scheme[#t], the styles in this
@scheme[text:basic<%>] @scheme[text:basic<%>]
will be fixed. This means will be fixed. This means
@ -87,7 +87,7 @@
@method[text:basic<%> set-styles-fixed]when setting the styles. @method[text:basic<%> set-styles-fixed]when setting the styles.
} }
@defmethod*[(((set-styles-fixed (fixed? boolean)) void))]{ @defmethod*[(((set-styles-fixed (fixed? boolean?)) void))]{
Sets the styles fixed parameter of this Sets the styles fixed parameter of this
@scheme[text%]. See also @scheme[text%]. See also
@method[text:basic<%> get-styles-fixed] @method[text:basic<%> get-styles-fixed]
@ -125,7 +125,7 @@
See also See also
@method[text:basic<%> port-name-matches?]. @method[text:basic<%> port-name-matches?].
} }
@defmethod*[(((port-name-matches? (id (or/c path? symbol?))) boolean))]{ @defmethod*[(((port-name-matches? (id (or/c path? symbol?))) boolean?))]{
Indicates if @scheme[id] matches the port name of this file. If Indicates if @scheme[id] matches the port name of this file. If
the file is saved, the port name matches when the save file the file is saved, the port name matches when the save file
@ -428,7 +428,7 @@
@defmixin[text:return-mixin (text%) (text:return<%>)]{ @defmixin[text:return-mixin (text%) (text:return<%>)]{
Use this buffer to perform some special action when return is typed. Use this buffer to perform some special action when return is typed.
@defconstructor[((return (-> boolean)))]{ @defconstructor[((return (-> boolean?)))]{
} }
@defmethod*[#:mode override (((on-local-char (event (is-a?/c key-event%))) void))]{ @defmethod*[#:mode override (((on-local-char (event (is-a?/c key-event%))) void))]{
@ -612,7 +612,7 @@
ends an edit sequence in the delegate. ends an edit sequence in the delegate.
} }
@defmethod*[#:mode override (((resized (snip (is-a?/c snip%)) (redraw-now? boolean)) void))]{ @defmethod*[#:mode override (((resized (snip (is-a?/c snip%)) (redraw-now? boolean?)) void))]{
Sends a message to the delegate to update the size of the Sends a message to the delegate to update the size of the
copied snip, if there is one. copied snip, if there is one.
@ -634,7 +634,7 @@
remembers the filename, for use in remembers the filename, for use in
@method[text:delegate-mixin after-load-file]. @method[text:delegate-mixin after-load-file].
} }
@defmethod*[#:mode augment (((after-load-file (success? boolean)) void))]{ @defmethod*[#:mode augment (((after-load-file (success? boolean?)) void))]{
updates the delegate with the new contents of the text. updates the delegate with the new contents of the text.
} }
@ -737,7 +737,7 @@
@definterface[text:file<%> (editor:file<%> text:basic<%>)]{ @definterface[text:file<%> (editor:file<%> text:basic<%>)]{
Mixins that implement this interface lock themselves when Mixins that implement this interface lock themselves when
the file they are editing is read only. the file they are editing is read only.
@defmethod*[(((get-read-write?) boolean))]{ @defmethod*[(((get-read-write?) boolean?))]{
Indicates whether or not this editor is in read-write mode. Indicates whether or not this editor is in read-write mode.
} }
@ -748,14 +748,14 @@
} }
} }
@defmixin[text:file-mixin (editor:file<%> text:basic<%>) (text:file<%>)]{ @defmixin[text:file-mixin (editor:file<%> text:basic<%>) (text:file<%>)]{
@defmethod*[#:mode augment (((can-insert? (start number) (len number)) boolean))]{ @defmethod*[#:mode augment (((can-insert? (start number) (len number)) boolean?))]{
Returns false if the result of Returns false if the result of
@method[text:file<%> get-read-write?] @method[text:file<%> get-read-write?]
is true, otherwise returns the is true, otherwise returns the
result of calling @scheme[inner]. result of calling @scheme[inner].
} }
@defmethod*[#:mode augment (((can-delete? (start number) (len number)) boolean))]{ @defmethod*[#:mode augment (((can-delete? (start number) (len number)) boolean?))]{
Returns false if the result of Returns false if the result of
@method[text:file<%> get-read-write?] @method[text:file<%> get-read-write?]
@ -850,14 +850,14 @@
@method[text:ports<%> get-unread-start-point]. @method[text:ports<%> get-unread-start-point].
} }
@defmethod*[(((set-allow-edits (allow-edits? boolean)) void))]{ @defmethod*[(((set-allow-edits (allow-edits? boolean?)) void))]{
Enables or disables editing in the buffer. Be sure to update Enables or disables editing in the buffer. Be sure to update
the unread start point (via the unread start point (via
@method[text:ports<%> set-unread-start-point]) and the insertion point (via @method[text:ports<%> set-unread-start-point]) and the insertion point (via
@method[text:ports<%> set-insertion-point]) after making changes to the buffer. @method[text:ports<%> set-insertion-point]) after making changes to the buffer.
} }
@defmethod*[(((get-allow-edits) boolean))]{ @defmethod*[(((get-allow-edits) boolean?))]{
Indicates if editing is allowed in the buffer at this point. Indicates if editing is allowed in the buffer at this point.
} }
@ -885,7 +885,7 @@
@method[text:ports<%> set-insertion-point]. @method[text:ports<%> set-insertion-point].
} }
@defmethod*[(((submit-to-port? (key char)) boolean))]{ @defmethod*[(((submit-to-port? (key char)) boolean?))]{
Augment this method to help control when characters should Augment this method to help control when characters should
be submitted to the input port. be submitted to the input port.
@ -1028,13 +1028,13 @@
} }
@defmixin[text:ports-mixin (text:wide-snip<%>) (text:ports<%>)]{ @defmixin[text:ports-mixin (text:wide-snip<%>) (text:ports<%>)]{
@defmethod*[#:mode augment (((can-insert? (start exact-integer) (len exact-integer)) boolean))]{ @defmethod*[#:mode augment (((can-insert? (start exact-integer) (len exact-integer)) boolean?))]{
Returns the results of the @scheme[inner] call, unless Returns the results of the @scheme[inner] call, unless
@method[text:ports<%> get-allow-edits] @method[text:ports<%> get-allow-edits]
returns @scheme[#f]. returns @scheme[#f].
} }
@defmethod*[#:mode augment (((can-delete? (start exact-integer) (len exact-integer)) boolean))]{ @defmethod*[#:mode augment (((can-delete? (start exact-integer) (len exact-integer)) boolean?))]{
Returns the results of the @scheme[inner] call, unless Returns the results of the @scheme[inner] call, unless
@method[text:ports<%> get-allow-edits] @method[text:ports<%> get-allow-edits]
@ -1099,7 +1099,7 @@
@scheme[(make-object color% 204 153 255)]. @scheme[(make-object color% 204 153 255)].
} }
@defmethod*[(((completion-mode-key-event? (key-event key-event%)) boolean))]{ @defmethod*[(((completion-mode-key-event? (key-event key-event%)) boolean?))]{
Returns true when the key event passed to it should initiate Returns true when the key event passed to it should initiate
the completions menu. the completions menu.