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

Log of /mcclim/input.lisp

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Links to McCLIM-0-9-4: (view) (annotate)
Sticky Tag:

Revision 1.37 - (view) (annotate) - [select for diffs]
Sun Jul 9 06:23:22 2006 UTC (7 years, 9 months ago) by ahefner
Branch: MAIN
CVS Tags: McCLIM-0-9-3, McCLIM-0-9-4, McCLIM-0-9-5, mcclim-0-9-4
Changes since 1.36: +0 -39 lines
Diff to previous 1.36
Move scroll wheel code to panes.lisp, since it has nothing to do with
event queues.

Revision 1.36 - (view) (annotate) - [select for diffs]
Sat Jul 8 16:58:36 2006 UTC (7 years, 9 months ago) by ahefner
Branch: MAIN
Changes since 1.35: +1 -1 lines
Diff to previous 1.35
Fix event compression on single-process lisps. This consists of two
changes: 1) Don't use immediate-sheet-input-mixin, and 2) When reading
events from the backend, read all available events in a nonblocking
fashion, so that events which have accumulated since we last checked
can be compressed.

This requires the backend 'get-next-event' to support :timeout 0.
Currently CLX and Beagle appear to do so, while Gtkairo does not.

Revision 1.35 - (view) (annotate) - [select for diffs]
Mon Jan 16 13:16:38 2006 UTC (8 years, 3 months ago) by cfruhwirth
Branch: MAIN
CVS Tags: McCLIM-0-9-2
Changes since 1.34: +1 -1 lines
Diff to previous 1.34
Remove superfluous closing-parenthesis.

Revision 1.34 - (view) (annotate) - [select for diffs]
Fri Jan 13 16:51:03 2006 UTC (8 years, 3 months ago) by cfruhwirth
Branch: MAIN
Changes since 1.33: +23 -18 lines
Diff to previous 1.33
Rewrite dispatch-event for mouse-wheel-scroll-mixin to work with left
and right scrolling wheel buttons.

Revision 1.33 - (view) (annotate) - [select for diffs]
Fri Jul 1 12:59:39 2005 UTC (8 years, 9 months ago) by tmoore
Branch: MAIN
Changes since 1.32: +27 -27 lines
Diff to previous 1.32
In condition-wait, pass through return value of OpenMCL function.

Revision 1.32 - (view) (annotate) - [select for diffs]
Sun Oct 31 01:46:31 2004 UTC (9 years, 5 months ago) by hefner1
Branch: MAIN
CVS Tags: McCLIM-0-9-1
Changes since 1.31: +10 -4 lines
Diff to previous 1.31
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.31 - (view) (annotate) - [select for diffs]
Fri Apr 23 19:29:48 2004 UTC (10 years ago) by moore
Branch: MAIN
Changes since 1.30: +4 -0 lines
Diff to previous 1.30
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.30 - (view) (annotate) - [select for diffs]
Sun Mar 21 21:49:06 2004 UTC (10 years, 1 month ago) by hefner1
Branch: MAIN
Changes since 1.29: +28 -0 lines
Diff to previous 1.29
Scroll wheel support. Added new defconstants for +pointer-wheel-up/down+,
and changed CLX backend to produce them. Handle scrolling using a
DISPATCH-EVENT method specialized on mouse-wheel-scroll-mixin, and
tentatively mixed this into clim-stream-pane.

Revision 1.29 - (view) (annotate) - [select for diffs]
Mon Feb 23 10:48:28 2004 UTC (10 years, 2 months ago) by moore
Branch: MAIN
Changes since 1.28: +46 -67 lines
Diff to previous 1.28

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.28 - (view) (annotate) - [select for diffs]
Sat Nov 8 01:06:51 2003 UTC (10 years, 5 months ago) by hefner1
Branch: MAIN
CVS Tags: McCLIM-0-9
Changes since 1.27: +0 -6 lines
Diff to previous 1.27
Oops, single-threaded CLIM uses a different input mixin on sheets.
Conditionalized some event queue querying so that hopefully it doesn't
break in that situation.

Revision 1.27 - (view) (annotate) - [select for diffs]
Wed Nov 5 11:31:38 2003 UTC (10 years, 5 months ago) by hefner1
Branch: MAIN
Changes since 1.26: +11 -7 lines
Diff to previous 1.26
Cleanups related to port-force-output - adopt/disown-frame are the correct
places to change a queue's port. Also, avoid a trip into the debugger in
case somehow these do not get set, since flushing the output buffer is
optional.

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

Revision 1.25 - (view) (annotate) - [select for diffs]
Sun Sep 14 17:55:56 2003 UTC (10 years, 7 months ago) by hefner1
Branch: MAIN
Changes since 1.24: +40 -1 lines
Diff to previous 1.24
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
  call PORT-FORCE-OUTPUT.

* 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.24 - (view) (annotate) - [select for diffs]
Sat Jul 26 17:37:57 2003 UTC (10 years, 9 months ago) by gilbert
Branch: MAIN
Changes since 1.23: +1 -1 lines
Diff to previous 1.23
Due to popular demand we spit FORMAT-style debugging messages out to
*trace-output* instead of *debug-io*

Revision 1.23 - (view) (annotate) - [select for diffs]
Thu Apr 24 19:53:18 2003 UTC (11 years ago) by hefner1
Branch: MAIN
Changes since 1.22: +53 -41 lines
Diff to previous 1.22
Compression of resize events for toplevel windows.

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

Revision 1.21 - (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.20: +2 -2 lines
Diff to previous 1.20
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.20 - (view) (annotate) - [select for diffs]
Sun Nov 10 15:56:11 2002 UTC (11 years, 5 months ago) by gilbert
Branch: MAIN
Changes since 1.19: +4 -1 lines
Diff to previous 1.19
Mike McDonald wrote in message <200211050453.gA54r1J32523@saturn.mikemac.com>:
    In ACL:

    ;;; Compiling file ./input.lisp
    5007120 bytes have been tenured, next gc will be global.
    See the documentation for variable EXCL:*GLOBAL-GC-BEHAVIOR* for more information.
    ;;; Writing fasl file /home/mikemac/src/Lisp/McCLIM/input.fasl
    ;;; Fasl write complete
    ;     Loading product for module: "input".
    ; Fast loading /home/mikemac/src/Lisp/McCLIM/input.fasl
    Error: Attempt to add the method
           #<STANDARD-METHOD EVENT-QUEUE-SCHEDULE
             (STANDARD-EVENT-QUEUE T T T) @ #x20931b5a>
           to the generic function
           #<STANDARD-GENERIC-FUNCTION EVENT-QUEUE-SCHEDULE> but the method
           has more required arguments than the generic function.
      [condition type: PROGRAM-ERROR]

STANDARD-EVENT-QUEUE had a slot accessor defined by the name
EVENT-QUEUE-SCHEDULE which is now removed and so this error should now
be fixed.

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

Revision 1.18 - (view) (annotate) - [select for diffs]
Fri Aug 2 11:59:09 2002 UTC (11 years, 8 months ago) by adejneka
Branch: MAIN
Changes since 1.17: +0 -64 lines
Diff to previous 1.17
* Moved TRACKING-POINTER to a separate file.

* Added tracking of presentations.

Revision 1.17 - (view) (annotate) - [select for diffs]
Sat Jul 13 07:58:56 2002 UTC (11 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.16: +64 -0 lines
Diff to previous 1.16
Initial implementation of TRACKING-POINTER.

Revision 1.16 - (view) (annotate) - [select for diffs]
Wed Jun 26 06:27:19 2002 UTC (11 years, 10 months ago) by moore
Branch: MAIN
Changes since 1.15: +3 -1 lines
Diff to previous 1.15
Fixed problem Gilbert reported; event-queue-listen-or-wait was
depending on the return result of process-wait which is not portable.

Work in progress on incremental redisplay.

Revision 1.15 - (view) (annotate) - [select for diffs]
Tue Jun 25 22:26:45 2002 UTC (11 years, 10 months ago) by gilbert
Branch: MAIN
Changes since 1.14: +80 -8 lines
Diff to previous 1.14
We have event compression now.

EVENT-QUEUE-APPEND is responsible for that.

Revision 1.14 - (view) (annotate) - [select for diffs]
Tue Jun 25 02:01:41 2002 UTC (11 years, 10 months ago) by moore
Branch: MAIN
Changes since 1.13: +39 -13 lines
Diff to previous 1.13
Changed implementation of low-level streams code once again.  This
does away with the fill-vector stream buffer and uses the event queue
directly.  Sorry mikemac, I should have listened to you :) If this
change isn't controversial I'll write something in the manual about
this deviation from the spec.  By default all panes in a frame now share the
same event queue.  I believe this mimics the behaviour of real CLIM.

Could people who aren't doing multiprocessing -- e.g. SBCL users --
give this a try?  It should fix the existing streams/presentation
breakage.

Revision 1.13 - (view) (annotate) - [select for diffs]
Sun Apr 28 06:53:10 2002 UTC (11 years, 11 months ago) by gilbert
Branch: MAIN
Changes since 1.12: +24 -1 lines
Diff to previous 1.12
EVENT-QUEUE-READ-WITH-TIMEOUT
    added

EVENT-READ-WITH-TIMEOUT
    uses it

Revision 1.12 - (view) (annotate) - [select for diffs]
Fri Apr 26 17:54:37 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.11: +0 -20 lines
Diff to previous 1.11
Fix various problems found by Robert.

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

Revision 1.11 - (view) (annotate) - [select for diffs]
Tue Apr 23 01:50:00 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.10: +4 -0 lines
Diff to previous 1.10
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.10 - (view) (annotate) - [select for diffs]
Sun Apr 21 12:41:14 2002 UTC (12 years ago) by brian
Branch: MAIN
Changes since 1.9: +10 -3 lines
Diff to previous 1.9
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.9 - (view) (annotate) - [select for diffs]
Fri Apr 19 22:27:09 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.8: +27 -4 lines
Diff to previous 1.8
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.8 - (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.7: +9 -0 lines
Diff to previous 1.7
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.7 - (view) (annotate) - [select for diffs]
Sat Feb 23 23:25:59 2002 UTC (12 years, 2 months ago) by mikemac
Branch: MAIN
Changes since 1.6: +15 -7 lines
Diff to previous 1.6
unify the sheet-event-queue and the input buffer

Revision 1.6 - (view) (annotate) - [select for diffs]
Sat Feb 16 02:48:22 2002 UTC (12 years, 2 months ago) by gilbert
Branch: MAIN
Changes since 1.5: +6 -0 lines
Diff to previous 1.5
Using two methods instead of IF now in DISPATCH-EVENT.

Revision 1.5 - (view) (annotate) - [select for diffs]
Mon Feb 11 21:34:23 2002 UTC (12 years, 2 months ago) by gilbert
Branch: MAIN
Changes since 1.4: +80 -20 lines
Diff to previous 1.4
Implemented an input queue class.

This still needs work for single threaded Lisps.

Revision 1.4 - (view) (annotate) - [select for diffs]
Thu Aug 9 16:48:46 2001 UTC (12 years, 8 months ago) by rouanet
Branch: MAIN
Changes since 1.3: +10 -10 lines
Diff to previous 1.3
The mixin classes MUTE-SHEET-*-MIXIN are now called SHEET-MUTE-*-MIXIN
in the new CLIM II Spec.

Revision 1.3 - (view) (annotate) - [select for diffs]
Mon Jun 18 12:45:21 2001 UTC (12 years, 10 months ago) by boninfan
Branch: MAIN
Changes since 1.2: +18 -1 lines
Diff to previous 1.2
Added event-read-with-timeout

Revision 1.2 - (view) (annotate) - [select for diffs]
Wed Nov 29 19:51:45 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.1: +3 -1 lines
Diff to previous 1.1
dispatch-event handles window events immediately

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