Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Fixed the OpenMCL-conditional-thing in expression reading to not cause compiler warnings. I cannot test my fix on OpenMCL, but it works elsewhere.
Remove strange sbcl-only reader-package-error handling.
Mostly fix AND and OR presentation types in STUPID-SUBTYPEP (used for translator applicability) and PRESENTATION-SUBTYPEP. Add some tests for predefined presentation types.
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 gadgets.
Add more user-friendly `accept' presentation method for expressions on interactive streams.
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 labels.
Made the command-table-inherit-from slot of command tables setf-able, as per the Franz manual. Changed the default documentation of presentation translators from the presentation object to the name of the translator. If this is too controversial I will back it out. Force the tester of drag-and-drop translators to be definitive; otherwise serious weirdness ensues. Added the functional geometry explorer of Frank Buss and Rainer Joswig, who graciously agreed to it being included, as an application.
Fixed destination highlighting for drag-and-drop translators. Added documentation for dnd translators. Corrected the default value for modifier-state in find-innermost-applicable-presentation and friends. This isn't as big as it looks :)
Fixed the Help command to not display duplicates i.e., commands accessible via more than one inherited command table. Fixed a bug in command-line-name-for-command; it wasn't looking in inherited command tables. Changed the presentation method for command-name to output the symbol if the command isn't accessable instead of pretending that nothing's wrong and creating a command line name.
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 command. Some fixes to default processing.
Remove Describe Presentation from the default right-click menu. This means that interfaces will look much quiter.
Implement command-enabled and (setf command-enabled). This includes a test in command presentation translators that checks if the command is currently enabled. Menu items are disabled if the command is disabled, though buttons on menu bars aren't handled yet. Created a command com-describe-presentation that can be enabled/disabled seperately from com-describe.
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.
2004-03-24 Timothy Moore <email@example.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 inside-out. * 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.
In response to a bug showing up in SBCL I simplified the presentation type lattice and dispatch machinery. The supertype of all presentation types is now the built-in class T, not a presentation type class. Form and expression are no longer superclasses of all Lisp objects (I've defined presentation translators instead for that.) Around methods on compute-applicable-methods and friends remove methods specialized on standard-object for non CLOS types.
Implement :multiple-window option to tracking-pointer. Added a new backend protocol to support this, through functions PORT-GRAB-POINTER and PORT-UNGRAB-POINTER. Using this, ensure that MENU-CHOOSE grabs the pointer and clicking anywhere outside the menu will dismiss it (which previously only worked somewhat, due to the lack of pointer grabbing). Note the slight limitation that the CLX backend does not always accurately report the window which the pointer is over during a grab. Imported some symbols into CLIM-CLX package. Changed the Help command to present available commands using the item formatter.
Implemented command-or-form presentation type. Fixed stupid-subtypep so OR presentation types can be used in with-input-context. Changed the subform reader stuff to use a presentation type option instead of the presentation type subform. Got rid of subform altogether. Changed the Lisp presentation types to be a subtype of expression, not form; added a presentation translator from expression to form that does necessary quoting. Fixed passing of arguments to the frame-top-level function. Moved the menu-item stuff in read-frame-command into an :around method so that read-frame-command can be usefully overridden by users. Cleaned up the listener demo: got rid of the top level loop parts that are now redundant. Added a frame slot and an argument to run-listener/run-listener-process to control whether or not to use CLIM command-or-form processing (the default is the existing method.)
Support (in OpenMCL) for accepting the subforms of a form, as opposed to blowing away the entire form in progress. Put the transform for coord-seqs in the recording methods, not the def-grecording macro. Fake MOP functions for OpenMCL in order to support the listener application.
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.
make all of the package names passed to in-package be lowercase keywords for ACL's java mode
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.
* DEFAULT-TRANSLATOR tries to generate documentation from :DESCRIPTION type option of the presentation.
* PRESENTATION-MENU: Added tester for non-emptiness.
* Added presentation menu.
Make the pointer documentation window more pretty. Add a describe-presentation command in order to have some command bound to the super modifier. Move coordinates into the device-event class. Supply coordinates for key events. Add make-load-form methods for named-color and standard-text-style. This, plus some strategic eval-when (:compile-toplevel ...), allows us to remove the defparameter/defconstant hack for CMUCL (and SBCL too, though I haven't tested that and didn't do the work). Mention possible problem with CLOCC and pcl::*defclass-times* et al. in instructions.
Further hacks to pointer documentation. Indicate that different commands are available with other modifier keys. Tim
Fixes to the presentation type system, including some MOP hacking, to bring the presentation type lattice in line with the Spec. In particular, form and expression are supertypes of all Lisp types, including implicit CLOS types. Presentation method dispatch, presentation-subtypep, map-over-presentation-type-supertypes, etc. all implement this lattice. I think we're doing a better job than real CLIM in this respect. Broke out presentation type and method definitions into presentation-defs.lisp so that less stuff needs to be wrapped in eval-when.
Presentation translators, including define-presentation-to-command-translator and command translators generated by the :gesture option in define-command arguments. With this checkin the address book demo mostly works as intended, except for creating new address book entries. Added builtin-commands.lisp to hold global commands and presentation translators. Added a nifty help command with context sensitive command names.
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.
|Powered by ViewVC 1.1.5|