/[mcclim]/mcclim/presentations.lisp
ViewVC logotype

Log of /mcclim/presentations.lisp

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 1.86 - (view) (annotate) - [select for diffs]
Wed Dec 16 13:15:38 2009 UTC (4 years, 4 months ago) by rstrandh
Branch: MAIN
CVS Tags: HEAD
Changes since 1.85: +1 -1 lines
Diff to previous 1.85
Fixed a typo.

Thanks to Stas Boukarev.

Revision 1.85 - (view) (annotate) - [select for diffs]
Fri Feb 1 17:02:55 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
CVS Tags: McCLIM-0-9-6
Changes since 1.84: +117 -1 lines
Diff to previous 1.84
Moved with-input-context and related machinery to to presentations.lisp.

Revision 1.84 - (view) (annotate) - [select for diffs]
Thu Jan 31 12:14:05 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.83: +33 -0 lines
Diff to previous 1.83
Moved with-output-as-presentation to presentations.lisp, so it can be available when input-editing.lisp is compiled.

Revision 1.83 - (view) (annotate) - [select for diffs]
Thu Jan 31 10:47:08 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.82: +7 -6 lines
Diff to previous 1.82
Fixed erroneous call to MENU-CHOOSE.

Mentioned MENU-CHOOSE change in NEWS.

Revision 1.82 - (view) (annotate) - [select for diffs]
Mon Nov 19 22:04:29 2007 UTC (6 years, 4 months ago) by thenriksen
Branch: MAIN
Changes since 1.81: +4 -3 lines
Diff to previous 1.81
I must have been asleep, my `funcall-presentation-generic-function'
fix broke the function completely. Unbroke it now.

Revision 1.81 - (view) (annotate) - [select for diffs]
Mon Nov 19 21:14:01 2007 UTC (6 years, 4 months ago) by thenriksen
Branch: MAIN
Changes since 1.80: +1 -3 lines
Diff to previous 1.80
Removed useless T clause in `fake-params-arg'. Two other clauses
already handle atoms and conses respectively, there are no other kinds
of objects.

Revision 1.80 - (view) (annotate) - [select for diffs]
Mon Nov 19 21:02:58 2007 UTC (6 years, 4 months ago) by thenriksen
Branch: MAIN
Changes since 1.79: +17 -8 lines
Diff to previous 1.79
Changed the `funcall-presentation-generic-function' macro to cause
fewer compiler warnings. It still yells about "unknown keyword
arguments" because, say, the accept generic function isn't strictly
specified to take, say, :default and :default-type arguments.

Revision 1.79 - (view) (annotate) - [select for diffs]
Wed Jan 10 11:19:01 2007 UTC (7 years, 3 months ago) by crhodes
Branch: MAIN
CVS Tags: McCLIM-0-9-4, McCLIM-0-9-5, mcclim-0-9-4
Changes since 1.78: +38 -18 lines
Diff to previous 1.78
Mostly fix AND and OR presentation types in STUPID-SUBTYPEP (used for
translator applicability) and PRESENTATION-SUBTYPEP.  Add some tests for
predefined presentation types.

Revision 1.78 - (view) (annotate) - [select for diffs]
Wed Dec 13 19:35:01 2006 UTC (7 years, 4 months ago) by thenriksen
Branch: MAIN
Changes since 1.77: +6 -0 lines
Diff to previous 1.77
Added method on `get-ptype-metaclass' that specifies that a CLOS class
is its own ptype metaclass (for handling of anynomous classes as per
the CLIM spec).

Revision 1.77 - (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.76: +1 -0 lines
Diff to previous 1.76
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.

Revision 1.76 - (view) (annotate) - [select for diffs]
Mon Mar 20 08:15:26 2006 UTC (8 years ago) by tmoore
Branch: MAIN
CVS Tags: McCLIM-0-9-2
Changes since 1.75: +16 -6 lines
Diff to previous 1.75
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.

Revision 1.75 - (view) (annotate) - [select for diffs]
Wed Mar 15 22:56:54 2006 UTC (8 years, 1 month ago) by tmoore
Branch: MAIN
Changes since 1.74: +19 -1 lines
Diff to previous 1.74
Patches from dtc for Scieneer Common Lisp, and a few other fixes too.

Revision 1.74 - (view) (annotate) - [select for diffs]
Wed Mar 15 15:38:39 2006 UTC (8 years, 1 month ago) by tmoore
Branch: MAIN
Changes since 1.73: +16 -10 lines
Diff to previous 1.73
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 :)

Revision 1.73 - (view) (annotate) - [select for diffs]
Sun Mar 12 23:09:27 2006 UTC (8 years, 1 month ago) by tmoore
Branch: MAIN
Changes since 1.72: +14 -11 lines
Diff to previous 1.72
drag-and-drop, not quite working yet

Revision 1.72 - (view) (annotate) - [select for diffs]
Fri Mar 10 21:58:13 2006 UTC (8 years, 1 month ago) by tmoore
Branch: MAIN
Changes since 1.71: +0 -3 lines
Diff to previous 1.71
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
behind.

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.71 - (view) (annotate) - [select for diffs]
Thu Sep 1 02:59:11 2005 UTC (8 years, 7 months ago) by mretzlaff
Branch: MAIN
Changes since 1.70: +1 -0 lines
Diff to previous 1.70
Section 23.7.1 "Defining Presentation Translators" of the clim spec
says in the subsection on DEFINE-PRESENTATION-ACTION:

    Note that the tester for presentation actions is always assumed to be
    definitive.

This hasn't been the case until now for McCLIM.

In addition to this the lambda-list of DEFINE-DRAG-AND-DROP-TRANSLATOR
has been revised a bit. (Note that I couldn't find a sentence in the
spec that specifies the default value for the parameter MENU, but the
other three define-translator macros have all t as the default.
Nevertheless, most of the parameters are ignored right now.)

Revision 1.70 - (view) (annotate) - [select for diffs]
Fri Jan 14 12:43:23 2005 UTC (9 years, 3 months ago) by tmoore
Branch: MAIN
CVS Tags: McCLIM-0-9-1
Changes since 1.69: +13 -1 lines
Diff to previous 1.69
Change ROUND-COORDINATES back to the definition that rounds up at half pixel boundaries. When I made the previous change I didn't realize that X coordinates are at pixel centers.

Revision 1.69 - (view) (annotate) - [select for diffs]
Tue Jan 11 13:02:19 2005 UTC (9 years, 3 months ago) by tmoore
Branch: MAIN
Changes since 1.68: +9 -11 lines
Diff to previous 1.68
Implement :SINGLE-BOX properly.:SINGLE-BOX NIL is the default, but
McCLIM has ignored it. This changes (for the better) the behavior of
applications.

Implement PRESENTATION-REFINED-POSITION-TEST.

If the view argument to ACCEPT is a list, apply MAKE-INSTANCE to the
list to obtain the view.

Fix a bug in dialogs that prevented moving on to the next text field
after hitting return.

Define a new view type, TEXT-FIELD-VIEW, that is used in
dialogs. This view has a WIDTH parameter.

Revision 1.68 - (view) (annotate) - [select for diffs]
Sun Nov 7 19:33:31 2004 UTC (9 years, 5 months ago) by hefner1
Branch: MAIN
Changes since 1.67: +4 -3 lines
Diff to previous 1.67
In find-applicable-translators, call remove-duplicates on the resulting list
so that commands reached multiple times via inheritance only appear once
(fixing duplicate command menu items in the listener).

Remove comment in menu.lisp that only :command and :menu items are
supported, which has changed.

In the main CLX event handler for configure-notify events, use
xlib:translate-coordinates to compute the position of the top-level sheet
relative to the screen root window. This fixes a problem where resizing a
frame caused the sheet-delta-transformation to be incorrect, causing
menus from the menubar to appear in incorrect places.

Revision 1.67 - (view) (annotate) - [select for diffs]
Fri Oct 15 13:23:20 2004 UTC (9 years, 6 months ago) by moore
Branch: MAIN
Changes since 1.66: +8 -0 lines
Diff to previous 1.66
Implement PRESENTATION-TYPE-DIRECT-SUPERTYPES.

Three bug fixes from pdm@zamazal.org (Milan Zamazal):

pass :allow-other-keywords to invoke-pointer-tracking-loop

fix in (generate-panes :before) for disowning and then reowning a frame

fix colorslider demo

Revision 1.66 - (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.65: +16 -0 lines
Diff to previous 1.65
Implement the :INITIALLY-SELECT-QUERY-IDENTIFIER option of
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
set.

Added FIND-PRESENTATION-TYPE-CLASS and CLASS-PRESENTATION-TYPE-NAME
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.65 - (view) (annotate) - [select for diffs]
Sat Jul 24 15:07:50 2004 UTC (9 years, 8 months ago) by moore
Branch: MAIN
Changes since 1.64: +0 -10 lines
Diff to previous 1.64
Change invoke-with-new-output-record and invoke-with-output-to-output-record
to take a constructor argument, as per the Franz CLIM user
manual. This permits one to call make-instance with a constant class
argument, which can be a big win in some
implementations. Change with-new-output-record and friends to use
this new form. This change requires a recompile of user code.

Change stream-write-output to take a width argument. If the width of
the string is already available (and it usually is), this saves an
extra call to the expensive function stream-string-width.

Revision 1.64 - (view) (annotate) - [select for diffs]
Fri Jul 23 12:36:44 2004 UTC (9 years, 8 months ago) by moore
Branch: MAIN
Changes since 1.63: +21 -1 lines
Diff to previous 1.63
dragging-output and drag-output-record. I rewrote the tracking-pointer
implementation to follow a little protocol. Work is in progress on
presentation drag-and-drop translators.

The :incremental-redisplay option in a pane specification can be a
list of arguments that will be passed to the call to redisplay. This
change is described in the Franz user manual.

Added some checks of :check-overlapping in the incremental redisplay
code.

Changed funcall-presentation-generic-function to call the private
generic function directly, bypassing
%funcall-presentation-generic-function.

Added the :parent keyword to invoke-with-new-output-record.

Optimized the table layout code a bit. Avoid traversing the whole
table hierarchy: stop at the level of interest. Use arrays instead of
lists in adjust-table-cells.

Patch for SBCL package locks from Nikodemus Siivola
(tsiivola@cc.hut.fi).

Listener SBCL fixes from Christophe Rhodes (csr21@cam.ac.uk)

Revision 1.63 - (view) (annotate) - [select for diffs]
Tue May 18 10:47:46 2004 UTC (9 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.62: +34 -25 lines
Diff to previous 1.62
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.

Revision 1.62 - (view) (annotate) - [select for diffs]
Wed Mar 10 12:02:30 2004 UTC (10 years, 1 month ago) by moore
Branch: MAIN
Changes since 1.61: +17 -17 lines
Diff to previous 1.61
Don't let t get into the direct superclass list of presentation types. Fix some problems with the default documentation function.

Revision 1.61 - (view) (annotate) - [select for diffs]
Mon Feb 23 10:48:28 2004 UTC (10 years, 1 month ago) by moore
Branch: MAIN
Changes since 1.60: +1 -1 lines
Diff to previous 1.60

Prompt for arguments in menu commands.

Work in progress on the OpenGL backend.

Merged Dan Barlow's SBCL condition variable changes for event queues and
provide a reasonable implementation of condition variables for the
implementations. This means no more busy-waiting. I've tested the
OpenMCL version and will test the CMUCL implementation shortly; I
haven't tested ACL or no multiprocessing. I've looked at LispWorks
but don't know yet how to support condition variables there.

Revision 1.60 - (view) (annotate) - [select for diffs]
Tue Feb 10 20:25:08 2004 UTC (10 years, 2 months ago) by moore
Branch: MAIN
Changes since 1.59: +1 -1 lines
Diff to previous 1.59
In the new version of map-over-ptype-superclasses, don't call the
function on any built-in-class, only the metaclass for T. Some
naughty implementations have various superclasses of standard-object
that are typep built-in.

Revision 1.59 - (view) (annotate) - [select for diffs]
Mon Feb 9 22:30:55 2004 UTC (10 years, 2 months ago) by moore
Branch: MAIN
Changes since 1.58: +401 -418 lines
Diff to previous 1.58
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.

Revision 1.58 - (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.57: +5 -0 lines
Diff to previous 1.57
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.57 - (view) (annotate) - [select for diffs]
Mon Nov 24 22:13:03 2003 UTC (10 years, 4 months ago) by moore
Branch: MAIN
Changes since 1.56: +19 -13 lines
Diff to previous 1.56
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.)

Revision 1.56 - (view) (annotate) - [select for diffs]
Wed Nov 19 13:51:17 2003 UTC (10 years, 4 months ago) by moore
Branch: MAIN
Changes since 1.55: +13 -5 lines
Diff to previous 1.55
Plausable implementation of presentation-single-box

Some work-in-progress on window streams

"Fix" the Macintosh issue where the Delete key doesn't work

Make some changes suggested by Strandh to flexivector and refactor it
so flexivectors with general contents can be easily derived.

Add note about CMUCL and mp::*idle-process*

Add note about run-test

Revision 1.55 - (view) (annotate) - [select for diffs]
Thu Oct 9 20:32:37 2003 UTC (10 years, 6 months ago) by moore
Branch: MAIN
CVS Tags: McCLIM-0-9
Changes since 1.54: +10 -7 lines
Diff to previous 1.54
Remove compile-time dependency on CLOS class metaclasses.

Revision 1.54 - (view) (annotate) - [select for diffs]
Wed Oct 1 21:35:27 2003 UTC (10 years, 6 months ago) by moore
Branch: MAIN
Changes since 1.53: +5 -4 lines
Diff to previous 1.53

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.

Revision 1.53 - (view) (annotate) - [select for diffs]
Sat Jun 7 19:30:43 2003 UTC (10 years, 10 months ago) by hefner1
Branch: MAIN
Changes since 1.52: +1 -0 lines
Diff to previous 1.52
Back by popular demand, traditional McCLIM presentation highlighting.

Revision 1.52 - (view) (annotate) - [select for diffs]
Tue Jun 3 22:49:22 2003 UTC (10 years, 10 months ago) by hefner1
Branch: MAIN
Changes since 1.51: +1 -2 lines
Diff to previous 1.51
Removed debugging message accidentally left in.

Revision 1.51 - (view) (annotate) - [select for diffs]
Mon Jun 2 14:29:54 2003 UTC (10 years, 10 months ago) by hefner1
Branch: MAIN
Changes since 1.50: +23 -4 lines
Diff to previous 1.50
Fixed a bug involving the presentation translator cache and command table
inheritance that stopped redefining presentation translators for working
sometimes.

Introduced a *current-translator-cache-generation*, and added corresponding
slot to translation tables. Wrote reader method for translator caches that
makes sure the cache generation is up to date (no new translators have been
defined), and clears it if not.

Revision 1.50 - (view) (annotate) - [select for diffs]
Fri May 30 02:23:45 2003 UTC (10 years, 10 months ago) by hefner1
Branch: MAIN
Changes since 1.49: +7 -0 lines
Diff to previous 1.49
 * Presentation output records now ask their children to highlight
   themselves. This makes user-defined highlight methods work, and leads
   to slightly saner behavior for objects that span multiple lines.
 * Unhighlighting now works by triggering a repaint on the appropriate
   area of the sheet. This allows proper highlighting over things other
   than the background color, without using flipping ink.
 * HANDLE-REPAINT modified to restore the background color. Some work
   needs to be done here to prevent unneeded clearing of the background
   in response to expose events.

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

Revision 1.48 - (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.47: +18 -0 lines
Diff to previous 1.47
3 sets of additions/changes/fixes:
presentation-replace-input

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.47 - (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.46: +1 -5 lines
Diff to previous 1.46
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

    Hi,

    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.

    greetz,
    --
     Oliver Markovic

Revision 1.46 - (view) (annotate) - [select for diffs]
Fri Sep 6 02:47:16 2002 UTC (11 years, 7 months ago) by moore
Branch: MAIN
Changes since 1.45: +2 -2 lines
Diff to previous 1.45
John Wiseman's (aka lemonodor) contributions for McCLIM with OpenMCL on Mac OS
X.

Revision 1.45 - (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.44: +54 -38 lines
Diff to previous 1.44

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.44 - (view) (annotate) - [select for diffs]
Thu Aug 8 07:44:18 2002 UTC (11 years, 8 months ago) by moore
Branch: MAIN
Changes since 1.43: +6 -6 lines
Diff to previous 1.43
Handle key events for modifier keys in order to keep track of modifier
state.  Implement keyboard-event-character.  Store coordinates of
pointer in key events.  Don't set the sheet of key events to the sheet
with focus.

The wait test and input handler functions now respond to key events.
The frame pointer documentation functions react if the modifier state
has changed.

Make a little protocol out of the pointer documentation update
operation.

Fix typo: too many n's in find-innnermost-presentation-context.

Revision 1.43 - (view) (annotate) - [select for diffs]
Wed Aug 7 16:07:22 2002 UTC (11 years, 8 months ago) by adejneka
Branch: MAIN
Changes since 1.42: +10 -3 lines
Diff to previous 1.42
* CALL-PRESENTATION-MENU: Add documentation.

Revision 1.42 - (view) (annotate) - [select for diffs]
Wed Aug 7 04:30:30 2002 UTC (11 years, 8 months ago) by adejneka
Branch: MAIN
Changes since 1.41: +44 -43 lines
Diff to previous 1.41
* MAP-APPLICABLE-TRANSLATORS: Check FOR-MENU.

* CALL-PRESENTATION-MENU: Removed explicit check of FOR-MENU; added check
  for non-emptiness.

Revision 1.41 - (view) (annotate) - [select for diffs]
Tue Aug 6 07:38:34 2002 UTC (11 years, 8 months ago) by moore
Branch: MAIN
Changes since 1.40: +8 -6 lines
Diff to previous 1.40
Fixed handling of for-menu in call-presentation-menu.  This has the
desirable effect of excluding the menu command translator from the menu.

Nice work Alexey!

Revision 1.40 - (view) (annotate) - [select for diffs]
Tue Aug 6 02:25:41 2002 UTC (11 years, 8 months ago) by adejneka
Branch: MAIN
Changes since 1.39: +41 -0 lines
Diff to previous 1.39
* Added presentation menu.

Revision 1.39 - (view) (annotate) - [select for diffs]
Fri Aug 2 23:08:42 2002 UTC (11 years, 8 months ago) by moore
Branch: MAIN
Changes since 1.38: +1 -0 lines
Diff to previous 1.38
Further hacks to pointer documentation.  Indicate that different commands
are available with other modifier keys.

Tim

Revision 1.38 - (view) (annotate) - [select for diffs]
Fri Aug 2 08:05:16 2002 UTC (11 years, 8 months ago) by moore
Branch: MAIN
Changes since 1.37: +59 -10 lines
Diff to previous 1.37
First try at pointer documentation.

Revision 1.37 - (view) (annotate) - [select for diffs]
Fri Jul 19 07:04:59 2002 UTC (11 years, 9 months ago) by moore
Branch: MAIN
Changes since 1.36: +159 -81 lines
Diff to previous 1.36
Fix with-presentation-type-parameters and with-presentation-type-options to
work with CLOS classes that aren't defined as presentation types.  Implement
define-presentation-action.

Revision 1.36 - (view) (annotate) - [select for diffs]
Mon Jul 15 13:31:33 2002 UTC (11 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.35: +52 -39 lines
Diff to previous 1.35
* PARSE-METHOD: Be more careful in C{A,D}*Ring the body.

* MAP-APPLICABLE-TRANSLATORS: If nothing is found, try
  *NULL-PRESENTATION*.

Revision 1.35 - (view) (annotate) - [select for diffs]
Fri May 31 06:20:28 2002 UTC (11 years, 10 months ago) by moore
Branch: MAIN
Changes since 1.34: +15 -15 lines
Diff to previous 1.34
class-name and compute-applicable-methods are in the common-lisp
package and aren't in clim-mop anymore.

Use safe-cpl, which forces class inheritance to be finalized, instead
of clim-mop:class-precedence-list.  This fixes problems seen in ACL.

Revision 1.34 - (view) (annotate) - [select for diffs]
Thu May 30 06:44:17 2002 UTC (11 years, 10 months ago) by moore
Branch: MAIN
Changes since 1.33: +211 -1556 lines
Diff to previous 1.33
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.

Revision 1.33 - (view) (annotate) - [select for diffs]
Thu May 23 06:55:05 2002 UTC (11 years, 10 months ago) by moore
Branch: MAIN
Changes since 1.32: +460 -4 lines
Diff to previous 1.32
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.

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

Revision 1.31 - (view) (annotate) - [select for diffs]
Sun May 19 04:19:09 2002 UTC (11 years, 11 months ago) by mikemac
Branch: MAIN
Changes since 1.30: +3 -3 lines
Diff to previous 1.30
corrected misplaced parens

Revision 1.30 - (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.29: +15 -12 lines
Diff to previous 1.29
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
	strings.
	(stream-read-gesture): Skip over noise strings.
	* Goatee/editable-buffer.lisp (editable-buffer): subclass
	extent-buffer-mixin.
	(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
	extent.

	* 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
	map-over-records-overlapping-region.
	* 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
	commands.

Revision 1.29 - (view) (annotate) - [select for diffs]
Mon May 13 15:14:57 2002 UTC (11 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.28: +4 -1 lines
Diff to previous 1.28
Meant to check this in last night... sorry guys.

Add Goatee/editable-buffer.lisp to system file.

presentations.lisp (compile-time-clos-p): Need to query actual CLOS
classes too in addition to the compile time database of CLOS classes.

Revision 1.28 - (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.27: +52 -12 lines
Diff to previous 1.27
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.27 - (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.26: +15 -0 lines
Diff to previous 1.26
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.26 - (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.25: +94 -39 lines
Diff to previous 1.25
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
presentations.

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
	specified.
	(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.25 - (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.24: +57 -32 lines
Diff to previous 1.24
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
write-token.

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
presentation.

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

Revision 1.24 - (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.23: +54 -41 lines
Diff to previous 1.23
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.23 - (view) (annotate) - [select for diffs]
Fri Apr 26 17:54:37 2002 UTC (11 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.22: +2 -2 lines
Diff to previous 1.22
Fix various problems found by Robert.

Repair and/or eliminate a bunch of dynamic-extent declarations that I
screwed up.

Revision 1.22 - (view) (annotate) - [select for diffs]
Tue Apr 23 01:50:00 2002 UTC (11 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.21: +2 -0 lines
Diff to previous 1.21
Supply null handle-event for immediate-sheet-input-mixin.  This should
fix Brian's problems.

Add a couple of text-style trampolines for sheets.

Add an eval-when around with-presentation-types-decoded to satisfy
ACL.

Add a new macro, clim-defsystem, that does the right thing whether
using mk:defsystem or not.  Add a :clim-frontend target which is the
same as the old :clim target; :clim now forces :clim-clx to load.

Various fixes on the road to getting Goatee working.

Revision 1.21 - (view) (annotate) - [select for diffs]
Fri Apr 19 22:27:09 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.20: +25 -67 lines
Diff to previous 1.20
Make a global choice, based on multiprocessing or not, whether events
should be handled immediately or queued up to be serviced by another
process.  The choice is implemented by the classes
clim-sheet-input-mixin and clim-repainting-mixin, from which all panes
inherit.  These classes' superclasses are conditionalized on whether or
not the implementation is capable of multiprocessing.

When multiprocessing there is a single event queue per frame.  This is
implemented by queue-event on pane classes.

The event loop is implemented in stream-input-wait.  In single
processing mode, stream-input-wait calls process-next-event and
handles events immediately.  When multiprocessing, stream-input-wait
reads events from the frame event queue and handles them.  The
function clim-extensions:simple-event-loop is supplied for
applications which do not loop reading from a stream; various examples
have been changed to use it.

In stream-read-gesture/stream-input-wait the input-wait-test function
is not expected to block anymore; nor is the input-wait-handler
expected to dispatch events.  input-wait-handler is responsible for
consuming events that should not be seen by anyone
else. input-context-wait-test and highlight-applicable-presentation
have been rewritten to reflect this.

The adjustable-array buffer for extended-input-streams has been added
back in.  A typo in %event-matches-gesture has been fixed.

Default methods for map-over-output-records-containing-position and
map-over-output-records-overlapping-region have been added.

The cursor implementation has been broken out into a cursor-mixin so I
can snarf it for Goatee :)

Revision 1.20 - (view) (annotate) - [select for diffs]
Wed Apr 3 02:36:59 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.19: +2 -1 lines
Diff to previous 1.19
Fix to updating-output macro to make it work with CMUCL.
New maxf and minf modify macros.
Overhaul of recording.lisp:
fix typo of map-over-overlaping-region -> map-over-overlapping-region
Suppress recompute-extent-for-changed-child when setffing
output-record-position
Strictly separate class structure into protocol classes and implementation
classes

Revision 1.19 - (view) (annotate) - [select for diffs]
Mon Mar 18 19:57:50 2002 UTC (12 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.18: +1 -1 lines
Diff to previous 1.18
fixed a couple of typos

Revision 1.18 - (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.17: +59 -4 lines
Diff to previous 1.17
Checkin to get context sensitive input working with multi-threaded
process-next-event.

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.17 - (view) (annotate) - [select for diffs]
Wed Feb 27 21:10:41 2002 UTC (12 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.16: +1 -1 lines
Diff to previous 1.16
don't error out if we can't find the class

Revision 1.16 - (view) (annotate) - [select for diffs]
Tue Feb 26 22:05:57 2002 UTC (12 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.15: +8 -1 lines
Diff to previous 1.15
Tim's suggested fixes for presentation-ptype-supers and (define-presentaion-generic-function %present ...)

Revision 1.15 - (view) (annotate) - [select for diffs]
Tue Feb 26 18:34:34 2002 UTC (12 years, 1 month ago) by moore
Branch: MAIN
Changes since 1.14: +22 -16 lines
Diff to previous 1.14
Fixed "class not finalized" bug in %funcall-presentation-generic-function by
using prototype-or-error.  Added accept presentation method for expression.

Revision 1.14 - (view) (annotate) - [select for diffs]
Tue Feb 12 01:36:21 2002 UTC (12 years, 2 months ago) by moore
Branch: MAIN
Changes since 1.13: +377 -360 lines
Diff to previous 1.13
Fixed presentations.lisp so it will compile without first loading it.

Revision 1.13 - (view) (annotate) - [select for diffs]
Fri Feb 8 18:32:27 2002 UTC (12 years, 2 months ago) by moore
Branch: MAIN
Changes since 1.12: +41 -10 lines
Diff to previous 1.12
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.12 - (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.11: +1 -1 lines
Diff to previous 1.11
Implement +flipping-ink+.  Make the cursor code use it so the cursor can be
moved over text in the future.

Revision 1.11 - (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.10: +11 -0 lines
Diff to previous 1.10
Implement defaulting behavior of accept on empty input.

Revision 1.10 - (view) (annotate) - [select for diffs]
Sat Jan 5 05:38:48 2002 UTC (12 years, 3 months ago) by moore
Branch: MAIN
Changes since 1.9: +100 -4 lines
Diff to previous 1.9
Context-sensitive presentations (sans translators) and highlighting.
Fix pointer-event-[xy] to use the sheet native transformation correctly.
Check out the presentation-test demo; not much, but I think it's cool :)

Revision 1.9 - (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.8: +200 -54 lines
Diff to previous 1.8
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.8 - (view) (annotate) - [select for diffs]
Tue Dec 4 16:18:37 2001 UTC (12 years, 4 months ago) by mikemac
Branch: MAIN
Changes since 1.7: +29 -17 lines
Diff to previous 1.7
PARSE-METHOD-BODY needs to handle declarations

Revision 1.7 - (view) (annotate) - [select for diffs]
Thu Nov 29 07:31:58 2001 UTC (12 years, 4 months ago) by moore
Branch: MAIN
Changes since 1.6: +2 -2 lines
Diff to previous 1.6
Fix typos.

Revision 1.6 - (view) (annotate) - [select for diffs]
Thu Nov 29 07:28:11 2001 UTC (12 years, 4 months ago) by moore
Branch: MAIN
Changes since 1.5: +518 -13 lines
Diff to previous 1.5
Views, with-output-as-presentation, present, present methods, ACL fix for
prototype-or-error.

Revision 1.5 - (view) (annotate) - [select for diffs]
Sun Nov 25 02:41:36 2001 UTC (12 years, 4 months ago) by moore
Branch: MAIN
Changes since 1.4: +93 -14 lines
Diff to previous 1.4
describe-presentation-type and descriptions.

Revision 1.4 - (view) (annotate) - [select for diffs]
Sat Nov 24 08:10:04 2001 UTC (12 years, 4 months ago) by moore
Branch: MAIN
Changes since 1.3: +367 -48 lines
Diff to previous 1.3
Implemented map-over-presentation-type-supertypes, presentation-subtypep

Revision 1.3 - (view) (annotate) - [select for diffs]
Thu Nov 22 02:10:03 2001 UTC (12 years, 4 months ago) by moore
Branch: MAIN
Changes since 1.2: +1031 -6 lines
Diff to previous 1.2
A first try at implementing presentation type definition, generic
functions, and methods.  Works under CMUCL; MOP support added for ACL but
not tested.

Revision 1.2 - (view) (annotate) - [select for diffs]
Wed Jul 18 06:03:58 2001 UTC (12 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.1: +5 -2 lines
Diff to previous 1.1
* DEFINE-PRESENTATION-TYPE: use full arglist

Revision 1.1.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Thu Jun 8 22:01:12 2000 UTC (13 years, 10 months ago) by mikemac
Branch: initial
CVS Tags: start
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 , to next main 1.86
Initial check-in

Revision 1.1 - (view) (annotate) - [select for diffs]
Thu Jun 8 22:01:12 2000 UTC (13 years, 10 months ago) by mikemac
Branch: MAIN
Branch point for: initial
Initial revision

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