ViewVC logotype

Log of /mcclim/stream-output.lisp

Parent Directory Parent Directory | Revision Log Revision Log

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

Revision 1.65 - (view) (annotate) - [select for diffs]
Sat Aug 1 05:22:51 2009 UTC (4 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.64: +2 -2 lines
Diff to previous 1.64
Removed some tabs at the request of Cyrus Harmon.

There are lots of tabs in McCLIM source code, so I don't think it is
practical to remove them all right away.  Perhaps take the advantage
when there are other modifications as well.

Revision 1.64 - (view) (annotate) - [select for diffs]
Fri Jul 31 11:32:21 2009 UTC (4 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.63: +5 -0 lines
Diff to previous 1.63
Patch from Nikodemus Siivola adding an :after method on
stream-finish-output for standard-extended-output-stream.

Revision 1.63 - (view) (annotate) - [select for diffs]
Thu Oct 23 20:49:58 2008 UTC (5 years, 5 months ago) by thenriksen
Branch: MAIN
Changes since 1.62: +3 -1 lines
Diff to previous 1.62
SEOS-WRITE-STRING fix wrt. zero-length strings from Mike Watters.

Revision 1.62 - (view) (annotate) - [select for diffs]
Tue Apr 15 19:28:04 2008 UTC (6 years ago) by thenriksen
Branch: MAIN
CVS Tags: McCLIM-0-9-6
Changes since 1.61: +4 -1 lines
Diff to previous 1.61
Fixed output bug where :end-of-line-action is :wrap and there isn't room for even a single character.

Acts as :allow in this case, would infinitely recurse previously.

Revision 1.61 - (view) (annotate) - [select for diffs]
Sun Dec 10 23:35:12 2006 UTC (7 years, 4 months ago) by thenriksen
Branch: MAIN
CVS Tags: McCLIM-0-9-4, McCLIM-0-9-5, mcclim-0-9-4
Changes since 1.60: +1 -1 lines
Diff to previous 1.60
Made `stream-set-cursor-position' a generic function and exported it,
as seen in CLIM 2.2.

Revision 1.60 - (view) (annotate) - [select for diffs]
Fri May 5 10:24:02 2006 UTC (7 years, 11 months ago) by crhodes
Branch: MAIN
CVS Tags: McCLIM-0-9-3
Changes since 1.59: +1 -45 lines
Diff to previous 1.59
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.59 - (view) (annotate) - [select for diffs]
Wed Mar 29 10:43:37 2006 UTC (8 years ago) by tmoore
Branch: MAIN
Changes since 1.58: +3 -3 lines
Diff to previous 1.58

Take out dependencies on case in symbol names. This makes McCLIM sort
of work in ACL's so-called modern mode; there have been some CLX fixes
recently that may get it all the way there.

Clean up events.lisp.

Add a callback-event, which will be used in ports that get high-level
gadget notifications in the event process and need to deliver them to

Changed the implementation of scroll bars. When the drag callback is
called, just move the sheet; assume that the gadget itself has updated
the value and the graphic representation. add a scroll-bar-values
interface that gets and sets all scroll bar values and only updates
the bar once. This will break the Beagle back end momentarily.

Revision 1.58 - (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.57: +0 -8 lines
Diff to previous 1.57
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.57 - (view) (annotate) - [select for diffs]
Wed Oct 12 14:22:27 2005 UTC (8 years, 6 months ago) by rschlatte
Branch: MAIN
Changes since 1.56: +9 -3 lines
Diff to previous 1.56
Draw hollow or filled cursor in text-field gadget, depending on
whether the gadget is armed or not.

Revision 1.56 - (view) (annotate) - [select for diffs]
Sat Aug 13 14:28:20 2005 UTC (8 years, 8 months ago) by crhodes
Branch: MAIN
Changes since 1.55: +1 -3 lines
Diff to previous 1.55
Commit working version of text-bounding-rectangle* stuff, as trailed on
mcclim-devel 2005-08-12.  Basically, this is needed because the drawn
area for left-to-right text need not lie between (x,y-ascent) and
(x+width,y+descent).  (No doubt other text drawing directions suffer
from the same problem, but they're not yet implemented in McCLIM).

New per-medium function TEXT-BOUNDING-RECTANGLE* which actually returns
the bounding-rectangle* of what is drawn (cf. TEXT-WIDTH, which doesn't
do anything of the sort).  Use it in DEF-GRECORDING DRAW-TEXT, and in
add-{string,character}-to-output-record, to properly adjust the output
record coordinates.  While we're at it, fix the bounding box for
:y-align :center DRAW-TEXT.

Implement this per-medium function for the CLX backend, for the
experimental freetype text handling, and for postscript (tested using
Climacs, Tabcode and clim-demo::postscript-text).  This patch was mostly
motivated by the observation that incremental redisplay in climacs
windows using the freetype backend caused graphical artifacts to appear
over time, thanks to glyphs drawing outside the output record bounding

 * CLX backend with #+unicode (clisp?)
 * Beagle backend
 * OpenGL backend
(please fix!)

Revision 1.55 - (view) (annotate) - [select for diffs]
Thu Apr 21 02:43:19 2005 UTC (8 years, 11 months ago) by ahefner
Branch: MAIN
Changes since 1.54: +5 -4 lines
Diff to previous 1.54
Fix assumption in BEEP function that standard output must be a CLIM stream.

Revision 1.54 - (view) (annotate) - [select for diffs]
Sun Apr 17 16:42:47 2005 UTC (9 years ago) by ahefner
Branch: MAIN
Changes since 1.53: +3 -3 lines
Diff to previous 1.53
Squashed a "magic fudge factor".

Revision 1.53 - (view) (annotate) - [select for diffs]
Wed Feb 2 11:33:59 2005 UTC (9 years, 2 months ago) by tmoore
Branch: MAIN
CVS Tags: McCLIM-0-9-1
Changes since 1.52: +2 -0 lines
Diff to previous 1.52
Hammered on with-room-for-graphics. It should now leave the cursor in
the right place and do the right thing with respect to recording

Changed with-drawing-options to not rebind its medium argument at all.

Added :label and :scroll-bars arguments to with-menu which are
currently ignored.

Revision 1.52 - (view) (annotate) - [select for diffs]
Sun Oct 31 01:46:31 2004 UTC (9 years, 5 months ago) by hefner1
Branch: MAIN
Changes since 1.51: +3 -0 lines
Diff to previous 1.51
In tracking-pointer, don't discard the event when calling the handler.

Fix bug induced by clicking presentations outside of menu-choose menus.

Make mouse-wheel scrolling work when mixed into arbitrary panes.
Defined new GF SCROLL-QUANTUM to control unit of scrolling (defaults
to text-height on stream panes, 10 pixels elsewhere).

Rework CLX frame-manager pane lookup - choose by presense of defined
classes rather than mere existance of a symbol. Added a function
DEFINE-ABSTRACT-PANE-MAPPING to specify alternate mappings to concrete
panes (such as GENERIC-OPTION-PANE, GENERIC-LIST-PANE, which were not
handled correctly before). Hopefully this is a step toward a future
mechanism that addresses the needs of multiple frame-managers and themes.

Implement (reimplement?) GENERIC-LIST-PANE based loosely on the existing
code. Supports single or multiple-item selection modes, toggling items via
control key (with an optional :prefer-single-item initarg which causes
a :nonexclusive list to prefer selecting single items without disallowing
multiple selections). Selection of item ranges via the shift modifier.
Scroll wheel support. Supports :one-of and :some-of aliases for :exclusive
and :non-exclusive (Lispworks compatibility).

Revision 1.51 - (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.50: +27 -13 lines
Diff to previous 1.50
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.50 - (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.49: +1 -1 lines
Diff to previous 1.49
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.49 - (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.48: +14 -4 lines
Diff to previous 1.48
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.48 - (view) (annotate) - [select for diffs]
Fri Apr 23 19:29:49 2004 UTC (9 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.47: +14 -28 lines
Diff to previous 1.47
Changes to turn off, and then turn on again, presentation highlighting
when redrawing a pane, with the aim of fixing various screwups that
happen with tricky presentation highlighting that uses
+flipping-ink+. As part of this I removed redisplay-changed-panes and
rewrote the CLIM standard functions redisplay-frame-panes,
redisplay-frame-pane, and pane-redisplay-needed. I did various
refactoring among methods on panes, frames, and
updating-output-mixin too.

Moved a bunch of :initform forms to :default-initargs.

Random (declare (ignore ...)) to shut up compiler warnings.

Revision 1.47 - (view) (annotate) - [select for diffs]
Sun Dec 7 03:58:23 2003 UTC (10 years, 4 months ago) by mikemac
Branch: MAIN
Changes since 1.46: +7 -2 lines
Diff to previous 1.46
kludge to work around long standing ACL output corruption

Revision 1.46 - (view) (annotate) - [select for diffs]
Mon Nov 3 08:12:34 2003 UTC (10 years, 5 months ago) by strandh
Branch: MAIN
CVS Tags: McCLIM-0-9
Changes since 1.45: +1 -0 lines
Diff to previous 1.45
Added a few "ignore" declarations to avoid compiler notes.

Revision 1.45 - (view) (annotate) - [select for diffs]
Fri Sep 12 20:25:14 2003 UTC (10 years, 7 months ago) by hefner1
Branch: MAIN
Changes since 1.44: +3 -3 lines
Diff to previous 1.44

* When moving the cursor as part of normal stream output, modify the cursor
  X/Y slots directly, rather than using the SETF method. This prevents the
  open output record from being needlessly broken.


* TEXT-DISPLAYED-OUTPUT-RECORD-STRING seems to have rotted, fixed it up.

* Fixed bug in RECOMPUTE-EXTENT-FOR-CHANGED-CHILD, bounding rectangles are
  now correctly recomputed when a child is deleted.

Revision 1.44 - (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.43: +13 -19 lines
Diff to previous 1.43
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.43 - (view) (annotate) - [select for diffs]
Sun Jun 22 21:20:41 2003 UTC (10 years, 9 months ago) by hefner1
Branch: MAIN
Changes since 1.42: +46 -18 lines
Diff to previous 1.42
Minor rewriting of the cursor attribute functions to conform more closely to
the spec.

CURSOR-ACTIVE and CURSOR-STATE were not previously implemented.
CURSOR-VISIBILITY did not properly distinguish between the :on and :off

The "visibility" slot of cursor-mixin has been eliminated, and replaced
with two slots, cursor-active and cursor-state. (setf cursor-visibility) has been
rewritten to modify these as appropriate, and CURSOR-VISIBILITY looks at
these to decide its return value.

The handling of cursor-active is likely not quite right, as I mostly ignore it.
The spec is not clear on what the "activeness" of a cursor means, but I assume
that deactivating a cursor should cause it to be erased from the display, which
I'm not doing presently. Presumably, this should not affect the cursor-state.
Presently no one uses CURSOR-ACTIVE.

Revision 1.42 - (view) (annotate) - [select for diffs]
Sun Jun 22 00:07:20 2003 UTC (10 years, 9 months ago) by hefner1
Branch: MAIN
Changes since 1.41: +6 -7 lines
Diff to previous 1.41
Rearranging of seos-current-width/height slots: they are now set in an
around method on CHANGE-SPACE-REQUIREMENTS, specialized on clim-stream-pane.
Text output code no longer sets these slots directly.

Added a function MAYBE-SCROLL to Goatee/clim-area.lisp which calls
CHANGE-SPACE-REQUIREMENTS and scrolls the pane if the cursor is not visible.
LINE-UPDATE-CURSOR now calls this.

Still need to make sure that the stream-cursor is repositioned beyond where
the SIMPLE-SCREEN-AREA lived, in case it spanned multiple lines...

Revision 1.41 - (view) (annotate) - [select for diffs]
Thu Jun 5 04:41:51 2003 UTC (10 years, 10 months ago) by hefner1
Branch: MAIN
Changes since 1.40: +6 -1 lines
Diff to previous 1.40
Fix to (setf CURSOR-POSITION) - if the cursor's sheet is a recording stream,
call STREAM-CLOSE-TEXT-OUTPUT-RECORD. The cursor movement functions defined
on sheets already do this, but grabbing the cursor directly and acting on it,
which a few things (named STREAM-INCREMENT-CURSOR-POSITION) do, caused things
to misbehave.

Removed an obsolete comment from recording.lisp.

Revision 1.40 - (view) (annotate) - [select for diffs]
Sat May 31 04:22:48 2003 UTC (10 years, 10 months ago) by moore
Branch: MAIN
Changes since 1.39: +6 -0 lines
Diff to previous 1.39
stream-force-output should call medium-force-output

Revision 1.39 - (view) (annotate) - [select for diffs]
Sun May 25 10:37:49 2003 UTC (10 years, 10 months ago) by gilbert
Branch: MAIN
Changes since 1.38: +12 -7 lines
Diff to previous 1.38
WITH-ROOM-FOR-GRAPHICS now has an implementation.

Revision 1.38 - (view) (annotate) - [select for diffs]
Mon Apr 21 15:05:22 2003 UTC (10 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.37: +1 -1 lines
Diff to previous 1.37
More work on updating-output.  It's working well enough to be on by default.

Make the menu code throw a command presentation object/type instead of
directly invoking the command function.

Revision 1.37 - (view) (annotate) - [select for diffs]
Wed Apr 16 06:01:19 2003 UTC (11 years ago) by hefner1
Branch: MAIN
Changes since 1.36: +116 -87 lines
Diff to previous 1.36
Reworked stream functions to make string output the basic mode of operation.
The old stream-write-char has been extended to handle linewrapping of strings
and renamed seos-write-string. Line breaking logic has been extracted into
seos-write-newline. stream-write-* functions are rewritten to use these.
stream-write-output is extended. Minor fix to recording.lisp.

Revision 1.36 - (view) (annotate) - [select for diffs]
Sun Apr 13 07:15:57 2003 UTC (11 years ago) by moore
Branch: MAIN
Changes since 1.35: +8 -16 lines
Diff to previous 1.35
Back out Andy's fix; accomplish the same thing by calling (setf
cursor-position) instead of (setf stream-cursor-position).

Replace stream-write-line with stream-write-output and remove some
gratuitous calls to make-string when outputing single characters.  For
the moment I've probably just forced them down to the medium level.
Oh well.

Start of exploration of accepting-output.

Revision 1.35 - (view) (annotate) - [select for diffs]
Sat Apr 12 06:26:02 2003 UTC (11 years ago) by hefner1
Branch: MAIN
Changes since 1.34: +7 -1 lines
Diff to previous 1.34
Added a special *INHIBIT-RECORD-CLOSING* which is used by STREAM-WRITE-CHAR
to hint that a change in cursor position is part of normal text output and
therefore the current output record should not be closed. This fixes the
problem where every character ended up in a seperate output record, and
speeds up text redisplay noticably.

Revision 1.34 - (view) (annotate) - [select for diffs]
Thu Apr 10 02:23:45 2003 UTC (11 years ago) by hefner1
Branch: MAIN
Changes since 1.33: +9 -6 lines
Diff to previous 1.33
Implemented indenting-output. Also, encapsulating stream hackery,
end-of-page-action fix, and stream-increment-cursor-position compliance fix.

Revision 1.33 - (view) (annotate) - [select for diffs]
Wed Apr 2 07:48:59 2003 UTC (11 years ago) by moore
Branch: MAIN
Changes since 1.32: +8 -1 lines
Diff to previous 1.32
Incremental redisplay lurches forward. It kind of works, though
deleted records leave holes.  I've left *enable-updating-output* false
because performance is pretty awful.  There's a couple of reasons for
this: our standard-tree-output-record isn't a tree, so scanning the
output record history for matching records is O(n^2).  Also, every
character is its own output record (gotta fix this!), so there are a
lot of records to consider.

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

Revision 1.31 - (view) (annotate) - [select for diffs]
Thu Nov 28 21:19:50 2002 UTC (11 years, 4 months ago) by mikemac
Branch: MAIN
Changes since 1.30: +3 -0 lines
Diff to previous 1.30
spec say "A compatibility function will be provided."

Revision 1.30 - (view) (annotate) - [select for diffs]
Mon Nov 11 01:02:22 2002 UTC (11 years, 5 months ago) by moore
Branch: MAIN
Changes since 1.29: +1 -6 lines
Diff to previous 1.29
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.29 - (view) (annotate) - [select for diffs]
Sun Nov 10 15:48:57 2002 UTC (11 years, 5 months ago) by gilbert
Branch: MAIN
Changes since 1.28: +1 -2 lines
Diff to previous 1.28
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.28 - (view) (annotate) - [select for diffs]
Thu Jun 27 16:50:39 2002 UTC (11 years, 9 months ago) by gilbert
Branch: MAIN
Changes since 1.27: +39 -15 lines
Diff to previous 1.27
Scrolling Work Part II, the extended output stream ...

Revision 1.27 - (view) (annotate) - [select for diffs]
Wed Jun 19 04:41:20 2002 UTC (11 years, 10 months ago) by adejneka
Branch: MAIN
Changes since 1.26: +82 -66 lines
Diff to previous 1.26
* LETFifyed

* made CURSOR and EXTENDED-OUTPUT-STREAM be protocol classes.


Revision 1.26 - (view) (annotate) - [select for diffs]
Fri May 31 02:35:16 2002 UTC (11 years, 10 months ago) by adejneka
Branch: MAIN
Changes since 1.25: +8 -16 lines
Diff to previous 1.25

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

Revision 1.24 - (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.23: +1 -1 lines
Diff to previous 1.23
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.23 - (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.22: +2 -2 lines
Diff to previous 1.22
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.22 - (view) (annotate) - [select for diffs]
Fri Apr 19 22:27:09 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.21: +29 -14 lines
Diff to previous 1.21
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.21 - (view) (annotate) - [select for diffs]
Mon Feb 11 21:49:50 2002 UTC (12 years, 2 months ago) by gilbert
Branch: MAIN
Changes since 1.20: +1 -0 lines
Diff to previous 1.20
Answered a question.

Revision 1.20 - (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.19: +33 -6 lines
Diff to previous 1.19
Implement +flipping-ink+.  Make the cursor code use it so the cursor can be
moved over text in the future.

Revision 1.19 - (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.18: +3 -3 lines
Diff to previous 1.18
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.18 - (view) (annotate) - [select for diffs]
Tue Dec 4 16:19:19 2001 UTC (12 years, 4 months ago) by mikemac
Branch: MAIN
Changes since 1.17: +1 -0 lines
Diff to previous 1.17
remove compiler warnings for ACL

Revision 1.17 - (view) (annotate) - [select for diffs]
Wed Nov 14 22:25:51 2001 UTC (12 years, 5 months ago) by mikemac
Branch: MAIN
Changes since 1.16: +1 -1 lines
Diff to previous 1.16
updated copyright dates for me

Revision 1.16 - (view) (annotate) - [select for diffs]
Tue Nov 13 18:38:55 2001 UTC (12 years, 5 months ago) by mikemac
Branch: MAIN
Changes since 1.15: +27 -21 lines
Diff to previous 1.15
character width/line height fixes

Revision 1.15 - (view) (annotate) - [select for diffs]
Thu Aug 23 05:33:33 2001 UTC (12 years, 7 months ago) by strandh
Branch: MAIN
Changes since 1.14: +3 -3 lines
Diff to previous 1.14
Redefined text-style-{ascent,descent,height,width} to conform to
specification and changed all invocations.  Removed local variable
`port' in :around functions for stream-write-xxx in recording.lisp as
it is no longer necessary with the new definition of these functions.

There were two methods port-character-width on a clx-port used by
stream-character-width and character-width on a generic port (a
fall-through method) which was never used.  I renamed character-width
to port-character-width and made its signature identical to that of

To be consistent with port-character-width above, I renamed the
generic function line-height, which is now called port-line-height.
There is currently only one method on it, the fall-through method on a
generic port, which is OK I guess since it is currently never called.

Revision 1.14 - (view) (annotate) - [select for diffs]
Thu Aug 9 17:01:12 2001 UTC (12 years, 8 months ago) by rouanet
Branch: MAIN
Changes since 1.13: +7 -6 lines
Diff to previous 1.13
Added the new medium-specific output functions:
  - medium-finish-output
  - medium-force-output
  - medium-clear-area
  - medium-beep

These functions have each a default method defined on basic-medium, and
a xlib-specific version on clx-medium.

The medium-clear-area function is now used to implement the window-clear
function, and the medium-beep is called by the beep function.

Revision 1.13 - (view) (annotate) - [select for diffs]
Mon Jul 30 14:08:41 2001 UTC (12 years, 8 months ago) by rouanet
Branch: MAIN
Changes since 1.12: +20 -12 lines
Diff to previous 1.12
Modified the code to make use of the newly implemented setf* facility.

Revision 1.12 - (view) (annotate) - [select for diffs]
Mon Jul 30 05:43:59 2001 UTC (12 years, 8 months ago) by adejneka
Branch: MAIN
Changes since 1.11: +18 -3 lines
Diff to previous 1.11
* Two new methods, STREAM-WRITE-LINE and
  DIRECT-SETF*-STREAM-CURSOR-POSITION, added in order to ease output

Revision 1.11 - (view) (annotate) - [select for diffs]
Wed Jul 18 06:05:42 2001 UTC (12 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.10: +10 -1 lines
Diff to previous 1.10

Revision 1.10 - (view) (annotate) - [select for diffs]
Sat Jul 7 13:06:04 2001 UTC (12 years, 9 months ago) by rouanet
Branch: MAIN
Changes since 1.9: +2 -2 lines
Diff to previous 1.9
Partially rewrote Output Recording to conform to specification.

Changes include:
  - output-record and displayed-output-record are now separated classes
    (only instances of output-record have children);
  - Computing of bounding box extent is now handled correctly;
  - replay doesn't `replay' when drawing-p is nil;
  - All graphics-displayed-output-record now seems to work (including
    output recording of draw-text);
  - Removed a bug in recording of draw-point, draw-text and draw-line:
    slots x1, y1, x2 and y2 used to store line coordinates used to be
    overwritten by bounding box. Same problem for x and y which are used
    to store position.

Remaining things to do:
  - standard-tree-output-record is currently the same as
  - Positions of output records are not handled yet.
  - ...
stream-output.lisp CVS:

Revision 1.9 - (view) (annotate) - [select for diffs]
Sun Jan 21 02:23:42 2001 UTC (13 years, 2 months ago) by cvs
Branch: MAIN
Changes since 1.8: +0 -3 lines
Diff to previous 1.8
Grey streams are included by package.lisp as per Paul Werkowski

Revision 1.8 - (view) (annotate) - [select for diffs]
Sat Dec 2 08:00:39 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.7: +2 -6 lines
Diff to previous 1.7
use the region position for scrolling

Revision 1.7 - (view) (annotate) - [select for diffs]
Fri Dec 1 00:31:28 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.6: +96 -101 lines
Diff to previous 1.6
  Rewrote stream-write-char and output recording of text. It seems to work now!!!
(What's displayed originally and what's rdisplayed match. Wrapping and vertical
scrolling also appear correct.)

Revision 1.6 - (view) (annotate) - [select for diffs]
Wed Nov 29 19:47:42 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.5: +5 -0 lines
Diff to previous 1.5
more output history work -- still not right but closer

Revision 1.5 - (view) (annotate) - [select for diffs]
Thu Nov 2 00:12:13 2000 UTC (13 years, 5 months ago) by cvs
Branch: MAIN
Changes since 1.4: +4 -0 lines
Diff to previous 1.4
reworking output history - doesn't handle CR correct yet

Revision 1.4 - (view) (annotate) - [select for diffs]
Fri Aug 25 16:15:28 2000 UTC (13 years, 7 months ago) by cvs
Branch: MAIN
Changes since 1.3: +2 -0 lines
Diff to previous 1.3
Added copyright notice to reflect modifications.

Revision 1.3 - (view) (annotate) - [select for diffs]
Thu Jul 13 14:32:39 2000 UTC (13 years, 9 months ago) by cvs
Branch: MAIN
Changes since 1.2: +1 -1 lines
Diff to previous 1.2
Changed medium transformation from new instance of 'transformation
to +identity-transformation+.

Revision 1.2 - (view) (annotate) - [select for diffs]
Mon Jun 12 12:38:17 2000 UTC (13 years, 10 months ago) by cvs
Branch: MAIN
Changes since 1.1: +15 -3 lines
Diff to previous 1.1
Changed order of arguments to text-style- functions to conform to

Added methods for stream-line-column and stream-start-line-p on

Revision - (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.65
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