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

Log of /mcclim/frames.lisp

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 1.137 - (view) (annotate) - [select for diffs]
Sat Aug 1 16:10:31 2009 UTC (4 years, 8 months ago) by gbaumann
Branch: MAIN
CVS Tags: HEAD
Changes since 1.136: +44 -44 lines
Diff to previous 1.136 , to selected 1.102
Use force-output instead of finish-output as the latter implies
waiting for an answer from the display server, which is something
we really do not want to do.

Revision 1.136 - (view) (annotate) - [select for diffs]
Sat Feb 28 16:49:40 2009 UTC (5 years, 1 month ago) by crhodes
Branch: MAIN
Changes since 1.135: +2 -4 lines
Diff to previous 1.135 , to selected 1.102
Read arguments for partial commands from partial menu entries even when
the input stream isn't an interactor pane.  Use *partial-command-parser*
to do that rather than hardwiring
command-line-read-remaining-arguments-for-partial-command.

Revision 1.135 - (view) (annotate) - [select for diffs]
Wed Jan 28 19:27:22 2009 UTC (5 years, 2 months ago) by crhodes
Branch: MAIN
Changes since 1.134: +6 -9 lines
Diff to previous 1.134 , to selected 1.102
The spec says that PORT is an accessor on frame-manager; remove
CLIMI::FRAME-MANAGER-PORT and implement PORT instead.  Fixup all uses
that I can find.

(Motivated by Climacs's own frame management)

Revision 1.134 - (view) (annotate) - [select for diffs]
Sun Dec 7 20:24:44 2008 UTC (5 years, 4 months ago) by ahefner
Branch: MAIN
Changes since 1.133: +2 -2 lines
Diff to previous 1.133 , to selected 1.102
Change default text and prompt style to sans-serif, except for forms
in the listener.

Revision 1.133 - (view) (annotate) - [select for diffs]
Tue Feb 5 08:53:09 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
CVS Tags: McCLIM-0-9-6
Changes since 1.132: +7 -1 lines
Diff to previous 1.132 , to selected 1.102
Added restart for re-executing commands.

Revision 1.132 - (view) (annotate) - [select for diffs]
Sun Feb 3 09:10:45 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.131: +26 -16 lines
Diff to previous 1.131 , to selected 1.102
Added some convenient restarts for when the output history gets messed up due to errors.

Revision 1.131 - (view) (annotate) - [select for diffs]
Wed Jan 30 11:48:40 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.130: +0 -1 lines
Diff to previous 1.130 , to selected 1.102
Go some way towards fixing the minibuffer debacle.

Drei will no longer attempt to create a minibuffer on its own pane.

Commands that need the minibuffer, when none is available, will fail
somewhat gracefully.

Pointer documentation isn't broken yet, even with all the
pointer-documentation-pane abuse I'm doing. I'll have to work on that.

Revision 1.130 - (view) (annotate) - [select for diffs]
Sun Jan 27 22:24:07 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.129: +116 -104 lines
Diff to previous 1.129 , to selected 1.102
Added some amazing hacks to pointer-documentation-panes for the notion of a "background message".

This is the beginning of extending pointer-documentation-panes into
more generally useful minibuffer-like panes.

For now, this just means that the Listener shows arglists and other
things for Drei commands. It's still a little flickery, though.

Revision 1.129 - (view) (annotate) - [select for diffs]
Tue Jan 22 08:51:02 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.128: +4 -3 lines
Diff to previous 1.128 , to selected 1.102
Committed patch from Nikodemus Siivola fixing undefined variables.

Revision 1.128 - (view) (annotate) - [select for diffs]
Tue Jan 1 00:27:34 2008 UTC (6 years, 3 months ago) by ahefner
Branch: MAIN
Changes since 1.127: +10 -7 lines
Diff to previous 1.127 , to selected 1.102
After disabling a frame, call port-force-output.

Revision 1.127 - (view) (annotate) - [select for diffs]
Sun Mar 4 22:30:19 2007 UTC (7 years, 1 month ago) by ahefner
Branch: MAIN
CVS Tags: McCLIM-0-9-5
Changes since 1.126: +46 -45 lines
Diff to previous 1.126 , to selected 1.102
Change frame-geometry* so that when subclassing application frames, the
geometry specified in a superclass is inherited as you'd expect.

Revision 1.126 - (view) (annotate) - [select for diffs]
Sun Mar 4 14:59:37 2007 UTC (7 years, 1 month ago) by thenriksen
Branch: MAIN
Changes since 1.125: +2 -2 lines
Diff to previous 1.125 , to selected 1.102
Patch by Robert Goldman, make menu commands with unsupplied arguments
work better.

Revision 1.125 - (view) (annotate) - [select for diffs]
Wed Feb 7 12:44:16 2007 UTC (7 years, 2 months ago) by crhodes
Branch: MAIN
Changes since 1.124: +0 -6 lines
Diff to previous 1.124 , to selected 1.102
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
backends.

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.124 - (view) (annotate) - [select for diffs]
Mon Feb 5 02:55:29 2007 UTC (7 years, 2 months ago) by ahefner
Branch: MAIN
Changes since 1.123: +12 -5 lines
Diff to previous 1.123 , to selected 1.102
Make :default-initargs work as a parameter to define-application-frame.

Revision 1.123 - (view) (annotate) - [select for diffs]
Thu Jan 4 09:13:25 2007 UTC (7 years, 3 months ago) by crhodes
Branch: MAIN
CVS Tags: McCLIM-0-9-4, mcclim-0-9-4
Changes since 1.122: +1 -1 lines
Diff to previous 1.122 , to selected 1.102
Just a whitespace fixup

Revision 1.122 - (view) (annotate) - [select for diffs]
Wed Dec 20 16:23:49 2006 UTC (7 years, 3 months ago) by ahefner
Branch: MAIN
Changes since 1.121: +10 -3 lines
Diff to previous 1.121 , to selected 1.102
In find-frame-manager, don't choose the current or default frame managers
if this would contradict the :port argument.

Revision 1.121 - (view) (annotate) - [select for diffs]
Sun Dec 17 00:29:14 2006 UTC (7 years, 4 months ago) by thenriksen
Branch: MAIN
Changes since 1.120: +19 -17 lines
Diff to previous 1.120 , to selected 1.102
Support pane-names in `redisplay-frame-pane', patch from Raymond Toy.

Revision 1.120 - (view) (annotate) - [select for diffs]
Sat Jul 1 21:00:31 2006 UTC (7 years, 9 months ago) by ahefner
Branch: MAIN
CVS Tags: McCLIM-0-9-3
Changes since 1.119: +12 -9 lines
Diff to previous 1.119 , to selected 1.102
Fix command menus in frames with no interactor (or application-pane?)
by making read-frame-command handle the case :stream nil by calling
the simple event loop. Changed the default top level to call
read-frame-command with a null stream rather than calling the simple
event loop directly.

Previously the command menu would throw a menu-item, but because the
receiving code is in the :around method on read-frame-command (and
thus not executed), the menu selection was ignored.

Metaphorically, the "read a command" operation should be applicable
even when the textual command parser is not invoked.

Revision 1.119 - (view) (annotate) - [select for diffs]
Fri May 5 10:24:02 2006 UTC (7 years, 11 months ago) by crhodes
Branch: MAIN
Changes since 1.118: +2 -86 lines
Diff to previous 1.118 , to selected 1.102
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
  metacircularity;
* 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
  extended-input-stream.
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)

TODO:
* DEFGENERIC* forward declarations
* specified methods and macros
* specified special variables
* unification of protocol-classes and decls

Revision 1.118 - (view) (annotate) - [select for diffs]
Wed Mar 29 10:43:37 2006 UTC (8 years ago) by tmoore
Branch: MAIN
Changes since 1.117: +1 -1 lines
Diff to previous 1.117 , to selected 1.102

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

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.117 - (view) (annotate) - [select for diffs]
Wed Mar 15 15:38:39 2006 UTC (8 years, 1 month ago) by tmoore
Branch: MAIN
CVS Tags: McCLIM-0-9-2
Changes since 1.116: +12 -10 lines
Diff to previous 1.116 , to selected 1.102
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.116 - (view) (annotate) - [select for diffs]
Mon Mar 13 06:08:12 2006 UTC (8 years, 1 month ago) by tmoore
Branch: MAIN
Changes since 1.115: +35 -28 lines
Diff to previous 1.115 , to selected 1.102
drag-and-drop mostly working except for highlighting of destination presentations

Revision 1.115 - (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.114: +150 -34 lines
Diff to previous 1.114 , to selected 1.102
drag-and-drop, not quite working yet

Revision 1.114 - (view) (annotate) - [select for diffs]
Fri Mar 10 21:58:12 2006 UTC (8 years, 1 month ago) by tmoore
Branch: MAIN
Changes since 1.113: +164 -88 lines
Diff to previous 1.113 , to selected 1.102
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.113 - (view) (annotate) - [select for diffs]
Mon Feb 6 08:51:02 2006 UTC (8 years, 2 months ago) by tmoore
Branch: MAIN
Changes since 1.112: +9 -1 lines
Diff to previous 1.112 , to selected 1.102
{raise,bury}-{frame,sheet,mirror}

Revision 1.112 - (view) (annotate) - [select for diffs]
Sat Jan 28 00:47:18 2006 UTC (8 years, 2 months ago) by tmoore
Branch: MAIN
Changes since 1.111: +1 -1 lines
Diff to previous 1.111 , to selected 1.102
Put (declare (ignorable frame-class)) in the right function

Revision 1.111 - (view) (annotate) - [select for diffs]
Sat Jan 28 00:38:04 2006 UTC (8 years, 2 months ago) by tmoore
Branch: MAIN
Changes since 1.110: +56 -5 lines
Diff to previous 1.110 , to selected 1.102
Implemented destroy-frame and map-over-frames.

Implemented find-application-frame from the Franz User Manual. CLIM
Launcher folks might want to take a look at it.

Revision 1.110 - (view) (annotate) - [select for diffs]
Mon Nov 28 13:51:05 2005 UTC (8 years, 4 months ago) by gbaumann
Branch: MAIN
Changes since 1.109: +18 -1 lines
Diff to previous 1.109 , to selected 1.102
EXECUTE-FRAME-COMMAND

    When called from another process, pass command as
    EXECUTE-COMMAND-EVENT to the frame. So that commands are always
    executed in sync with the command loop.

    However, my method to check for being in frame process is far from
    perfect.

Revision 1.109 - (view) (annotate) - [select for diffs]
Thu Oct 27 01:21:33 2005 UTC (8 years, 5 months ago) by rstrandh
Branch: MAIN
Changes since 1.108: +21 -3 lines
Diff to previous 1.108 , to selected 1.102
Implemented double buffering for CLIM stream panes that want it.
Use the `:double-buffering t' initarg to obtain it.

Revision 1.108 - (view) (annotate) - [select for diffs]
Thu Aug 18 03:17:21 2005 UTC (8 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.107: +0 -19 lines
Diff to previous 1.107 , to selected 1.102
Initial cleanups to incremental redisplay.

Revision 1.107 - (view) (annotate) - [select for diffs]
Sun Apr 17 18:46:26 2005 UTC (9 years ago) by ahefner
Branch: MAIN
Changes since 1.106: +13 -4 lines
Diff to previous 1.106 , to selected 1.102
Check in nyef's partial fix for changing frame layouts.

Added comment protesting default of :use-keystrokes t in the spec.

Corrected a spelling error.

Revision 1.106 - (view) (annotate) - [select for diffs]
Tue Feb 22 03:14:17 2005 UTC (9 years, 1 month ago) by ahefner
Branch: MAIN
CVS Tags: McCLIM-0-9-1
Changes since 1.105: +1 -1 lines
Diff to previous 1.105 , to selected 1.102
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.105 - (view) (annotate) - [select for diffs]
Wed Feb 2 11:33:58 2005 UTC (9 years, 2 months ago) by tmoore
Branch: MAIN
Changes since 1.104: +33 -2 lines
Diff to previous 1.104 , to selected 1.102
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
options.

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.104 - (view) (annotate) - [select for diffs]
Tue Jan 11 13:14:18 2005 UTC (9 years, 3 months ago) by tmoore
Branch: MAIN
Changes since 1.103: +35 -11 lines
Diff to previous 1.103 , to selected 1.102
Eat the pointer-release events from a menu choose action. Otherwise,
they will still be around when if a command, invoked by the menu,
starts looking at the event queue.

Completely bypass the standard presentation translator mechanism when
determining whether to call the presentation clauses in
TRACKING-POINTER. Presentation translators and actions can't do
anything here.

Revision 1.103 - (view) (annotate) - [select for diffs]
Fri Nov 12 06:38:50 2004 UTC (9 years, 5 months ago) by hefner1
Branch: MAIN
Changes since 1.102: +24 -13 lines
Diff to previous 1.102
Added a keyword to make-menu-frame to control the minimum width
allocated to the menu.

Revision 1.102 - (view) (annotate) - [selected]
Sun Oct 31 01:46:31 2004 UTC (9 years, 5 months ago) by hefner1
Branch: MAIN
Changes since 1.101: +1 -0 lines
Diff to previous 1.101
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.101 - (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.100: +3 -1 lines
Diff to previous 1.100 , to selected 1.102
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.100 - (view) (annotate) - [select for diffs]
Thu Oct 14 06:30:11 2004 UTC (9 years, 6 months ago) by hefner1
Branch: MAIN
Changes since 1.99: +4 -4 lines
Diff to previous 1.99 , to selected 1.102
Improved (fixed) support for keystroke accelerators
---------------------------------------------------

File commands.lisp:

add-command-to-command-table: When given a keystroke, call
add-keystroke-to-command-table.
%add-keystroke-item: Changed error handling logic, added support for
literal keystroke specifications
remove-keystroke-from-command-table: When searching keystroke
accelerators, use :test #'equal


New function partial-command-from-name, which given a command name
produces a command whose
requried args are *unsupplied-argument-marker*

lookup-keystroke-command-item: Add support for keystroke accelerators
which specify only a command name. A partial command is created via
partial-command-from-name.

Class command-parsers: Added slots required-args and keyword-args,
needed in order to construct a partial command.

%define-command: Init required/keyword arguments in command-parser
object

read-command-using-keystrokes: Invoke partial command parser if a
partial command is returned.


File events.lisp:

Add :wheel-up and :wheel-down to key-modifier-state-match-p button
mapping. (This has been sitting around my tree for months, but somehow
never got committed..)


File frames.lisp:

In read-frame-command, supply ':use-keystrokes t' by default.


File stream-input.lisp:

Factored the bulk of add-gesture-name out into a new function,
realize-gesture-spec, which converts modifier names to symbols and does
general massaging of the gesture specification. Added translations for
:wheel-up, :wheel-down device names, which have also been sitting around
my tree for months.

realize-gesture-spec: Don't signal an error if the device-name is not
found in +name-to-char+, doing so would preclude the use of
port-specific keyboard gestures.

%event-matches-gesture: In the method specialized on key-press-event and
gesture type :keyboard, compare against the key-name of the event when
there is no key-character available, so that we can match keys/gestures
outside the CL character set via device names.

event-matches-gesture-name-p: Added the ability to match against other
than defined gesture-names. Specifically, it can now match against a
'physical' gesture-spec of the form (type device-name modifier-state).
Matching against characters is also supported.

Fix random typo.


Misc changes
------------

recording.lisp: Comment on 'constructor' arg to
invoke-with-output-recording-options, use of untransform on rotation
angles.

table-formatting.lisp: Supply required 'constructor' arg, which was
missing.

Revision 1.99 - (view) (annotate) - [select for diffs]
Sun Jul 25 08:09:22 2004 UTC (9 years, 8 months ago) by moore
Branch: MAIN
Changes since 1.98: +3 -2 lines
Diff to previous 1.98 , to selected 1.102
Remove problematic (for CMUCL) use of (make-instance ... :allow-other-keys t)

Add a (declare (ignore ...)) to one of the new invoke-with-output-to-output
methods.

Revision 1.98 - (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.97: +122 -13 lines
Diff to previous 1.97 , to selected 1.102
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.97 - (view) (annotate) - [select for diffs]
Fri Jul 9 09:24:27 2004 UTC (9 years, 9 months ago) by strandh
Branch: MAIN
Changes since 1.96: +1 -2 lines
Diff to previous 1.96 , to selected 1.102
Fixed (actually, Tim fixed) a problem where panes were cleared before
redisplay, even though :no-clear was specified at pane creation time.

Revision 1.96 - (view) (annotate) - [select for diffs]
Mon Jun 21 06:16:11 2004 UTC (9 years, 9 months ago) by hefner1
Branch: MAIN
Changes since 1.95: +15 -7 lines
Diff to previous 1.95 , to selected 1.102
Fix for problem with named panes constructed using a user-supplied form
to call MAKE-PANE -- because adding the pane to the frames list of named
panes is handled during pane construction within MAKE-PANE-1, a name
supplied to DEFINE-APPLICATION-FRAME was not known at the time of
construction and was not handled properly. Fixed this with a change to
DO-PANE-CREATION-FORM which passes the results of the user form to a new
function (COERCE-PANE-NAME) which sets the name slot of the pane and adds
it to the list of named panes, returning the modified pane.

Add strings for +pointer-wheel-up+ and +pointer-wheel-down+ to
+button-documentation+.

Revision 1.95 - (view) (annotate) - [select for diffs]
Tue Jun 1 17:32:21 2004 UTC (9 years, 10 months ago) by gilbert
Branch: MAIN
Changes since 1.94: +76 -71 lines
Diff to previous 1.94 , to selected 1.102
:GEOMETRY option to DEFINE-APPLICATION-FRAME and :TOP, :LEFT, :BOTTOM,
:RIGHT, :WIDTH, :HEIGHT options to MAKE-APPLICATION-FRAME now should
actually have effect.

Revision 1.94 - (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.93: +43 -1 lines
Diff to previous 1.93 , to selected 1.102
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.93 - (view) (annotate) - [select for diffs]
Fri Apr 23 19:29:48 2004 UTC (9 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.92: +78 -45 lines
Diff to previous 1.92 , to selected 1.102
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.92 - (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.91: +9 -6 lines
Diff to previous 1.91 , to selected 1.102

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.91 - (view) (annotate) - [select for diffs]
Mon Feb 9 01:20:15 2004 UTC (10 years, 2 months ago) by mikemac
Branch: MAIN
Changes since 1.90: +1 -1 lines
Diff to previous 1.90 , to selected 1.102
excess paran removed

Revision 1.90 - (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.89: +233 -201 lines
Diff to previous 1.89 , to selected 1.102
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.89 - (view) (annotate) - [select for diffs]
Wed Jan 21 08:59:13 2004 UTC (10 years, 2 months ago) by moore
Branch: MAIN
Changes since 1.88: +21 -8 lines
Diff to previous 1.88 , to selected 1.102
When an application frame has no clim-stream-panes and therefore no
viable *standard-input* and *standard-output*, bind the standard
stream variables to their current value, not nil. This was causing an
error in SBCL, which has type declarations on those variables, and
some of the demos.

Implement the :calling-frame initarg to
make-application-frame. Currently it just shares the caller's event
queue; I'm not sure if that's all it needs to do.

Change demodemo.lisp to use :calling-frame.

Revision 1.88 - (view) (annotate) - [select for diffs]
Tue Jan 20 16:07:25 2004 UTC (10 years, 3 months ago) by moore
Branch: MAIN
Changes since 1.87: +7 -1 lines
Diff to previous 1.87 , to selected 1.102
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.87 - (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.86: +16 -12 lines
Diff to previous 1.86 , to selected 1.102
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.86 - (view) (annotate) - [select for diffs]
Fri Nov 21 18:40:25 2003 UTC (10 years, 4 months ago) by hefner1
Branch: MAIN
Changes since 1.85: +8 -6 lines
Diff to previous 1.85 , to selected 1.102
Fixed :command-definer keyword to define-application-frame. It was using
the default name even when an alternate name was supplied.

Revision 1.85 - (view) (annotate) - [select for diffs]
Thu Nov 13 22:54:07 2003 UTC (10 years, 5 months ago) by moore
Branch: MAIN
Changes since 1.84: +37 -24 lines
Diff to previous 1.84 , to selected 1.102
Fixed Goatee problem with the area not being drawn initially.

Implement :move-cursor option to surrounding-output-with-border.

Use surrounding-output-with-border in accepting-values to make
better-looking entry fields.

Establish an abort restart in default-frame-top-level.

Paul Werkowski's fix for menu command names.

Added Raymond Toy's note about CLX and CMUCL.

Revision 1.84 - (view) (annotate) - [select for diffs]
Mon Nov 10 22:57:57 2003 UTC (10 years, 5 months ago) by hefner1
Branch: MAIN
CVS Tags: McCLIM-0-9
Changes since 1.83: +1 -0 lines
Diff to previous 1.83 , to selected 1.102
Need a #+CLIM-MP condition in DISOWN-FRAME as well, to prevent trying to
take the event queue of a sheet in single-process mode. (missed this in my
earlier commit)

Revision 1.83 - (view) (annotate) - [select for diffs]
Mon Nov 10 21:56:07 2003 UTC (10 years, 5 months ago) by moore
Branch: MAIN
Changes since 1.82: +1 -1 lines
Diff to previous 1.82 , to selected 1.102
Fix typo

Revision 1.82 - (view) (annotate) - [select for diffs]
Mon Nov 10 21:40:34 2003 UTC (10 years, 5 months ago) by moore
Branch: MAIN
Changes since 1.81: +24 -10 lines
Diff to previous 1.81 , to selected 1.102

Some cleanup and missing functions

Revision 1.81 - (view) (annotate) - [select for diffs]
Mon Nov 10 05:46:32 2003 UTC (10 years, 5 months ago) by moore
Branch: MAIN
Changes since 1.80: +13 -8 lines
Diff to previous 1.80 , to selected 1.102
Set up an input context for commands when there's no interactor pane.

Be more liberal in accepting clause arguments for tracking-pointer.

Translate from CLIM line-cap names to XLIB names.

Revision 1.80 - (view) (annotate) - [select for diffs]
Sat Nov 8 01:06:51 2003 UTC (10 years, 5 months ago) by hefner1
Branch: MAIN
Changes since 1.79: +2 -1 lines
Diff to previous 1.79 , to selected 1.102
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.79 - (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.78: +12 -5 lines
Diff to previous 1.78 , to selected 1.102
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.78 - (view) (annotate) - [select for diffs]
Tue Nov 4 14:52:17 2003 UTC (10 years, 5 months ago) by moore
Branch: MAIN
Changes since 1.77: +20 -1 lines
Diff to previous 1.77 , to selected 1.102
More scigraph hacking

Revision 1.77 - (view) (annotate) - [select for diffs]
Mon Nov 3 09:56:23 2003 UTC (10 years, 5 months ago) by moore
Branch: MAIN
Changes since 1.76: +2 -1 lines
Diff to previous 1.76 , to selected 1.102
Conditionalization (not complete) of scigraph for McCLIM and OpenMCL

Revision 1.76 - (view) (annotate) - [select for diffs]
Fri Oct 31 19:02:14 2003 UTC (10 years, 5 months ago) by hefner1
Branch: MAIN
Changes since 1.75: +18 -10 lines
Diff to previous 1.75 , to selected 1.102
In :before method on frame-input-context-track-pointer which handles
presentation highlighting, specialize the stream argument on
output-record-stream.

Factor most of frame-input-context-track-pointer into a seperate function,
frame-highlight-at-position, so tracking-pointer can highlight presentations
without kludgery of the event queue.

Revision 1.75 - (view) (annotate) - [select for diffs]
Thu Oct 23 05:59:14 2003 UTC (10 years, 5 months ago) by moore
Branch: MAIN
Changes since 1.74: +7 -1 lines
Diff to previous 1.74 , to selected 1.102
Christophe Rhodes' improved defgeneric definitions.

Early work on the partial command processor.

Revision 1.74 - (view) (annotate) - [select for diffs]
Mon Oct 13 23:34:09 2003 UTC (10 years, 6 months ago) by hefner1
Branch: MAIN
Changes since 1.73: +7 -6 lines
Diff to previous 1.73 , to selected 1.102
Frame top-levels are supposed to bind *default-frame-manager*. Added this
to the RUN-FRAME-TOP-LEVEL :AROUND method.

Revision 1.73 - (view) (annotate) - [select for diffs]
Sun Sep 28 15:24:03 2003 UTC (10 years, 6 months ago) by hefner1
Branch: MAIN
Changes since 1.72: +19 -17 lines
Diff to previous 1.72 , to selected 1.102
In DEFAULT-FRAME-TOP-LEVEL, if there is no interactor pane to use, call
SIMPLE-EVENT-LOOP.

Revision 1.72 - (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.71: +11 -7 lines
Diff to previous 1.71 , to selected 1.102
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.71 - (view) (annotate) - [select for diffs]
Fri Sep 12 22:52:27 2003 UTC (10 years, 7 months ago) by hefner1
Branch: MAIN
Changes since 1.70: +16 -13 lines
Diff to previous 1.70 , to selected 1.102
Factored the pane redisplay logic in the top level loop into its own function,
REDISPLAY-CHANGED-PANES.

Revision 1.70 - (view) (annotate) - [select for diffs]
Sun Aug 24 09:21:15 2003 UTC (10 years, 7 months ago) by hefner1
Branch: MAIN
Changes since 1.69: +10 -0 lines
Diff to previous 1.69 , to selected 1.102
Implemented REDISPLAY-FRAME-PANES.

Revision 1.69 - (view) (annotate) - [select for diffs]
Tue Aug 12 23:42:05 2003 UTC (10 years, 8 months ago) by mikemac
Branch: MAIN
Changes since 1.68: +51 -11 lines
Diff to previous 1.68 , to selected 1.102
initial attempt at implementing the :geometry option to define-application-frame

Revision 1.68 - (view) (annotate) - [select for diffs]
Sat Aug 9 01:34:01 2003 UTC (10 years, 8 months ago) by hefner1
Branch: MAIN
Changes since 1.67: +13 -1 lines
Diff to previous 1.67 , to selected 1.102
Optimizations for text output...

frames.lisp:
   Leave the stream text cursor invisible by default.

graphics.lisp:
   Make DO-GRAPHICS-WITH-OPTIONS-INTERNAL smarter about not changing the
   medium's ink, clipping region, text style, and line style, unless they've
   really changed.

panes.lisp:
   Removed some dead code (of my own).

recording.lisp:
   Rewrote RECOMPUTE-EXTENT-FOR-CHANGED-CHILD. For the most common case of
   the child growing while fully containing its original bounding rectangle,
   it is possible to compute the parent's new bounding rect without
   recomputing the extent of all the children. This is a significant
   improvement.

Revision 1.67 - (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.66: +3 -0 lines
Diff to previous 1.66 , to selected 1.102
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.66 - (view) (annotate) - [select for diffs]
Tue Jul 15 04:16:18 2003 UTC (10 years, 9 months ago) by hefner1
Branch: MAIN
Changes since 1.65: +19 -8 lines
Diff to previous 1.65 , to selected 1.102
Got OPEN-WINDOW-STREAM working.

There are a few things about window-streams that are still not perfect:

Output in the window stream does not seem to influence the scroll bars.
The existing code initialized the interior pane to an arbitrary size and
I've left it that way. This needs to be fixed.

Apparently the common mode of using window-streams was to have them share
the input buffer of their parent window. In this case, what to do when the
parent closes?

For window-streams with their own input buffer, I start a new thread and
run a minimal toplevel to handle events. If the window is instead sharing
the input buffer, shutdown of the main *application-pane*'s toplevel will
leave the window(s) in limbo with no one handling their events. There are
maybe three approaches to handling this:

1) Assume the parent window has responsibility for closing any window streams
   it opens. (bleh)
2) Record them somewhere and close them.
3) Make them work automagically.

To implement #3, we'll have to keep track of these window streams somewhere,
and arrange to have an event handling thread started in the case of the main
toplevel shutting down. A good argument against NOT using the :input-buffer
argument to OPEN-WINDOW-STREAM. Something to think about.

Revision 1.65 - (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.64: +2 -0 lines
Diff to previous 1.64 , to selected 1.102
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.64 - (view) (annotate) - [select for diffs]
Fri Jul 11 13:47:52 2003 UTC (10 years, 9 months ago) by moore
Branch: MAIN
Changes since 1.63: +15 -2 lines
Diff to previous 1.63 , to selected 1.102
Change presentation-subtypep for command-name and command.  See comment above
command-table-inherits-from-p.

Change menu code to throw menu-item presentation types instead of
commands; accept that in read-frame-command.  The menutest example
works again, although the highlighting is a bit broken.  clim-fig's
menus don't work yet; I need to figure out why clim-fig still needs
its own top-level to work.

Revision 1.63 - (view) (annotate) - [select for diffs]
Sat May 31 21:44:33 2003 UTC (10 years, 10 months ago) by gilbert
Branch: MAIN
Changes since 1.62: +4 -0 lines
Diff to previous 1.62 , to selected 1.102
LAYOUT-FRAME (APPLICATION-FRAME ...)

    Actually resize the top-level sheet. But don't if it does not
    really change its size.

Revision 1.62 - (view) (annotate) - [select for diffs]
Sat Mar 22 16:54:59 2003 UTC (11 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.61: +4 -4 lines
Diff to previous 1.61 , to selected 1.102
quote #: forms when needed

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

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

Revision 1.59 - (view) (annotate) - [select for diffs]
Tue Jan 28 08:17:41 2003 UTC (11 years, 2 months ago) by moore
Branch: MAIN
Changes since 1.58: +15 -8 lines
Diff to previous 1.58 , to selected 1.102
Output record values are stored in stream coordinates, not user (post
medium transformation) coordinates.

All medium state values are stored in output records by individual
mixin classes that are assembled for each output record type.

Medium parameters are only set in replay-output-record, not set and
restored.  Medium values are set/restored in replay.

Checkpoint of incremental redisplay, currently disabled.

Implement match-output-record.

Revision 1.58 - (view) (annotate) - [select for diffs]
Thu Nov 21 03:54:48 2002 UTC (11 years, 4 months ago) by mikemac
Branch: MAIN
Changes since 1.57: +0 -3 lines
Diff to previous 1.57 , to selected 1.102
remove redundant declarations and definitions

Revision 1.57 - (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.56: +5 -0 lines
Diff to previous 1.56 , to selected 1.102
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.56 - (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.55: +2 -8 lines
Diff to previous 1.55 , to selected 1.102
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.55 - (view) (annotate) - [select for diffs]
Sun Nov 10 14:56:09 2002 UTC (11 years, 5 months ago) by gilbert
Branch: MAIN
Changes since 1.54: +2 -3 lines
Diff to previous 1.54 , to selected 1.102
MAKE-PANES-GENERATE-PANES-FORM
    fixed visual glitch, menubars now come with their own raised border.

Revision 1.54 - (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.53: +5 -5 lines
Diff to previous 1.53 , to selected 1.102
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.53 - (view) (annotate) - [select for diffs]
Tue Sep 24 17:29:36 2002 UTC (11 years, 6 months ago) by moore
Branch: MAIN
Changes since 1.52: +1 -1 lines
Diff to previous 1.52 , to selected 1.102
Fixed typo

Revision 1.52 - (view) (annotate) - [select for diffs]
Tue Sep 24 01:56:29 2002 UTC (11 years, 6 months ago) by moore
Branch: MAIN
Changes since 1.51: +77 -32 lines
Diff to previous 1.51 , to selected 1.102
Fixed bug reported by Paul Werkowski; coordinate sequences can now be
lists or vectors.  Introduced a do-sequence macro that has similar
semantics to dotimes and dolist as well as features of map-sequence.

Implemented frame-state (except for :shrunk).  Changed timing of when
frames are generated, adopted and enabled to follow the spec.  Fixed
clim-fig to adapt to this new world order.  Disable the frame when the
top level function exits.

Remove erroring methods for copy-to-pixmap (stream ...) and friends.

Wrote a with-keywords-removed macro that attempts to be efficient
about about removing arguments from argument lists.

Revision 1.51 - (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.50: +2 -1 lines
Diff to previous 1.50 , to selected 1.102

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.50 - (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.49: +121 -92 lines
Diff to previous 1.49 , to selected 1.102
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.49 - (view) (annotate) - [select for diffs]
Sat Aug 3 08:28:47 2002 UTC (11 years, 8 months ago) by moore
Branch: MAIN
Changes since 1.48: +25 -16 lines
Diff to previous 1.48 , to selected 1.102
Make the pointer documentation window more pretty.  Add a
describe-presentation command in order to have some command bound to
the super modifier.

Move coordinates into the device-event class.  Supply coordinates for
key events.

Add make-load-form methods for named-color and standard-text-style.
This, plus some strategic eval-when (:compile-toplevel ...), allows us
to remove the defparameter/defconstant hack for CMUCL (and SBCL too,
though I haven't tested that and didn't do the work).

Mention possible problem with CLOCC and pcl::*defclass-times* et
al. in instructions.

Revision 1.48 - (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.47: +90 -3 lines
Diff to previous 1.47 , to selected 1.102
Further hacks to pointer documentation.  Indicate that different commands
are available with other modifier keys.

Tim

Revision 1.47 - (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.46: +103 -33 lines
Diff to previous 1.46 , to selected 1.102
First try at pointer documentation.

Revision 1.46 - (view) (annotate) - [select for diffs]
Wed Jul 31 11:56:33 2002 UTC (11 years, 8 months ago) by adejneka
Branch: MAIN
Changes since 1.45: +7 -6 lines
Diff to previous 1.45 , to selected 1.102
* (SLOT-VALUE frame 'MANAGER) -> %FRAME-MANAGER.

* DISOWN-FRAME (FRAME-MANAGER APPLICATION-FRAME): Don't call (SETF
  FRAME-MANAGER).

Revision 1.45 - (view) (annotate) - [select for diffs]
Tue Jul 30 16:40:39 2002 UTC (11 years, 8 months ago) by adejneka
Branch: MAIN
Changes since 1.44: +2 -2 lines
Diff to previous 1.44 , to selected 1.102
* Small fixup.

Revision 1.44 - (view) (annotate) - [select for diffs]
Mon Jul 15 13:22:54 2002 UTC (11 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.43: +2 -2 lines
Diff to previous 1.43 , to selected 1.102
* RUN-FRAME-TOP-LEVEL: Added &KEY arguments.

Revision 1.43 - (view) (annotate) - [select for diffs]
Fri Jul 12 06:30:51 2002 UTC (11 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.42: +3 -3 lines
Diff to previous 1.42 , to selected 1.102
* Fixed small typos.

Revision 1.42 - (view) (annotate) - [select for diffs]
Tue Jul 9 17:18:06 2002 UTC (11 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.41: +1 -1 lines
Diff to previous 1.41 , to selected 1.102
DEFAULT-FRAME-TOPLEVEIL: Clear panes with their history.

Revision 1.41 - (view) (annotate) - [select for diffs]
Sun Jul 7 06:20:52 2002 UTC (11 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.40: +5 -8 lines
Diff to previous 1.40 , to selected 1.102
* Fixed CLIM-STREAM-PANE for single-process mode.

Revision 1.40 - (view) (annotate) - [select for diffs]
Sun Jun 30 08:19:00 2002 UTC (11 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.39: +6 -4 lines
Diff to previous 1.39 , to selected 1.102
* DEFAULT-FRAME-TOPLEVEL: Clear window with WINDOW-ERASE-VIEWPORT
  instead of WINDOW-CLEAR.

Revision 1.39 - (view) (annotate) - [select for diffs]
Thu Jun 27 17:25:09 2002 UTC (11 years, 9 months ago) by gilbert
Branch: MAIN
Changes since 1.38: +11 -8 lines
Diff to previous 1.38 , to selected 1.102
GENERATE-PANES :after t application-frame

    I invoke ALLOCATE-SPACE now to have sheet's nicely layout, when
    the application frame eventually gets mapped.

[hopefully last commit for now...]

Revision 1.38 - (view) (annotate) - [select for diffs]
Tue Jun 25 02:01:41 2002 UTC (11 years, 9 months ago) by moore
Branch: MAIN
Changes since 1.37: +28 -6 lines
Diff to previous 1.37 , to selected 1.102
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.37 - (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.36: +4 -2 lines
Diff to previous 1.36 , to selected 1.102
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.36 - (view) (annotate) - [select for diffs]
Mon May 20 20:18:03 2002 UTC (11 years, 11 months ago) by mikemac
Branch: MAIN
Changes since 1.35: +3 -12 lines
Diff to previous 1.35 , to selected 1.102
clean up a bunch of ACL compiler warnings

Revision 1.35 - (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.34: +12 -11 lines
Diff to previous 1.34 , to selected 1.102
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.34 - (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.33: +8 -6 lines
Diff to previous 1.33 , to selected 1.102
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.33 - (view) (annotate) - [select for diffs]
Tue Apr 30 09:49:01 2002 UTC (11 years, 11 months ago) by gilbert
Branch: MAIN
Changes since 1.32: +1 -1 lines
Diff to previous 1.32 , to selected 1.102
More removal of spurious warnings by
- adding more declarations to decls.lisp
- moving common code from gadgets.lisp to panes.lisp
- also moving draw-design to graphics.lisp

Revision 1.32 - (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.31: +2 -2 lines
Diff to previous 1.31 , to selected 1.102
OpenGL backend now draws stuff (but not much else).
Misc cleaning up, some regions debugging.

Revision 1.31 - (view) (annotate) - [select for diffs]
Sun Apr 28 07:54:33 2002 UTC (11 years, 11 months ago) by gilbert
Branch: MAIN
Changes since 1.30: +5 -1 lines
Diff to previous 1.30 , to selected 1.102
RUN-FRAME-TOP-LEVEL
    added ignore declaration

MAKE-SINGLE-PANE-GENERATE-PANES-FORM
    Switched LISTP into CONSP.
    Is that the right thing to do?

Revision 1.30 - (view) (annotate) - [select for diffs]
Tue Apr 23 11:52:13 2002 UTC (11 years, 11 months ago) by pixel
Branch: MAIN
Changes since 1.29: +1 -1 lines
Diff to previous 1.29 , to selected 1.102
Fixed a typo in frames.lisp, *multiprocesing-p* with 2 p.

Revision 1.29 - (view) (annotate) - [select for diffs]
Sun Apr 21 18:46:26 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.28: +0 -20 lines
Diff to previous 1.28 , to selected 1.102
Remove reference to sb-pcl in sheet-adopt-child.

Add the medium- accessors for sheets.

Get Goatee to compile.

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: +82 -15 lines
Diff to previous 1.27 , to selected 1.102
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: +24 -22 lines
Diff to previous 1.26 , to selected 1.102
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]
Wed Apr 3 01:08:30 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.25: +4 -1 lines
Diff to previous 1.25 , to selected 1.102
Don't depend on condition slot reader functions being generic functions.  It might be required by the HyperSpec, but CMUCL doesn't work that way and we don't need to rely on the behavior.

Revision 1.25 - (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.24: +1 -1 lines
Diff to previous 1.24 , to selected 1.102
fixed a couple of typos

Revision 1.24 - (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.23: +28 -4 lines
Diff to previous 1.23 , to selected 1.102
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.23 - (view) (annotate) - [select for diffs]
Thu Feb 28 16:51:39 2002 UTC (12 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.22: +7 -4 lines
Diff to previous 1.22 , to selected 1.102
added define-frame-command and define-command support - still doesn't define the unnamed parser function

Revision 1.22 - (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.21: +13 -6 lines
Diff to previous 1.21 , to selected 1.102
make window-manager-delete-event work

Revision 1.21 - (view) (annotate) - [select for diffs]
Wed Feb 27 21:14:20 2002 UTC (12 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.20: +8 -6 lines
Diff to previous 1.20 , to selected 1.102
turn off the prompt since ACCEPT will do that

Revision 1.20 - (view) (annotate) - [select for diffs]
Tue Feb 26 15:45:02 2002 UTC (12 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.19: +30 -22 lines
Diff to previous 1.19 , to selected 1.102
first cut at running the display-function

Revision 1.19 - (view) (annotate) - [select for diffs]
Sat Feb 16 02:16:00 2002 UTC (12 years, 2 months ago) by gilbert
Branch: MAIN
Changes since 1.18: +3 -0 lines
Diff to previous 1.18 , to selected 1.102
MAKE-PANES-GENERATE-PANES-FORM
    Panes generated in the :PANES section no are named automatically
    by evil slot access.

Revision 1.18 - (view) (annotate) - [select for diffs]
Sat Jan 5 05:38:47 2002 UTC (12 years, 3 months ago) by moore
Branch: MAIN
Changes since 1.17: +72 -0 lines
Diff to previous 1.17 , to selected 1.102
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.17 - (view) (annotate) - [select for diffs]
Fri Dec 28 17:24:58 2001 UTC (12 years, 3 months ago) by moore
Branch: MAIN
Changes since 1.16: +2 -2 lines
Diff to previous 1.16 , to selected 1.102
Implement extended input streams, stub of input editing streams and enough of
encapsulating streams to support input editing.  A few random bug fixes too.

Revision 1.16 - (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.15: +1 -0 lines
Diff to previous 1.15 , to selected 1.102
remove compiler warnings for ACL

Revision 1.15 - (view) (annotate) - [select for diffs]
Wed Oct 31 23:32:15 2001 UTC (12 years, 5 months ago) by mikemac
Branch: MAIN
Changes since 1.14: +1 -1 lines
Diff to previous 1.14 , to selected 1.102
typo fix from Paul Werkowshi

Revision 1.14 - (view) (annotate) - [select for diffs]
Fri Jul 27 09:04:40 2001 UTC (12 years, 8 months ago) by adejneka
Branch: MAIN
Changes since 1.13: +2 -1 lines
Diff to previous 1.13 , to selected 1.102
* DEFAULT-FRAME-TOP-LEVEL (APPLICATION-FRAME): Do STREAM-FINISH-OUTPUT after
  printing a prompt.

Revision 1.13 - (view) (annotate) - [select for diffs]
Fri Jul 20 07:01:02 2001 UTC (12 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.12: +91 -9 lines
Diff to previous 1.12 , to selected 1.102
* Generic function descriptions added

* FIND-PANE-IF: New function

* FIND-PANE-OF-TYPE: Use FIND-PANE-IF

* FRAME-CURRENT-PANES, GET-FRAME-PANE: New functions

* FIND-PANE-NAMED, FRAME-POINTER-DOCUMENTATION-OUTPUT: Search through
  the whole tree of panes

Revision 1.12 - (view) (annotate) - [select for diffs]
Wed Jul 18 05:54:17 2001 UTC (12 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.11: +3 -5 lines
Diff to previous 1.11 , to selected 1.102
* FIND-PANE-NAMED: use FIND
* READ-FRAME-COMMAND: STREAM argument is &KEY

Revision 1.11 - (view) (annotate) - [select for diffs]
Mon Mar 19 19:04:19 2001 UTC (13 years, 1 month ago) by hatchond
Branch: MAIN
Changes since 1.10: +3 -3 lines
Diff to previous 1.10 , to selected 1.102
Change the compute-and-set-space for compose-space

Revision 1.10 - (view) (annotate) - [select for diffs]
Sat Jan 20 22:34:39 2001 UTC (13 years, 2 months ago) by cvs
Branch: MAIN
Changes since 1.9: +17 -16 lines
Diff to previous 1.9 , to selected 1.102
bug fixes by Paul Werkowski

Revision 1.9 - (view) (annotate) - [select for diffs]
Sat Dec 16 14:07:02 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.8: +3 -3 lines
Diff to previous 1.8 , to selected 1.102
Replaced calls to compose-space by calls to compute-and-set-space.

Revision 1.8 - (view) (annotate) - [select for diffs]
Fri Dec 8 17:16:13 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.7: +29 -28 lines
Diff to previous 1.7 , to selected 1.102
changed with-look-and-feel mechanism, execute-command just calls eval - still a kludge

Revision 1.7 - (view) (annotate) - [select for diffs]
Mon Dec 4 14:54:30 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.6: +40 -0 lines
Diff to previous 1.6 , to selected 1.102
Added support for menu frames.  Didn't factor commonalities between
application frames and menu frames yet.

Revision 1.6 - (view) (annotate) - [select for diffs]
Wed Nov 29 19:44:35 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.5: +31 -26 lines
Diff to previous 1.5 , to selected 1.102
changed generate-panes algorithm to allow pane constructor functions

Revision 1.5 - (view) (annotate) - [select for diffs]
Wed Nov 22 09:06:26 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.4: +35 -39 lines
Diff to previous 1.4 , to selected 1.102
Exchanged order of definitions of frame-manager and frame classes to avoid
compile-time message.

Removed unused definition of calculate-standard-panes.

Changed order between adopt-child and compose-space.  Now, the mirrors of
the sheets in the pane hierarchy are realized first.  Their sizes are
arbitrarily assigned, since the space allocation protocol has not been
invoked yet.  Then compose-space and allocate-space are run to adjust all
the sizes.  This order allows us to determine space requirements of certain
panes from their contents, which requires the pane to be grafted so that
font sizes are known.

Revision 1.4 - (view) (annotate) - [select for diffs]
Fri Aug 25 15:54:23 2000 UTC (13 years, 7 months ago) by cvs
Branch: MAIN
Changes since 1.3: +6 -2 lines
Diff to previous 1.3 , to selected 1.102
Changed type of top-level sheet to make it possible for it to react
immediately to resize events.

Fixed copyright message to reflect modifications.

Revision 1.3 - (view) (annotate) - [select for diffs]
Tue Aug 22 10:38:36 2000 UTC (13 years, 7 months ago) by cvs
Branch: MAIN
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 , to selected 1.102
Improved the way adopt-frame creates the panes.

Revision 1.2 - (view) (annotate) - [select for diffs]
Mon Jun 12 12:26:43 2000 UTC (13 years, 10 months ago) by cvs
Branch: MAIN
Changes since 1.1: +2 -1 lines
Diff to previous 1.1 , to selected 1.102
Don't redirect *error-output* during development to faclitate debugging

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.137 , to selected 1.102
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 1.102
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