ViewVC logotype

Log of /mcclim/input-editing.lisp

Parent Directory Parent Directory | Revision Log Revision Log

Links to HEAD: (view) (annotate)
Sticky Tag:

Revision 1.75 - (view) (annotate) - [select for diffs]
Thu Oct 23 20:47:57 2008 UTC (5 years, 5 months ago) by thenriksen
Branch: MAIN
Changes since 1.74: +1 -1 lines
Diff to previous 1.74
Spelling fixes from Mike Watters.

Revision 1.74 - (view) (annotate) - [select for diffs]
Thu Feb 7 20:20:04 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
CVS Tags: McCLIM-0-9-6
Changes since 1.73: +8 -13 lines
Diff to previous 1.73
Use `format-items' when displaying inline completions.

This makes it work better in the ESA minibuffer.

Revision 1.73 - (view) (annotate) - [select for diffs]
Mon Feb 4 19:15:35 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.72: +1 -1 lines
Diff to previous 1.72
Fix bug that sometimes caused previous prompts to be covered by typeout.

Revision 1.72 - (view) (annotate) - [select for diffs]
Mon Feb 4 19:06:17 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.71: +2 -2 lines
Diff to previous 1.71
Fixed some random input-editor bugs.

Revision 1.71 - (view) (annotate) - [select for diffs]
Sun Feb 3 12:11:13 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.70: +41 -26 lines
Diff to previous 1.70
Implement classic CLIM behavior for :erase keyword in with-input-editor-typeout.

Doesn't mesh well with border output records, for some reason.

Revision 1.70 - (view) (annotate) - [select for diffs]
Sun Feb 3 11:35:22 2008 UTC (6 years, 2 months ago) by ahefner
Branch: MAIN
Changes since 1.69: +1 -0 lines
Diff to previous 1.69
Oops, deleted an extra line along with the old comment.

Revision 1.69 - (view) (annotate) - [select for diffs]
Sun Feb 3 10:38:58 2008 UTC (6 years, 2 months ago) by ahefner
Branch: MAIN
Changes since 1.68: +3 -6 lines
Diff to previous 1.68
Don't error when completion fails in complete-input-rescan.

Revision 1.68 - (view) (annotate) - [select for diffs]
Sun Feb 3 08:06:31 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.67: +1 -1 lines
Diff to previous 1.67
Fix minor bug in complete-from-possibilities.

Revision 1.67 - (view) (annotate) - [select for diffs]
Sat Feb 2 19:03:16 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.66: +1 -0 lines
Diff to previous 1.66
Redraw the input buffer after displaying typeout, causes scrolling and
stuff if necessary.

Revision 1.66 - (view) (annotate) - [select for diffs]
Fri Feb 1 20:28:46 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.65: +102 -29 lines
Diff to previous 1.65
Implemented generic input-editor typeout, provided we can get an
output record for the input editor.

Theoretically, the nice typeout implementation should now also work
for Goatee, though I seem to have broken it at some other point.

Revision 1.65 - (view) (annotate) - [select for diffs]
Fri Feb 1 12:01:10 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.64: +34 -19 lines
Diff to previous 1.64
Added in-line completion using input-editor typeout instead of calling menu-choose.

Does not work in Goatee.

May fail under some circumstances that input-editor typeout doesn't handle well yet.

May behave illogically because the list of completions is kept alive
for fairly long, yet the presentations on it become untouchable almost
immediately. This is because they are of a specially created
completion presentation type, and not the more general presentation
type of the object they represent. This knowledge is not accessible to
the input-editing machinery (also, it seems presentation type options
are compared for equality using EQ/EQL, so two content-wise identical
possibility-lists can have different completion presentation types).

Revision 1.64 - (view) (annotate) - [select for diffs]
Fri Feb 1 10:53:54 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.63: +3 -4 lines
Diff to previous 1.63
Completions are lists, not cons cells.

Revision 1.63 - (view) (annotate) - [select for diffs]
Thu Jan 31 19:17:57 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.62: +62 -11 lines
Diff to previous 1.62
Moved some input-editing functions around.

The typeout area is now cleared at the end of an input-editing session.

Revision 1.62 - (view) (annotate) - [select for diffs]
Wed Jan 30 23:39:19 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.61: +14 -21 lines
Diff to previous 1.61
Fixed nested use of with-input-editing.

Revision 1.61 - (view) (annotate) - [select for diffs]
Wed Jan 30 23:24:06 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.60: +23 -9 lines
Diff to previous 1.60

Revision 1.60 - (view) (annotate) - [select for diffs]
Wed Jan 30 22:29:07 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.59: +26 -0 lines
Diff to previous 1.59
Try to centralise the with-input-editing logic a bit.

Make with-input-editing work for input-editing-streams.

Revision 1.59 - (view) (annotate) - [select for diffs]
Wed Jan 30 21:21:44 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.58: +1 -3 lines
Diff to previous 1.58
WITH-INPUT-EDITING now works really well with Drei.

Revision 1.58 - (view) (annotate) - [select for diffs]
Wed Jan 30 15:58:14 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.57: +11 -0 lines
Diff to previous 1.57
Made the input-editing streams and clim-stream-panes interactive streams.

Revision 1.57 - (view) (annotate) - [select for diffs]
Sat Jan 19 09:38:20 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.56: +166 -10 lines
Diff to previous 1.56
Added docstrings for input-editor related stuff.

Revision 1.56 - (view) (annotate) - [select for diffs]
Mon Aug 20 14:27:14 2007 UTC (6 years, 7 months ago) by thenriksen
Branch: MAIN
CVS Tags: McCLIM-0-9-5
Changes since 1.55: +3 -3 lines
Diff to previous 1.55
Fixed last known Drei input-editing-stream issue by implementing
Goatee-style handling of :REPLACE keyword parameter to
STREAM-REPLACE-INPUT (not mentioned in the spec).

Revision 1.55 - (view) (annotate) - [select for diffs]
Tue Dec 12 22:36:32 2006 UTC (7 years, 4 months ago) by thenriksen
Branch: MAIN
CVS Tags: McCLIM-0-9-4, mcclim-0-9-4
Changes since 1.54: +17 -13 lines
Diff to previous 1.54
Added support for CLIM 2.2-style `with-activation-gestures' and

Revision 1.54 - (view) (annotate) - [select for diffs]
Tue Dec 12 22:32:40 2006 UTC (7 years, 4 months ago) by afuchs
Branch: MAIN
Changes since 1.53: +1 -1 lines
Diff to previous 1.53
Flip the *use-goatee* default to NIL, as prompted by this discussion:

<antifuchs> YuleAthas: do you think it's responsible to flip the
            *use-goatee* switch now?
<YuleAthas> antifuchs: yes.

Revision 1.53 - (view) (annotate) - [select for diffs]
Wed Nov 8 01:18:22 2006 UTC (7 years, 5 months ago) by thenriksen
Branch: MAIN
Changes since 1.52: +118 -330 lines
Diff to previous 1.52
Committed changes necessary to support Drei (and non-Goatee input
editors at all). Also some indirection permitting run-time selection
of editor substrate and the code for :text-editor and :text-field

Revision 1.52 - (view) (annotate) - [select for diffs]
Sat Aug 5 19:54:31 2006 UTC (7 years, 8 months ago) by thenriksen
Branch: MAIN
CVS Tags: McCLIM-0-9-3
Changes since 1.51: +3 -1 lines
Diff to previous 1.51
Improved the implementation of `menu-choose' - now supports almost all
features demanded by the spec (though some in a nonoptimal
way). Changed a few calls to `menu-choose' in McCLIM to utilize

Revision 1.51 - (view) (annotate) - [select for diffs]
Fri May 5 10:24:02 2006 UTC (7 years, 11 months ago) by crhodes
Branch: MAIN
Changes since 1.50: +0 -19 lines
Diff to previous 1.50
Many more generic function defgenerics in decls.lisp
... moving some out from their individual files.
... one or two tiny code cleanups

I think the only substantive changes in this commit are:
* remove the workaround for sbcl-0.9.8 broken forward-referenced-class
* delete the unused uniform-design protocol-class;
* put the standard-sheet-input-mixin as a superclass of
  standard-extended-input-stream, not of the protocol class
If someone wants to tell me that these things are wrong, that's fine; at
least some things appear still to work.

Now we only emit 209 style warnings when loading mcclim under sbcl.
(When compiling and loading, it's closer to 500).

This commit cures all but a few redefinition style-warnings -- so now
almost all generic functions are defined before the first method
definition is seen.  It doesn't cure implicit definition of generic
function style warnings, so there are probably plenty of specified
generic functions which are not explicitly defined.  (Leaving aside the
issues with unspecified generic functions)

* DEFGENERIC* forward declarations
* specified methods and macros
* specified special variables
* unification of protocol-classes and decls

Revision 1.50 - (view) (annotate) - [select for diffs]
Mon Apr 10 13:58:10 2006 UTC (8 years ago) by rgoldman
Branch: MAIN
Changes since 1.49: +3 -2 lines
Diff to previous 1.49
Changed the way possibilities are presented when complete-from-generator
is used in the command reader.  Now the list of possibilities generated
will be sorted alphabetically.  This solution is possibly not ideal, but
I thought any better solution would require more widespread changes.

Revision 1.49 - (view) (annotate) - [select for diffs]
Fri Mar 10 21:58:13 2006 UTC (8 years, 1 month ago) by tmoore
Branch: MAIN
CVS Tags: McCLIM-0-9-2
Changes since 1.48: +0 -2 lines
Diff to previous 1.48
Move most protocol class definitions into protocol-classes.lisp, which
is compiled and loaded early. Some class definitions, which had slot
definitions that I didn't have the stomach to tease apart, stayed

Replace the presentation documentation state mechanism with
updating-output so that other functions / programs can write to the
pointer documentation area and not screw things up. We still use the
state to actually print the documentation.

Revision 1.48 - (view) (annotate) - [select for diffs]
Sun Jan 22 21:17:07 2006 UTC (8 years, 2 months ago) by afuchs
Branch: MAIN
Changes since 1.47: +1 -1 lines
Diff to previous 1.47
Remove the blocks marked #+unicode, and remove #-unicode tags.

As clisp includes :unicode on their *features* list, it doesn't
make much sense anymore to keep code around that worked only with an
experimental branch of cmucl, long ago.

Revision 1.47 - (view) (annotate) - [select for diffs]
Wed Jun 22 09:49:15 2005 UTC (8 years, 9 months ago) by tmoore
Branch: MAIN
Changes since 1.46: +9 -4 lines
Diff to previous 1.46
Added some improvements to accept-from-string so that random accept
methods and default processing are more likely to work with it.

Added a null command and null-command presentation type so that the
REPL doesn't print something obnoxious when the user enters an empty

Some fixes to default processing.

Revision 1.46 - (view) (annotate) - [select for diffs]
Sun Feb 27 00:06:27 2005 UTC (9 years, 1 month ago) by tmoore
Branch: MAIN
CVS Tags: McCLIM-0-9-1
Changes since 1.45: +1 -7 lines
Diff to previous 1.45
Fixed input editing problem reported by Luke Gorrie. Some old code in stream-read-gesture was causing the scan pointer to be incremented twice in some cases.

Revision 1.45 - (view) (annotate) - [select for diffs]
Fri Feb 25 14:15:17 2005 UTC (9 years, 1 month ago) by tmoore
Branch: MAIN
Changes since 1.44: +66 -66 lines
Diff to previous 1.44
Changed the handling of "empty input" for the purposes of returning a
default value from ACCEPT. I eliminated the around method on
STREAM-READ-CHAR that looked for activation/delimiter gestures and
replaced it with an error handler on SIMPLE-PARSE-ERROR. The major
effect of this is that (accept 'string) now return the empty string
if the call to ACCEPT is not passed a default; other accept methods
can return something useful for empty input too. This fixes some
problems in the address book demo and with dialogs in general.

Revision 1.44 - (view) (annotate) - [select for diffs]
Tue Feb 22 14:00:11 2005 UTC (9 years, 1 month ago) by tmoore
Branch: MAIN
Changes since 1.43: +99 -6 lines
Diff to previous 1.43
Fixed presentation highlighting to do the right thing in the

Fixed Goatee to not draw anything when drawing is not enabled for the

Changed input editing streams to never put activation gestures in the
input buffer. There is only one place to receive an activation
gesture: the end of the buffer. If the user types an activation
gesture, the insertion pointer is moved to the end of the buffer.

Fixed various problems with accepting-values. In particular, the
insertion pointer does not need to be left at the end of a field when
the user exits the dialog. Also, the behavior in the presence of
errors new: if an error occurs while the user is typing in an
accepting-values field, the bell is beeped and the insertion pointer
is positioned before the stream position where the error occured.

Revision 1.43 - (view) (annotate) - [select for diffs]
Fri Feb 4 23:23:49 2005 UTC (9 years, 2 months ago) by tmoore
Branch: MAIN
Changes since 1.42: +16 -8 lines
Diff to previous 1.42
Changed invoke-empty-input and handle-empty-input to use the
activation/completion gesture typed by the user in deciding which
empty input continuation to invoke. This avoids bailing out of a call
to accept from within an inner (recursive) call to accept when the
user types a delimiter gesture for the inner call in an attempt to
get its default value.

Revision 1.42 - (view) (annotate) - [select for diffs]
Sun Oct 24 15:47:02 2004 UTC (9 years, 5 months ago) by moore
Branch: MAIN
Changes since 1.41: +1 -0 lines
Diff to previous 1.41
Implemented :ALIGN-PROMPTS in ACCEPTING-VALUES. This was harder than
it sounds, requiring several changes and cleanups:

spec vaguely hints that ACCEPT is responsible for drawing the prompt,
but that makes things like wrapping the calls to PROMPT-FOR-ACCEPT
and ACCEPT-PRESENT-DEFAULT inside a table formatting directive hard
to do. This shouldn't affect any user code.

Made Goatee input streams play nice with output recording. Added the
notion of a NEWLINE-CHARACTER to Goatee buffers; NIL is valid, so one
can construct Goatee areas that will only have one line. This
eliminates a lot of ugliness from ACCEPTING-VALUES dialogs.

Fixed a few Goatee bugs.

Revision 1.41 - (view) (annotate) - [select for diffs]
Fri Oct 15 13:05:36 2004 UTC (9 years, 6 months ago) by moore
Branch: MAIN
Changes since 1.40: +5 -0 lines
Diff to previous 1.40
ACCEPTING-VALUES. Update the text entry field in ACCEPTING-VALUES
when the :DEFAULT argument in the corresponding call to ACCEPT
changes. Return the correct third value from ACCEPT when the user
enters new input.

Add some documentation about INCREMENTAL-DISPLAY and the difference

which are trivial but which were not implemented.

Examples/accepting-values.lisp is a couple of examples from the Franz
user guide.

Tools/unimplemented.lisp prints out all the symbols in the CLIM
package which have no definition.

Revision 1.40 - (view) (annotate) - [select for diffs]
Wed Oct 6 12:03:56 2004 UTC (9 years, 6 months ago) by moore
Branch: MAIN
Changes since 1.39: +1 -1 lines
Diff to previous 1.39
Changed STREAM-DESIGNATOR-SYMBOL to take a default value
argument. The value corresponding to T isn't always *STANDARD-OUTPUT*.

Fixed a problem in the incremental redisplay code checked in
recently: the output record that holds an updating output record's
children wasn't always created.

Some tweaks (in progress) to ACCEPTING-VALUES.

Revision 1.39 - (view) (annotate) - [select for diffs]
Wed May 26 14:09:13 2004 UTC (9 years, 10 months ago) by moore
Branch: MAIN
Changes since 1.38: +1 -1 lines
Diff to previous 1.38
Fix typo in complete-input-rescan

Revision 1.38 - (view) (annotate) - [select for diffs]
Wed Mar 31 13:31:20 2004 UTC (10 years ago) by moore
Branch: MAIN
Changes since 1.37: +76 -19 lines
Diff to previous 1.37
Changed the way defaults are handled by accept. I added a mixin class
to standard-input-editing-stream, empty-input-mixin; an around method
on stream-read-gesture; and some supporting macrology
(handle-empty-input) to detect "empty" input and throw control to the
appropriate place. Accept-1 now uses handle-empty-input to determine
if it should return the default value. This means that the accept
methods no longer need to do anything with their :default argument
unless they use it for merging. I removed the :default and
:default-type arguments from many accept methods all over McCLIM.

Fixed a bad bug in the basic input editing loop
(stream-read-gesture): rescanning-p should be set to nil when the
scan-pointer reaches the fill pointer (not the insertion-pointer).

Fixed a small bug in make-gf-specialized-ptype, a support function
for com-show-generic-function.

Revision 1.37 - (view) (annotate) - [select for diffs]
Wed Mar 24 09:30:29 2004 UTC (10 years ago) by moore
Branch: MAIN
Changes since 1.36: +4 -3 lines
Diff to previous 1.36
2004-03-24  Timothy Moore  <moore@bricoworks.com>

	* INSTALL.OPENMCL: updated instructions.

	* builtin-commands.lisp (default-translator): Return the
	presentation type of the presentation as the second value.
	(document-form-translator): New function
	(%frob-constant-form, %frob-form): Use document-form-translator. Add
	translators from standard-object to expression and form.
	(expression-as-form): Add a menu entry for this translator.
	(ccl::%read-list-expression, (accept expression t textual-view),
	read, read-preserving-whitespace): Move the Lisp form reader
	stuff from the ptype 'form to the ptype 'expression. Disallow any
	activation or delimiter gestures while reading an expression.

	* commands.lisp (command-name-from-symbol): Don't strip leading
	subsequences of "COM-" from the command name.
	(keyword-arg-name-from-symbol): New function.
	(command-parsers): Add argument-unparser slot
	(make-keyword): New function
	(make-key-accessors): Use it. Accept keynames that begin with a
	#\: and have dashes replaced by spaces.
	(make-unprocessor-fun) New function to create an unprocessor
	function for each command.
	(%define-command): New macro preserving  old behavior. Use new
	unprocessor stuff.
	(output-destination, invoke-with-standard-output): New class and
	generic function for outputing the results of commands to an
	output stream.
	(define-command): Implement :provide-output-destination-keyword
	(command-line-unparser): Call new stuff instead.

	* dialog.lisp: Add (redundant):provide-output-destination-keyword
	keyword argument to some commands.

	* incremental-redisplay.lisp: Work in progress. Turn things

	* input-editing.lisp (complete-input): Don't insert input when mode is
	:complete and we've failed.

	* presentation-defs.lisp (accept-1): Use multiple-value-list when
	looking at results of accept method.
	((present t completion t t)): Use the arguments to the type to drive
	the present method here.
	((accept sequence t textual-view)): Don't peek-char initially! It
	breaks accepting the first element via mouse click.
	(accept sequence-enumerated t textual-view): new method.

	* recording.lisp : Cosmetic fixups.

	* regions.lisp (ellipse-normal-radii*): Add Gilbert's English
	translation of the comment and clean up the function.

	* system.lisp: Add Goatee/presentation-history.

	* transforms.lisp (+identity-transformation+): Move earlier in the
	file to avoid a warning.

	* utils.lisp (delete-1, parse-lambda-list): new functions.

	* Apps/Listener/dev-commands.lisp : Add
	:provide-output-destination-keyword argument to many commands.
	((presentation-type generic-function)): Rewrite. Make it inherit from
	t, add accept method. The type of the object is generic-function, not
	the name or something.
	((presentation-type standard-generic-function), (presentation-type
	method), (presentation-type standard-method)): add.
	(Show Generic Function): All-singing all-dancing command for exploring
	generic functions and their methods.
	((presentation-type package)): New type with completing accept method.
	(Set Package): New command

	* Apps/Listener/listener.lisp (run-frame-top-level): Add bindings for
	all the Common Lisp reader and printer variables.

	* Apps/Scigraph/dwim/macros.lisp (define-command): Add
	:provide-output-destination-keyword support for McCLIM.

	* Goatee/goatee-command.lisp (lookup-gesture-command): Disable
	annoying debugging output.

	* Lisp-Dep/fix-openmcl.lisp (:clim-mop): In OpenMCL 0.14 use and
	export all symbols from :openmcl-mop.
	(compute-applicable-methods-using-classes): Hack for the listener.

Revision 1.36 - (view) (annotate) - [select for diffs]
Tue Jan 20 16:07:26 2004 UTC (10 years, 2 months ago) by moore
Branch: MAIN
Changes since 1.35: +7 -5 lines
Diff to previous 1.35
Presentation histories. The new goatee command C-M y works reasonably
well in the listener demo. More testing and user documentation is needed.

Work in progress on the OpenGL backend.

Revision 1.35 - (view) (annotate) - [select for diffs]
Wed Jan 7 05:05:07 2004 UTC (10 years, 3 months ago) by moore
Branch: MAIN
Changes since 1.34: +10 -8 lines
Diff to previous 1.34
Work in progress on the OpenGL backend, but nothing's working
yet. Refactored the KeySym and modifiers code in the CLX backend so
that it can be used by the OpenGL backend too.

Fixed a typo in presentation-replace-input; it was always creating
accept result extents.

Added support in accepting-values for placing the default in the text
entry field and fixed several problems that turned up as a result.

The completion functions take sequences, not just lists. Also,
:allow-any-input was broken.

Revision 1.34 - (view) (annotate) - [select for diffs]
Wed Oct 29 13:19:31 2003 UTC (10 years, 5 months ago) by moore
Branch: MAIN
CVS Tags: McCLIM-0-9
Changes since 1.33: +5 -1 lines
Diff to previous 1.33
Fix bug where commands would disappear after entering them. Among
other problems, there was a problem in redisplay-output-record, which
performed a transformation on pane-viewport-region. It seems to me
that pane-viewport-region is already in the right coordinate system,
but maybe someone else can verify this assertion.

Reordered files in system.lisp so that dialog.lisp comes before
builtin-commands.lisp; accepting-values is needed before any commands
are defined.

Revision 1.33 - (view) (annotate) - [select for diffs]
Thu Oct 9 19:15:34 2003 UTC (10 years, 6 months ago) by moore
Branch: MAIN
Changes since 1.32: +13 -1 lines
Diff to previous 1.32
Change handling of activation gestures and their effect on the input
editing stream. A stream now becomes activated when
stream-read-gesture sees the gesture (not stream-process-gesture),
and a stream is "deactivated" if the activation gesture is unread.

In (method accept form ...) suppress all activation gestures while
read-preserving-whitespace is processing input. This enables
multi-line input of forms.

Add (method accept pathname ...) so you don't have to type quotes
around pathnames in the listener demo.

Revision 1.32 - (view) (annotate) - [select for diffs]
Mon Sep 15 15:57:57 2003 UTC (10 years, 7 months ago) by hefner1
Branch: MAIN
Changes since 1.31: +13 -13 lines
Diff to previous 1.31
Fixed bug in COMPLETE-INPUT-RESCAN where if the gesture was not a partial
completer, NIL would be compared against a number.

Revision 1.31 - (view) (annotate) - [select for diffs]
Thu Aug 14 05:02:36 2003 UTC (10 years, 8 months ago) by hefner1
Branch: MAIN
Changes since 1.30: +1 -1 lines
Diff to previous 1.30
* The spec states that the input-not-of-required-type condition must be a
  subtype of PARSE-ERROR (was defined as just ERROR).

* Fixing this also makes ACCEPTing the OR presentation type work correctly.

Revision 1.30 - (view) (annotate) - [select for diffs]
Sat Jul 26 17:37:57 2003 UTC (10 years, 8 months ago) by gilbert
Branch: MAIN
Changes since 1.29: +1 -1 lines
Diff to previous 1.29
Due to popular demand we spit FORMAT-style debugging messages out to
*trace-output* instead of *debug-io*

Revision 1.29 - (view) (annotate) - [select for diffs]
Sun Jun 29 05:34:18 2003 UTC (10 years, 9 months ago) by moore
Branch: MAIN
Changes since 1.28: +70 -25 lines
Diff to previous 1.28
Accepting-values.  It's ugly and has some cursor glitches but
otherwise appears to work. Various changes to Goatee were made to
support accepting-values.  Also, Goatee screen lines are now
better-behaved output records.

Revision 1.28 - (view) (annotate) - [select for diffs]
Sat May 31 20:50:01 2003 UTC (10 years, 10 months ago) by hefner1
Branch: MAIN
Changes since 1.27: +4 -3 lines
Diff to previous 1.27
Fixed a completion bug - invoking completion on a fully specified command
name caused a trip to the debugger.

Revision 1.27 - (view) (annotate) - [select for diffs]
Fri May 30 02:26:17 2003 UTC (10 years, 10 months ago) by gilbert
Branch: MAIN
Changes since 1.26: +6 -1 lines
Diff to previous 1.26
  In case of a noise string the scan-pointer was incremented twice.
  Removed one of INCFs; not sure 100% correct but it seems be an

Revision 1.26 - (view) (annotate) - [select for diffs]
Fri Mar 21 21:36:59 2003 UTC (11 years ago) by mikemac
Branch: MAIN
Changes since 1.25: +1 -1 lines
Diff to previous 1.25
make all of the package names passed to in-package be lowercase keywords for ACL's java mode

Revision 1.25 - (view) (annotate) - [select for diffs]
Mon Nov 11 08:31:23 2002 UTC (11 years, 5 months ago) by moore
Branch: MAIN
Changes since 1.24: +1 -1 lines
Diff to previous 1.24
Hack around lack of string stream class in CMUCL/SBCL

Revision 1.24 - (view) (annotate) - [select for diffs]
Mon Nov 11 06:17:41 2002 UTC (11 years, 5 months ago) by moore
Branch: MAIN
Changes since 1.23: +2 -1 lines
Diff to previous 1.23
Don't define a slot accessor named TYPE

Revision 1.23 - (view) (annotate) - [select for diffs]
Mon Nov 11 01:02:21 2002 UTC (11 years, 5 months ago) by moore
Branch: MAIN
Changes since 1.22: +47 -37 lines
Diff to previous 1.22
3 sets of additions/changes/fixes:

Bugs I fixed while at ILC, including implementing accept-from-string.

Fixes made in the course of getting cl-reversi to work (it mostly does
modulo display timing issues).  This includes a revamping of command
tables, menus and keystrokes.

Revision 1.22 - (view) (annotate) - [select for diffs]
Sun Nov 10 15:48:56 2002 UTC (11 years, 5 months ago) by gilbert
Branch: MAIN
Changes since 1.21: +1 -7 lines
Diff to previous 1.21
Commit of patch submitted my Oliver Markovic.
Original message:

    Message-ID: <87bs4y1mhh.fsf@draco.home.lan>
    From: Oliver Markovic <qgo@gmx.net>
    To: free-clim@mikemac.com
    Subject: Protocol Classes
    Date: Sat, 09 Nov 2002 22:06:50 +0100


    Attached is a patch, which uses DEFINE-PROTOCOL-CLASS for all protocol
    classes as defined in the spec (not all were using that macro). I also
    added simple docstrings to the macro and changed the error message to
    something more civil :-)

    This should also add some required predicates, which were missing.

    I also noticed that protocol classes were given slots contradicting the
    definition in 2.5: "A protocol class is an "abstract" class with no
    slots and no methods (except perhaps for some default methods) [...]".
    But I guess that's no serious deviation from the spec though.

     Oliver Markovic

Revision 1.21 - (view) (annotate) - [select for diffs]
Thu Oct 31 12:58:14 2002 UTC (11 years, 5 months ago) by brian
Branch: MAIN
Changes since 1.20: +1 -0 lines
Diff to previous 1.20
language support for text-styles, korean font support, support for 16 bit
fonts, support for font composition, support for timer events, some cosmetic
changes, support for unicode characters, etc.
A bit much at once, and hopefully it won't break for anyone who isn't using
unicode enabled cmucl.

Revision 1.20 - (view) (annotate) - [select for diffs]
Sat Sep 28 03:31:28 2002 UTC (11 years, 6 months ago) by moore
Branch: MAIN
Changes since 1.19: +1 -1 lines
Diff to previous 1.19
A different fix than Brian's for the original typo in
completing-from-suggestions.  Arguments other than stream are

Revision 1.19 - (view) (annotate) - [select for diffs]
Fri Sep 27 08:22:30 2002 UTC (11 years, 6 months ago) by brian
Branch: MAIN
Changes since 1.18: +1 -1 lines
Diff to previous 1.18
minor completing-from-suggestions fix - ',args rather than (list args)

Revision 1.18 - (view) (annotate) - [select for diffs]
Tue Aug 20 05:14:28 2002 UTC (11 years, 7 months ago) by adejneka
Branch: MAIN
Changes since 1.17: +1 -1 lines
Diff to previous 1.17

Revision 1.17 - (view) (annotate) - [select for diffs]
Sun Aug 18 06:27:04 2002 UTC (11 years, 8 months ago) by moore
Branch: MAIN
Changes since 1.16: +101 -46 lines
Diff to previous 1.16

Uncommented menu-choose.lisp from the system definition.  I'm using it
so it's not experimental, damn it :)

Possibilities gestures for command completion. C-/ and right mouse
bring up possibilities menus.

Make user-command-table inherit from global-command-table.

Implement keyword arguments in commands.

Implement the "read" part of the pointer protocol.

Added accept method for sequence presentation type.

Change handling of *null-presentation*.  This isn't traversed in
find-applicable-translators / map-applicable-translators anymore; it's
handeld in find-innermost-presentation-match.

Gave a raised appearance to menus drawn with menu-choose and friends.
Someone who knows what they're doing should look over what I did.

Steps towards implementing line wrap in Goatee.

Fixed bug in insert-obj-before pointed out by someone on IRC.

Revision 1.16 - (view) (annotate) - [select for diffs]
Sun Jul 28 06:14:19 2002 UTC (11 years, 8 months ago) by adejneka
Branch: MAIN
Changes since 1.15: +4 -0 lines
Diff to previous 1.15
CLIM has its own version of INTERACTIVE-STREAM-P.

Revision 1.15 - (view) (annotate) - [select for diffs]
Mon May 20 20:18:03 2002 UTC (11 years, 10 months ago) by mikemac
Branch: MAIN
Changes since 1.14: +4 -1 lines
Diff to previous 1.14
clean up a bunch of ACL compiler warnings

Revision 1.14 - (view) (annotate) - [select for diffs]
Sat May 18 07:05:51 2002 UTC (11 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.13: +24 -44 lines
Diff to previous 1.13
The most visible change is that argument prompts are displayed in
line.  Input editing on the prompt strings is a bit shaky (it should
be disallowed).  Commands for \C-u and \C-k are now implemented.

	* Goatee/buffer.lisp: Implement extents.
	* input-editing.lisp (noise-string-property,
	noise-string-start-property, *noise-string*,
	*noise-string-start*): Markers in the input buffer for noise
	(stream-read-gesture): Skip over noise strings.
	* Goatee/editable-buffer.lisp (editable-buffer): subclass
	(line-last-point): Move into buffer.lisp.
	(forward-char*): Fix bugs.
	(map-over-region, delete-region, clear-buffer): New functions.
	* Goatee/editing-stream.lisp (noise-extent). New class.
	(make-input-editing-stream-snapshot): Record noise extents in
	input buffer.
	(offset-location*, replace-input): Various bugs.
	(input-editor-format): Write to Goatee buffer inside a noise

	* presentations.lisp (default-describe-presentation-type):  Don't
	prepend an article when plural count is nil.
	(presentation method accept (string)): Handle default.

	* recording.lisp : Reimplement standard-sequence-output-record as
	an array so we can support the proper orders of
	map-over-records-containing-position and
	* Examples/clim-fig.lisp: (com-undo, com-clear): Fix assumptions
	about output record being a list.
	* Goatee/clim-area.lisp (add-output-record, delete-output-record,
	clear-output-record, map-over-records-containing-position,
	map-over-records-overlapping-region): Implement functions that
	used to be defaulted by superclass.

	* Goatee/goatee-command.lisp (clear-input-buffer, kill-line): New

Revision 1.13 - (view) (annotate) - [select for diffs]
Sun May 12 08:39:12 2002 UTC (11 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.12: +22 -8 lines
Diff to previous 1.12
These changes have been tested in ACL as well as CMUCL.

	* Lisp-Dep/fix-acl.lisp, Lisp-Dep/fix-cmu.lisp, Lisp-Dep/fix-sbcl.lisp:
	(defclass, compile-time-clos-class-p): Patch defclass to record
	CLOS classes at compile time.
	* presentations.lisp (compile-time-clos-p): Use the above when defined.

	* presentations.lisp (accept-using-completion): Helper function that
	defaults empty completion input.
	(method accept boolean): Use accept-using-completion.
	(method accept completion): Implement.
	* input-editing.lisp (stream-read-gesture): Don't loop doing
	stream-process-gesture when stream-read-gesture of encapsulated
	stream returns nil.
	(complete-input): Some tweaks to deal with "empty" input.
	* commands.lisp (make-argument-accept-fun,
	command-line-command-parser, read-command): Adjustments to deal
	with empty arguments.
	(com-help): Add gratuitous argument to test accept of completion
	presentation type and defaults.

	* Goatee/flexivector.lisp (method print-object (flexivector t)):
	Add missing stream argument to write-char.
	* Goatee/buffer.lisp: (method (setf point*) (t t basic-buffer-mixin),
	method buffer-close-line* (basic-buffer-mixin t t),
	method delete-char (basic-buffer),
	(method forward-char* (basic-buffer t),
	method buffer-close-line* :around (bp-buffer-mixin bp-buffer-line t)):
	Various bug fixes made in the course of doing replace-input in a
	multiline buffer.

Revision 1.12 - (view) (annotate) - [select for diffs]
Fri May 10 06:33:59 2002 UTC (11 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.11: +7 -5 lines
Diff to previous 1.11
commands.lisp (make-argument-accept-fun): Wrap in eval-when (:compile-toplevel).

input-editing.lisp (complete-input): Tweak to preserve the ending delimiter.

presentations.lisp: accept method for boolean.

Revision 1.11 - (view) (annotate) - [select for diffs]
Thu May 9 06:56:22 2002 UTC (11 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.10: +305 -4 lines
Diff to previous 1.10
Major new functionality: command processing with completion.  Check
out the address-book demo.  In it, all commands are available on the
command line.  Completion and editing work.  Prompts for input show up
on *debug-io* for now, but otherwise command input is accepted from

2002-05-08  Tim Moore  <moore@bricoworks.com>

	* commands.lisp: Implemented the magic argument parser function
	for commands.  Defined presentation types for command-name and
	command, as well as present and accept methods for them.
	(command-line-parser, command-line-unparser): Implemented.
	(define-command): Changed the :name argument to define-command to
	default to t which goes against the spec; this gives us some
	interesting command line parsing in the address book demo.  I'll
	change it back when we have presentation translators.
	* frames.lisp (default-frame-top-level): changed default prompt to
	"Command: ".  Don't echo results of commands.
	(execute-frame-command): Apply command name to command arguments
	like the spec says.
	* input-editing.lisp (stream-read-gesture): set rescanning to nil
	after reading a new gesture from the underlaying stream.
	(with-delimiter-gestures): Implement.
	(input-editor-format): Direct output to *debug-io* for now.
	(read-token): Handle null gestures, which shouldn't happen, but
	might after a stream is activated.
	(simple-parse-error): Fix :format-control initarg.
	(*completion-gestures*, simple-completion-error, complete-input,
	complete-from-generator, complete-from-possibilities,
	completing-from-suggestions): Implement.
	* ports.lisp (distribute-event): Change sheet of keyboard events
	to the sheet with input focus.
	* presentations.lisp (fake-params-args): Generate dummy args for
	optional and keyword arguments so their defaults don't need to be
	evaluated at compile time.
	(define-presentation-method): Set up a block with the same name as
	the method around the method body.
	(method presentation-typep): default method.
	(method presentation-type-of (standard-object)): Don't fail if the
	presentation type has no parameters.
	(method description (standard-class)): Add.
	(highlight-applicable-presentation): Don't pass through button
	events to the stream; handle them here.
	(accept): Provide a default :default-type argument if :default is
	(method stream-accept (standard-input-editing-stream)): add.
	(accept-1): Respect replace-input argument.
	(prompt-for-accept): Work on any stream.
	(prompt-for-accept-1): Tweak default prompt for recursive accept.
	(method present): Define default method.
	(accept-using-read): Take read-eval as an argument.
	(method accept): Define default method.
	(presentation-method presentation-type-of (string)): Return a more
	general result.
	* stream-input.lisp (gesture-name command-delimiter): Define.
	* system.lisp: Reenable the address book demo.

	* Backends/CLX/port.lisp (method realize-mirror (clx-port
	application-pane)): Add to register for pointer motion events.

	* Goatee/buffer.lisp: Added buffer pointers, which maintain their
	relative position across inserts and deletes.
	(bp-buffer-mixin, bp-buffer-line): Classes for buffer pointers.
	Added all the buffer protocol functions for buffer pointers.
	* Goatee/editing-stream.lisp
	(location*-offset*): Old offset-location* :)
	(offset-location*) New function to return a stream offset from a
	buffer location.
	(replace-input): Rewrite to preserve insertion pointer, using
	buffer pointers.
	* Goatee/goatee-command.lisp: Add #\tab as an insertable character.

Revision 1.10 - (view) (annotate) - [select for diffs]
Sun May 5 20:07:45 2002 UTC (11 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.9: +40 -12 lines
Diff to previous 1.9
Fixed a bug in frame-input-context-track-pointer that was causing a
draw-rectangle* call on every motion event.

The vertical spacing for standard-extended-output-stream was, in
effect, being added twice to start dimensions for each line.  After fixing
that, plus some stuff in Goatee/clim-area.lisp, input editing regions
line up with other text on the same line.

Implemented replace-input, presentation-replace-input, and

Implemented the input-sensitizer argument to with-input-editing.

Accept now replaces input editing text with input from button gestures
and makes the (now uneditable) input editing text sensitive as a

In Goatee:
Beefed up buffer-close-line* to be able to delete lines backwards as
well, simplifying delete-char in the process.

Revision 1.9 - (view) (annotate) - [select for diffs]
Thu May 2 15:55:13 2002 UTC (11 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.8: +34 -33 lines
Diff to previous 1.8
Many bug fixes in Goatee.  Rewrote buffer functions in terms of a
"buffer protocol" that will all subclasses to easily track changes to
a buffer.  Added Goatee conditions, which are handled by
execute-gesture-command and produce a satisfying beep.  Added Goatee
implementation of input editing streams.

Adapted standard-input-editing-stream to use Goatee for input
editing.  Made necessary changes to system file and package

We have input editing!  Check it out in the presentation-test demo
(run-test 'summation).  There is one known glitch: the edited text
isn't aligned properly with other text written to the stream.  I'll be
looking into that shortly.

Revision 1.8 - (view) (annotate) - [select for diffs]
Sat Apr 27 08:39:02 2002 UTC (11 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.7: +51 -41 lines
Diff to previous 1.7
Several changes on the road to real input editing.  Make
stream-read-char and friends on extended-input-stream understand :eof
in the Gray stream protocol.  Change handling of activation gestures
in input editing: an input gesture causes an editing stream to be
activated, after which IP goes to FP and further reads beyond that
result in :eof.  Make a couple of cleanups suggested by Robert.

Push return of default values from accept down into the accept
presentation methods.  Eat the activation gesture, if any, at the end
of input when at top level.

Implement abort gestures and accelerator gestures.  Define a
catch-abort-gestures macro that nicely handles abort gestures.

Revision 1.7 - (view) (annotate) - [select for diffs]
Tue Mar 12 21:05:06 2002 UTC (12 years, 1 month ago) by moore
Branch: MAIN
Changes since 1.6: +4 -1 lines
Diff to previous 1.6
Checkin to get context sensitive input working with multi-threaded

Set input focus in run-frame-top-level.  Assume that someday, in the
presence of multiple frames, we'll do the right thing with switching
the input focus from frame to frame.

Added a frame-intercept-event-queue to frames.  process-next-event
examines the frame associated with the pane that has input focus and
puts device events on that frame's queue if desired.

Rewrote stream-input-wait, stream-read-gesture and the
with-input-context input-test and input-handler functions per
mikemac's suggestions.  The with-input-context stuff uses the
intercept queue mechanism now.

Fixed a typo in gadgets.lisp.

Revision 1.6 - (view) (annotate) - [select for diffs]
Tue Feb 26 22:34:14 2002 UTC (12 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.5: +1 -1 lines
Diff to previous 1.5
added support for :return as an activation gesture, renamed newline to :newline

Revision 1.5 - (view) (annotate) - [select for diffs]
Fri Feb 8 18:32:26 2002 UTC (12 years, 2 months ago) by moore
Branch: MAIN
Changes since 1.4: +20 -0 lines
Diff to previous 1.4
Committed initial code for Goatee emacs-alike editor.  This is all completely
broken at the moment.  Added conditions for errors encountered during accept
(spuriously referred to as errors in present in the spec).  Added some new
accept presentation methods.  Changed parse-display-variable to default to
not transform an empty host to "localhost" so we get a Unix domain connection
instead of a TCP socket.

Revision 1.4 - (view) (annotate) - [select for diffs]
Mon Jan 14 07:58:07 2002 UTC (12 years, 3 months ago) by moore
Branch: MAIN
Changes since 1.3: +1 -1 lines
Diff to previous 1.3
Implement +flipping-ink+.  Make the cursor code use it so the cursor can be
moved over text in the future.

Revision 1.3 - (view) (annotate) - [select for diffs]
Thu Jan 10 06:13:02 2002 UTC (12 years, 3 months ago) by moore
Branch: MAIN
Changes since 1.2: +2 -4 lines
Diff to previous 1.2
Implement defaulting behavior of accept on empty input.

Revision 1.2 - (view) (annotate) - [select for diffs]
Tue Jan 1 20:14:12 2002 UTC (12 years, 3 months ago) by moore
Branch: MAIN
Changes since 1.1: +101 -18 lines
Diff to previous 1.1
Rudimentary implementation of accept, with one accept method (for reals) and
an example.  Split views out into another file so that +textual-view+ can be
referenced in the streams code.

Revision 1.1 - (view) (annotate) - [select for diffs]
Fri Dec 28 17:24:58 2001 UTC (12 years, 3 months ago) by moore
Branch: MAIN
Implement extended input streams, stub of input editing streams and enough of
encapsulating streams to support input editing.  A few random bug fixes too.

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5