ViewVC logotype

Log of /mcclim/ports.lisp

Parent Directory Parent Directory | Revision Log Revision Log

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

Revision 1.56 - (view) (annotate) - [select for diffs]
Wed Mar 14 23:33:24 2007 UTC (7 years, 1 month ago) by dlichteblau
Branch: MAIN
CVS Tags: HEAD, McCLIM-0-9-5, McCLIM-0-9-6
Changes since 1.55: +12 -1 lines
Diff to previous 1.55 , to selected
Added the native windows backend clim-graphic-forms, by Jack D. Unrue

Revision 1.55 - (view) (annotate) - [select for diffs]
Wed Feb 7 12:44:17 2007 UTC (7 years, 2 months ago) by crhodes
Branch: MAIN
Changes since 1.54: +15 -47 lines
Diff to previous 1.54 , to selected
New click-to-focus policy for text-editor gadgets and panes, implemented
for the CLX, Null and gtkairo backends (but gtk_window_get_focus()
hand-inserted into gtkairo/ffi.lisp).

PORT-KEYBOARD-INPUT-FOCUS is now a trampoline to
PORT-FRAME-KEYBOARD-INPUT-FOCUS, a per-port function to set the keyboard
focus for a particular frame.  Not implemented for Beagle or OpenGL

Now Drei / Goatee gadgets don't have to do their own keyboard
focus handling on arm/disarm any more.  Various kludges sprinkled all
over the place to make this so.

Revision 1.54 - (view) (annotate) - [select for diffs]
Sun Dec 24 14:27:43 2006 UTC (7 years, 3 months ago) by dlichteblau
Branch: MAIN
CVS Tags: McCLIM-0-9-4, mcclim-0-9-4
Changes since 1.53: +119 -0 lines
Diff to previous 1.53 , to selected
Enable support for extended text styles using strings for family and face,
as already implemented in CLIM-CLX.  Teach Gtkairo do the same.

Add an API for font listing (implemented in CLX and Gtkairo, plus a
trivial fallback implementation for other backends) and a font selection
dialog as an example.

	* Doc/mcclim.texi: New chapter "Fonts and Extended Text Styles"

	* Examples/font-selector.lisp: New file.

	* Examples/demodemo.lisp: Added a button for the font selector.

	* mcclim.asd (CLIM-EXAMPLES): Added font-selector.lisp.

	* package.lisp (CLIM-EXTENSIONS): Export new symbols font-family
	font-face port-all-font-families font-family-name font-family-port
	font-family-all-faces font-face-name font-face-family
	font-face-all-sizes font-face-scalable-p font-face-text-style.

	* medium.lisp (MAKE-TEXT-STYLE, TEXT-STYLE-EQUALP): Allow strings
	for family and face.  (MAKE-TEXT-STYLE-1): New helper function.

	* ports.lisp (FONT-FAMILY, FONT-FACE): New classes.
	(port-all-font-families font-family-name font-family-port
	font-family-all-faces font-face-name font-face-family
	font-face-all-sizes font-face-scalable-p font-face-text-style):
	New generic functions and default methods.

	* Backends/CLX/port.lisp (FONT-FAMILIES): New slot in the port.
	(port-all-font-families font-family-name font-family-port
	font-family-all-faces font-face-name font-face-family
	font-face-all-sizes font-face-scalable-p font-face-text-style):
	MAKE-UNFRIEDLY-NAME): New helper functions.

	* Backends/gtkairo/pango.lisp (MAKE-FONT-DESCRIPTION): Support
	strings for family and face.
	(port-all-font-families font-family-name font-family-port
	font-family-all-faces font-face-name font-face-family
	font-face-all-sizes font-face-scalable-p font-face-text-style):
	New methods. (INVOKE-LISTER, pango-font-family-list-faces,
	pango-font-face-list-sizes): New helper functions.

	* Backends/gtkairo/port.lisp (GLOBAL-PANGO-CONTEXT): New slot in
	the port.  ((INITIALIZE-INSTANCE GTKAIRO-PORT)): Set the pango

	* Backends/gtkairo/ffi.lisp: regenerated.

Revision 1.53 - (view) (annotate) - [select for diffs]
Sat Jul 1 21:31:41 2006 UTC (7 years, 9 months ago) by ahefner
Branch: MAIN
CVS Tags: McCLIM-0-9-3
Changes since 1.52: +6 -2 lines
Diff to previous 1.52 , to selected
Fix destroy-port in the case where the backend method causes an error.
The work seems to be done using :before methods (why??) both in McCLIM
and the backends. If one of these errs, the primary method which
removes the port from *all-ports* never runs. Fix this by using an
:around method with an unwind-protect to ensure removal from *all-ports*.

Revision 1.52 - (view) (annotate) - [select for diffs]
Mon Apr 17 18:40:27 2006 UTC (8 years ago) by dlichteblau
Branch: MAIN
Changes since 1.51: +1 -1 lines
Diff to previous 1.51 , to selected
* Backends/gtkairo: New directory: Experimental GTK+ backend.

* mcclim.asd (clim-gtkairo): New system.  (clim-looks): Depend on
clim-gtkairo if the gtkairo feature has been set by the user.

* ports.lisp (*server-path-search-order*): s/gtk/gtkairo/

Revision 1.51 - (view) (annotate) - [select for diffs]
Mon Mar 27 10:44:34 2006 UTC (8 years ago) by crhodes
Branch: MAIN
Changes since 1.50: +1 -1 lines
Diff to previous 1.50 , to selected
Whoops.  A missing piece of the Null backend.  Put :null at the end of

Revision 1.50 - (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.49: +0 -2 lines
Diff to previous 1.49 , to selected
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.49 - (view) (annotate) - [select for diffs]
Thu Aug 18 19:58:18 2005 UTC (8 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.48: +4 -1 lines
Diff to previous 1.48 , to selected
Removed a few compiler warnings.

Revision 1.48 - (view) (annotate) - [select for diffs]
Tue Feb 22 03:14:26 2005 UTC (9 years, 1 month ago) by ahefner
Branch: MAIN
CVS Tags: McCLIM-0-9-1
Changes since 1.47: +24 -7 lines
Diff to previous 1.47 , to selected
Fix mixed up arguments to set-port-keyboard-focus.

Renamed set-port-keyboard-focus to %set-port-keyboard-focus to avoid
confusion with the CLIM 2.0 function port-keyboard-input-focus.

Added a timestamp keyword to %set-port-keyboard-focus (not used by
any callers yet).

Added some comments about how the keyboard focus functions are connected.

Revision 1.47 - (view) (annotate) - [select for diffs]
Sun Jul 11 19:48:16 2004 UTC (9 years, 9 months ago) by duncan
Branch: MAIN
Changes since 1.46: +1 -1 lines
Diff to previous 1.46 , to selected
Initial check in of Beagle (Cocoa) back end and modified port.lisp to add
:beagle onto the port search list.
See README.txt in the Backends/beagle directory for limitations and hints.

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

	* INSTALL.OPENMCL: updated instructions.

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

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

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

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

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

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

	* recording.lisp : Cosmetic fixups.

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

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

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

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

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

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

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

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

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

Revision 1.45 - (view) (annotate) - [select for diffs]
Sat Feb 7 14:05:50 2004 UTC (10 years, 2 months ago) by moore
Branch: MAIN
Changes since 1.44: +0 -23 lines
Diff to previous 1.44 , to selected
Cleaned up the frame layout code. It's now possible to change layouts
on the fly. Got rid of frame-pane and replaced it with a proper
definition of frame-panes that conforms to the Spec. All the frame
pane and layout functions in the spec should be implemented now.

In presentation-replace-input, checked in a fix that I thought was
already in.

Revision 1.44 - (view) (annotate) - [select for diffs]
Sat Nov 29 15:56:13 2003 UTC (10 years, 4 months ago) by hefner1
Branch: MAIN
Changes since 1.43: +7 -2 lines
Diff to previous 1.43 , to selected
Implemented SHEET-POINTER-CURSOR from Franz CLIM.

Revision 1.43 - (view) (annotate) - [select for diffs]
Fri Nov 28 23:28:45 2003 UTC (10 years, 4 months ago) by hefner1
Branch: MAIN
Changes since 1.42: +17 -1 lines
Diff to previous 1.42 , to selected
Implement :multiple-window option to tracking-pointer. Added a new backend
protocol to support this, through functions PORT-GRAB-POINTER and

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

Revision 1.42 - (view) (annotate) - [select for diffs]
Sun Sep 14 17:55:56 2003 UTC (10 years, 7 months ago) by hefner1
Branch: MAIN
CVS Tags: McCLIM-0-9
Changes since 1.41: +6 -0 lines
Diff to previous 1.41 , to selected
Attempt to address the annoying CLX buffering issues, by calling
XLIB:DISPLAY-FORCE-OUTPUT when applications check their event queues.

* Created a subclass of STANDARD-EVENT-QUEUE called PORT-EVENT-QUEUE, which
  knows what port will be putting events on the queue. (Arguably I could've
  just added a port slot to STANDARD-EVENT-QUEUE either directly or through
  a mixin, or even added a slot for a "force output" hook, but this is what
  I've done for now.)

* When creating frames or sheet-with-input-mixins, use PORT-EVENT-QUEUE
  instead and initialize the PORT slot.

* Introduced a new method, PORT-FORCE-OUTPUT.

* Wrote :before methods on EVENT-QUEUE-READ, EVENT-QUEUE-PEEK, etc, which

* Before exiting RUN-FRAME-TOPLEVEL, be sure to get the port from the frame
  manager and call PORT-FORCE-OUTPUT on that too, to make sure the app
  window really goes away when it should instead of being stuck in limbo.

* Also squashed a couple warnings in Backends/CLX/image.lisp from bad format
  strings to ERROR.

Revision 1.41 - (view) (annotate) - [select for diffs]
Sun Jul 20 17:45:22 2003 UTC (10 years, 9 months ago) by hefner1
Branch: MAIN
Changes since 1.40: +12 -3 lines
Diff to previous 1.40 , to selected
Input focus work - (setf port-keyboard-input-focus) was not really
calling set-input-focus, just changing the slot in the application frame.

Revision 1.40 - (view) (annotate) - [select for diffs]
Mon Jul 14 19:41:44 2003 UTC (10 years, 9 months ago) by hefner1
Branch: MAIN
Changes since 1.39: +16 -2 lines
Diff to previous 1.39 , to selected
Reworking of input focus handling - track keyboard focus per-frame rather
than per-port, and set appropriate WM hint/protocol to implement what the
ICCCM defines as "Locally Active" focus.

port-keyboard-input-focus is still around, but now changes the frame input
focus through clim:*application-frame*. This makes multiple application
frames play nice with each other.

You can also now move the pointer out of the window and still type to it, if
your WM allows that sort of thing.

Revision 1.39 - (view) (annotate) - [select for diffs]
Fri Mar 21 22:07:06 2003 UTC (11 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.38: +1 -1 lines
Diff to previous 1.38 , to selected
make all code lowercase for ACL's java mode - leave gensyms alone

Revision 1.38 - (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.37: +1 -1 lines
Diff to previous 1.37 , to selected
make all of the package names passed to in-package be lowercase keywords for ACL's java mode

Revision 1.37 - (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.36: +1 -4 lines
Diff to previous 1.36 , to selected
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.36 - (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.35: +2 -0 lines
Diff to previous 1.35 , to selected

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.35 - (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.34: +2 -3 lines
Diff to previous 1.34 , to selected
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

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

Revision 1.34 - (view) (annotate) - [select for diffs]
Thu Jul 4 06:57:43 2002 UTC (11 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.33: +3 -1 lines
Diff to previous 1.33 , to selected
Unified text style mappings across ports.

Revision 1.33 - (view) (annotate) - [select for diffs]
Fri Jun 14 06:14:43 2002 UTC (11 years, 10 months ago) by adejneka
Branch: MAIN
Changes since 1.32: +1 -1 lines
Diff to previous 1.32 , to selected

Revision 1.32 - (view) (annotate) - [select for diffs]
Fri May 31 00:02:58 2002 UTC (11 years, 10 months ago) by mikemac
Branch: MAIN
Changes since 1.31: +1 -1 lines
Diff to previous 1.31 , to selected
set the default search path to :genera :ms-windows :gtk :clx :x11 :opengl

Revision 1.31 - (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.30: +3 -2 lines
Diff to previous 1.30 , to selected
Major new functionality: command processing with completion.  Check
out the address-book demo.  In it, all commands are available on the
command line.  Completion and editing work.  Prompts for input show up
on *debug-io* for now, but otherwise command input is accepted from

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

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

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

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

Revision 1.30 - (view) (annotate) - [select for diffs]
Mon Apr 29 05:00:33 2002 UTC (11 years, 11 months ago) by brian
Branch: MAIN
Changes since 1.29: +1 -1 lines
Diff to previous 1.29 , to selected
OpenGL backend now draws stuff (but not much else).
Misc cleaning up, some regions debugging.

Revision 1.29 - (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.28: +9 -19 lines
Diff to previous 1.28 , to selected
Fix various problems found by Robert.

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

Revision 1.28 - (view) (annotate) - [select for diffs]
Sun Apr 21 12:41:14 2002 UTC (12 years ago) by brian
Branch: MAIN
Changes since 1.27: +11 -2 lines
Diff to previous 1.27 , to selected
Sundry fixes to run without multiprocessing support.

Added images/ to hold bitmaps for tests.

Added looks/ to hold neutral look-and-feel realizer packages.

Added Examples/gadget-test to test many gadgets with a look and feel.

Added a pixie look and feel, and a pixie/clx to work with the clx backend.

Added drawing support in the CLX backend for ovals and circles.

Fixed pixmaps to work with with-output-to-pixmap with draw-image, etc.

Moved sheet-leaf-mixin to standard-gadget-pane so it doesn't break radio-box-pane, etc.

Misc fixes.

Revision 1.27 - (view) (annotate) - [select for diffs]
Fri Apr 19 22:27:09 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.26: +21 -20 lines
Diff to previous 1.26 , to selected
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.26 - (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.25: +16 -5 lines
Diff to previous 1.25 , to selected
Checkin to get context sensitive input working with multi-threaded

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

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

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

Fixed a typo in gadgets.lisp.

Revision 1.25 - (view) (annotate) - [select for diffs]
Thu Feb 28 21:00:10 2002 UTC (12 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.24: +23 -1 lines
Diff to previous 1.24 , to selected
first cut at port-wait-on-event-processing

Revision 1.24 - (view) (annotate) - [select for diffs]
Wed Feb 27 23:13:34 2002 UTC (12 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.23: +1 -1 lines
Diff to previous 1.23 , to selected
make window-manager-delete-event work

Revision 1.23 - (view) (annotate) - [select for diffs]
Wed Feb 27 15:44:43 2002 UTC (12 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.22: +3 -0 lines
Diff to previous 1.22 , to selected
added window-manager-delete-event

Revision 1.22 - (view) (annotate) - [select for diffs]
Tue Feb 26 16:11:25 2002 UTC (12 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.21: +14 -21 lines
Diff to previous 1.21 , to selected
reworked *default-server-path* handling

Revision 1.21 - (view) (annotate) - [select for diffs]
Mon Feb 11 21:46:36 2002 UTC (12 years, 2 months ago) by gilbert
Branch: MAIN
Changes since 1.20: +64 -29 lines
Diff to previous 1.20 , to selected
    Now features an event-process slot as well as a lock.

Basically all methods, which specialized on PORT, now specialize on

DESTROY-PORT :before ((port basic-port))
    New method, kills the event process.

    New macro.

Revision 1.20 - (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.19: +1 -1 lines
Diff to previous 1.19 , to selected
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.19 - (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.18: +1 -1 lines
Diff to previous 1.18 , to selected
updated copyright dates for me

Revision 1.18 - (view) (annotate) - [select for diffs]
Tue Nov 13 18:39:25 2001 UTC (12 years, 5 months ago) by mikemac
Branch: MAIN
Changes since 1.17: +0 -8 lines
Diff to previous 1.17 , to selected
remove unused methods

Revision 1.17 - (view) (annotate) - [select for diffs]
Thu Oct 4 19:26:59 2001 UTC (12 years, 6 months ago) by rouanet
Branch: MAIN
Changes since 1.16: +0 -10 lines
Diff to previous 1.16 , to selected
Rewrote the copy-{from,to}-pixmap and copy-area functions according to
the new spec.

The main difference is that the three functions now rely on
medium-copy-area, which is specialized on both a source an a destination
`drawable' and is in charge of the low-level stuff, such as
xlib:copy-area for clx-medium.  This leads to clearer and shorter code.

The copy to/from a stream is not implemended yet.

Revision 1.16 - (view) (annotate) - [select for diffs]
Tue Sep 11 12:44:18 2001 UTC (12 years, 7 months ago) by rouanet
Branch: MAIN
Changes since 1.15: +5 -1 lines
Diff to previous 1.15 , to selected
Implemented the methods to compute the native transformation and region,
as well as the device transformation and region.

Added the mirror-transformation method.

Revision 1.15 - (view) (annotate) - [select for diffs]
Thu Aug 23 23:18:11 2001 UTC (12 years, 7 months ago) by rouanet
Branch: MAIN
Changes since 1.14: +8 -8 lines
Diff to previous 1.14 , to selected
The former mirrored-sheet class is now mirrored-sheet-mixin.
Changed the name in the existing code and made the necessary

Renamed the unrealize-mirror function, which was previously only
used internally by CLIM, but is now publicly advertised in the spec
as destroy-mirror.

Revision 1.14 - (view) (annotate) - [select for diffs]
Thu Aug 23 05:33:33 2001 UTC (12 years, 8 months ago) by strandh
Branch: MAIN
Changes since 1.13: +4 -4 lines
Diff to previous 1.13 , to selected
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.13 - (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.12: +0 -3 lines
Diff to previous 1.12 , to selected
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.12 - (view) (annotate) - [select for diffs]
Wed Jul 18 06:02:38 2001 UTC (12 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.11: +1 -1 lines
Diff to previous 1.11 , to selected

Revision 1.11 - (view) (annotate) - [select for diffs]
Fri Jul 6 13:36:46 2001 UTC (12 years, 9 months ago) by cvs
Branch: MAIN
Changes since 1.10: +3 -2 lines
Diff to previous 1.10 , to selected
Patch for SBCL incorporated

Revision 1.10 - (view) (annotate) - [select for diffs]
Fri Feb 23 12:47:23 2001 UTC (13 years, 1 month ago) by cvs
Branch: MAIN
Changes since 1.9: +35 -7 lines
Diff to previous 1.9 , to selected
pixmaps are now available. Add a new extensions : draw-glyph (see graphics.lisp). Did the make device-font-text-style.

Revision 1.9 - (view) (annotate) - [select for diffs]
Mon Dec 11 09:04:50 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.8: +0 -6 lines
Diff to previous 1.8 , to selected
Unmap events are no longer used in the destroy cycle of mirrors.

Revision 1.8 - (view) (annotate) - [select for diffs]
Mon Dec 4 14:59:05 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.7: +2 -0 lines
Diff to previous 1.7 , to selected
Made a window-unmap-event generate a call to port-destroy-mirror.

Revision 1.7 - (view) (annotate) - [select for diffs]
Tue Nov 28 15:39:13 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.6: +4 -8 lines
Diff to previous 1.6 , to selected
Removed commented code for unrealize-mirror, realize-first-mirrors.

Added call to port-unregister-mirror as a result of window-destroy-event.

Revision 1.6 - (view) (annotate) - [select for diffs]
Tue Sep 5 11:33:18 2000 UTC (13 years, 7 months ago) by cvs
Branch: MAIN
Changes since 1.5: +2 -1 lines
Diff to previous 1.5 , to selected
Added support for getting the value of an environment variable in CLISP.

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

Revision 1.4 - (view) (annotate) - [select for diffs]
Tue Aug 22 10:53:05 2000 UTC (13 years, 8 months ago) by cvs
Branch: MAIN
Changes since 1.3: +8 -7 lines
Diff to previous 1.3 , to selected
Removed recursive versions of realize-mirror and unrealize-mirror.

Modified call to dispatch event in distribute-event.

Revision 1.3 - (view) (annotate) - [select for diffs]
Thu Jul 13 14:25:56 2000 UTC (13 years, 9 months ago) by cvs
Branch: MAIN
Changes since 1.2: +2 -1 lines
Diff to previous 1.2 , to selected
Added code for getting Unix environment variable from CMU CL.

Revision 1.2 - (view) (annotate) - [select for diffs]
Wed Jun 21 07:54:59 2000 UTC (13 years, 10 months ago) by cvs
Branch: MAIN
Changes since 1.1: +18 -1 lines
Diff to previous 1.1 , to selected
Added support for DISPLAY variable

Revision - (view) (annotate) - [selected] (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.56
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
Diff to selected
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