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

Log of /mcclim/panes.lisp

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 1.197 - (view) (annotate) - [select for diffs]
Sat Aug 1 22:11:06 2009 UTC (4 years, 8 months ago) by gbaumann
Branch: MAIN
CVS Tags: HEAD
Changes since 1.196: +2 -15 lines
Diff to previous 1.196
(ALLOCATE-SPACE SCROLLER-PANE T T)
    Missed one *SCROLLBAR-THICKNESS*

SCROLL-AREA
    Removed this ticking bomb.

Revision 1.196 - (view) (annotate) - [select for diffs]
Sat Aug 1 21:27:13 2009 UTC (4 years, 8 months ago) by gbaumann
Branch: MAIN
Changes since 1.195: +38 -17 lines
Diff to previous 1.195
I like my scroll bars left, Hefner wants them right. So I made it
tweakable. Default is right though.

CLIM-EXTENSIONS:*DEFAULT-VERTICAL-SCROLL-BAR-POSITION*
    New variable^Wparameter intented to be settable by the user.

VERTICAL-SCROLL-BAR-POSITION slot of SCROLLER-PANE
:VERTICAL-SCROLL-BAR-POSITION init arg of SCROLLER-PANE
    New.

(ALLOCATE-SPACE SCROLLER-PANE T T)
    Use it. Do not use *SCROLLBAR-THICKNESS*, but rely on the space
    requirements of the scroll bars.

Revision 1.195 - (view) (annotate) - [select for diffs]
Wed Jun 3 20:33:16 2009 UTC (4 years, 10 months ago) by ahefner
Branch: MAIN
Changes since 1.194: +11 -11 lines
Diff to previous 1.194
Handle selection-notify-events in the text gadget and input editor.
For communicating with the input editor, signal and handle a
selection-notify condition from the lower level event handler (I can't
think of a better approach to communicating across the layers). Disable
the old default of pasting by synthesizing keypress events, but make it
available via paste-as-keypress-mixin.

Revision 1.194 - (view) (annotate) - [select for diffs]
Fri Dec 19 08:58:14 2008 UTC (5 years, 4 months ago) by ahefner
Branch: MAIN
Changes since 1.193: +8 -3 lines
Diff to previous 1.193
Guard against infinite recursion in fit-pane-to-output in the case that
compose-space calls the display function to compute the size, and the
display function calls us (and we call compose space..)

Revision 1.193 - (view) (annotate) - [select for diffs]
Sun Nov 30 22:22:29 2008 UTC (5 years, 4 months ago) by ahefner
Branch: MAIN
Changes since 1.192: +16 -7 lines
Diff to previous 1.192
In fit-pane-to-output, accomodate the space preferences of the pane by
calling compose-space, so that an empty window can still enforce a
minimum size. Fixes the disappearing pointer documentation pane bug.

Revision 1.192 - (view) (annotate) - [select for diffs]
Sun Nov 9 19:58:26 2008 UTC (5 years, 5 months ago) by ahefner
Branch: MAIN
Changes since 1.191: +15 -2 lines
Diff to previous 1.191
Fit space requirements to output history bounding rectangle automatically
after redisplay and drawing of graphs/tables.

Revision 1.191 - (view) (annotate) - [select for diffs]
Thu Aug 21 22:34:29 2008 UTC (5 years, 7 months ago) by ahefner
Branch: MAIN
Changes since 1.190: +11 -7 lines
Diff to previous 1.190
Move the cut/paste and mouse scroll mixins from clim-stream-pane into
subclasses, so that it's possible to implement subclasses of
clim-stream-pane without them (presumably, if you want the extra
features beyond the spec, you'll inherit from application-pane anyway).
Move the mixin names into clim-extensions to make them accessible to the
user.

Revision 1.190 - (view) (annotate) - [select for diffs]
Fri May 9 19:12:14 2008 UTC (5 years, 11 months ago) by thenriksen
Branch: MAIN
Changes since 1.189: +2 -1 lines
Diff to previous 1.189
Specify :orientation default initarg for radio button gadgets.

Revision 1.189 - (view) (annotate) - [select for diffs]
Wed Jan 30 21:21:44 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
CVS Tags: McCLIM-0-9-6
Changes since 1.188: +4 -1 lines
Diff to previous 1.188
WITH-INPUT-EDITING now works really well with Drei.

Revision 1.188 - (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.187: +14 -3 lines
Diff to previous 1.187
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.187 - (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.186: +18 -2 lines
Diff to previous 1.186
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.186 - (view) (annotate) - [select for diffs]
Tue Jan 1 23:23:07 2008 UTC (6 years, 3 months ago) by thenriksen
Branch: MAIN
Changes since 1.185: +5 -8 lines
Diff to previous 1.185
Removed ancient and seemingly now-unnecessary gilberthack.

Revision 1.185 - (view) (annotate) - [select for diffs]
Sun Dec 16 14:27:22 2007 UTC (6 years, 4 months ago) by thenriksen
Branch: MAIN
Changes since 1.184: +2 -2 lines
Diff to previous 1.184
Fixed the space-requirements of label-pane so that it no longer has a
max-width of the width of the actual label text. It still has a
max-height, however, I'm not sure whether that's correct.

Revision 1.184 - (view) (annotate) - [select for diffs]
Tue Aug 21 21:45:49 2007 UTC (6 years, 8 months ago) by thenriksen
Branch: MAIN
CVS Tags: McCLIM-0-9-5
Changes since 1.183: +55 -23 lines
Diff to previous 1.183
Attempt at making layout panes (scrollers in particular) less likely
to eat space requirements. Issues may still crop up, I do not vouch
for its correctness, but the old way was certainly just wrong. Please
test.

Revision 1.183 - (view) (annotate) - [select for diffs]
Sat Jul 21 13:18:59 2007 UTC (6 years, 9 months ago) by rstrandh
Branch: MAIN
Changes since 1.182: +3 -1 lines
Diff to previous 1.182
more IGNORE declarations

Revision 1.182 - (view) (annotate) - [select for diffs]
Tue Mar 20 01:43:55 2007 UTC (7 years, 1 month ago) by ahefner
Branch: MAIN
Changes since 1.181: +3 -2 lines
Diff to previous 1.181
Small hacks that appear to make output to unadopted sheets work.

Revision 1.181 - (view) (annotate) - [select for diffs]
Sun Mar 4 15:08:00 2007 UTC (7 years, 1 month ago) by thenriksen
Branch: MAIN
Changes since 1.180: +7 -5 lines
Diff to previous 1.180
Fixed issue reported by Samium Gromoff where the :scroll-bars
parameter would be ignored in `open-window-stream'.

Revision 1.180 - (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.179: +23 -3 lines
Diff to previous 1.179
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.179 - (view) (annotate) - [select for diffs]
Mon Feb 5 03:02:59 2007 UTC (7 years, 2 months ago) by ahefner
Branch: MAIN
Changes since 1.178: +48 -36 lines
Diff to previous 1.178
For mouse wheel scrolling, search upward through the pane hierarchy for a
viewport to scroll. This fixes mouse wheel scrolling in Clouseau.

Assorted other minor changes.

Revision 1.178 - (view) (annotate) - [select for diffs]
Tue Jan 23 07:51:10 2007 UTC (7 years, 2 months ago) by ahefner
Branch: MAIN
Changes since 1.177: +19 -5 lines
Diff to previous 1.177
Fix typo in note-space-requirements-changed which caused unnecessary
scrolling. For reference, restored the original scroll-extent call as
a comment.

Revision 1.177 - (view) (annotate) - [select for diffs]
Sun Jan 7 19:53:05 2007 UTC (7 years, 3 months ago) by thenriksen
Branch: MAIN
CVS Tags: McCLIM-0-9-4, mcclim-0-9-4
Changes since 1.176: +3 -2 lines
Diff to previous 1.176
From the spec:

"Returns the viewport region of the CLIM stream pane window. If the
window is not scrollable, and hence has no viewport, this will region
[sic] `sheet-region' of window."

Revision 1.176 - (view) (annotate) - [select for diffs]
Sat Dec 23 11:42:43 2006 UTC (7 years, 3 months ago) by ahefner
Branch: MAIN
Changes since 1.175: +4 -6 lines
Diff to previous 1.175
Move the vertical scroll bar to the right-hand side of the window.

Revision 1.175 - (view) (annotate) - [select for diffs]
Tue Dec 19 04:02:14 2006 UTC (7 years, 4 months ago) by ahefner
Branch: MAIN
Changes since 1.174: +7 -3 lines
Diff to previous 1.174
In make-pane, convert keyword types to their corresponding symbols in the
CLIM package.

Revision 1.174 - (view) (annotate) - [select for diffs]
Tue Dec 5 02:08:44 2006 UTC (7 years, 4 months ago) by rgoldman
Branch: MAIN
Changes since 1.173: +7 -6 lines
Diff to previous 1.173
Handle :both (clim 2.2) as synonym for t in :scroll-bars.

Revision 1.173 - (view) (annotate) - [select for diffs]
Wed Nov 8 01:18:22 2006 UTC (7 years, 5 months ago) by thenriksen
Branch: MAIN
Changes since 1.172: +3 -2 lines
Diff to previous 1.172
Committed changes necessary to support Drei (and non-Goatee input
editors at all). Also some indirection permitting run-time selection
of editor substrate and the code for :text-editor and :text-field
gadgets.

Revision 1.172 - (view) (annotate) - [select for diffs]
Sat Oct 28 16:44:13 2006 UTC (7 years, 5 months ago) by thenriksen
Branch: MAIN
CVS Tags: McCLIM-0-9-3
Changes since 1.171: +15 -10 lines
Diff to previous 1.171
Add nasty hack and change :end-of-line-action for interactor panes.

Revision 1.171 - (view) (annotate) - [select for diffs]
Mon Oct 16 23:53:52 2006 UTC (7 years, 6 months ago) by thenriksen
Branch: MAIN
Changes since 1.170: +24 -1 lines
Diff to previous 1.170
Add some convenience to viewports.

Revision 1.170 - (view) (annotate) - [select for diffs]
Sun Jul 9 06:23:22 2006 UTC (7 years, 9 months ago) by ahefner
Branch: MAIN
Changes since 1.169: +39 -1 lines
Diff to previous 1.169
Move scroll wheel code to panes.lisp, since it has nothing to do with
event queues.

Revision 1.169 - (view) (annotate) - [select for diffs]
Wed Mar 29 10:43:37 2006 UTC (8 years ago) by tmoore
Branch: MAIN
Changes since 1.168: +48 -40 lines
Diff to previous 1.168

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.168 - (view) (annotate) - [select for diffs]
Mon Mar 27 10:46:11 2006 UTC (8 years ago) by crhodes
Branch: MAIN
Changes since 1.167: +3 -2 lines
Diff to previous 1.167
Patch from Paul Werkowski for with-output-as-gadget.  Still not good,
but better, as I understand it.

Revision 1.167 - (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.166: +3 -1 lines
Diff to previous 1.166
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.166 - (view) (annotate) - [select for diffs]
Fri Dec 30 17:50:01 2005 UTC (8 years, 3 months ago) by crhodes
Branch: MAIN
Changes since 1.165: +3 -3 lines
Diff to previous 1.165
Merge patch from Tim Daly ("apparent typos", sent 2005-10-16)

Revision 1.165 - (view) (annotate) - [select for diffs]
Thu Dec 1 12:06:40 2005 UTC (8 years, 4 months ago) by gbaumann
Branch: MAIN
Changes since 1.164: +4 -1 lines
Diff to previous 1.164
more IGNORE declarations

Revision 1.164 - (view) (annotate) - [select for diffs]
Wed Nov 30 10:30:50 2005 UTC (8 years, 4 months ago) by gbaumann
Branch: MAIN
Changes since 1.163: +61 -17 lines
Diff to previous 1.163
HRACK-PANE, VRACK-PANE
    These panes are back to their old behavior to force the minor
    dimension of their children to their own minor dimension.

SCROLLER-PANE
    If there are no scroll bars, we allow the scroll-pane to shrink up
    until its spacing.

Revision 1.163 - (view) (annotate) - [select for diffs]
Tue Nov 29 14:46:53 2005 UTC (8 years, 4 months ago) by gbaumann
Branch: MAIN
Changes since 1.162: +16 -6 lines
Diff to previous 1.162
SCROLLER-PANE
    We now interpret the x-spacing and y-spacing options as extra
    space to put around the viewport. The default for that is now 4 to
    reading what is in a stream pane easier.

Revision 1.162 - (view) (annotate) - [select for diffs]
Tue Nov 29 13:18:28 2005 UTC (8 years, 4 months ago) by gbaumann
Branch: MAIN
Changes since 1.161: +7 -4 lines
Diff to previous 1.161
LOWERED-PANE
    border-width defaults to 2 now.

LABEL-PANE
    align-y defaults to :center now.

Revision 1.161 - (view) (annotate) - [select for diffs]
Tue Nov 29 10:41:59 2005 UTC (8 years, 4 months ago) by gbaumann
Branch: MAIN
Changes since 1.160: +20 -7 lines
Diff to previous 1.160
SCROLLER-PANE
    The SCROLL-BAR initarg now also takes NIL.

Revision 1.160 - (view) (annotate) - [select for diffs]
Mon Nov 28 15:24:37 2005 UTC (8 years, 4 months ago) by gbaumann
Branch: MAIN
Changes since 1.159: +14 -14 lines
Diff to previous 1.159
LABEL-PANE
    We border is now drawn in groove style.

Revision 1.159 - (view) (annotate) - [select for diffs]
Mon Nov 28 15:22:06 2005 UTC (8 years, 4 months ago) by gbaumann
Branch: MAIN
Changes since 1.158: +3 -3 lines
Diff to previous 1.158
TABLE-PANE
    As for HBOX and friends, children are now aligned according to
    their align options.

Revision 1.158 - (view) (annotate) - [select for diffs]
Mon Nov 28 15:17:28 2005 UTC (8 years, 4 months ago) by gbaumann
Branch: MAIN
Changes since 1.157: +61 -24 lines
Diff to previous 1.157
HBOX, VBOX, HRACK, VRACK
    - We layout proportional content more to the application
      programmer's expectations.

    - When composing space, we maximize the max-minor space
      requirement of children now, instead of minimizing. This avoids
      the effect, that something becomes fixed size as soon as a child
      is fixed sized. The behavior now is, that a box pane is fixed
      size only if every child is fixed size too.

    - children are aligned according to their align-x and align-y
      options.

Revision 1.157 - (view) (annotate) - [select for diffs]
Mon Nov 28 13:23:53 2005 UTC (8 years, 4 months ago) by gbaumann
Branch: MAIN
Changes since 1.156: +50 -42 lines
Diff to previous 1.156
TABLE-PANE
    The table pane now recognizes x-spacing and y-spacing, but units
    are not tested.

Revision 1.156 - (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.155: +10 -1 lines
Diff to previous 1.155
Implemented double buffering for CLIM stream panes that want it.
Use the `:double-buffering t' initarg to obtain it.

Revision 1.155 - (view) (annotate) - [select for diffs]
Mon Aug 29 22:39:31 2005 UTC (8 years, 7 months ago) by mretzlaff
Branch: MAIN
Changes since 1.154: +14 -10 lines
Diff to previous 1.154
Added a method PANE-BORDER that works just like PANE-VIEWPORT and
PANE-SCROLLER, only for BORDER-PANEs. It is not in the spec, but so
is the BORDER-PANE as a whole. (And, yes, I needed it.)

In addition to this it changes the IFs in PANE-VIEWPORT and
PANE-SCROLLER to WHENs (both had no else-forms).

(Minor change:
 Five changes in the comments: The section titles of the different
 panes are made consistent. (Most of them were of the pattern
 "FOO PANE", only five of them "FOO-PANE"; as I liked the former
 pattern more, they are now all of that pattern.))

Revision 1.154 - (view) (annotate) - [select for diffs]
Fri Aug 19 02:20:35 2005 UTC (8 years, 8 months ago) by rstrandh
Branch: MAIN
Changes since 1.153: +2 -1 lines
Diff to previous 1.153
Patch to panes.lisp from Max-Gerd Retzlaff.

Revision 1.153 - (view) (annotate) - [select for diffs]
Wed Jun 22 09:49:15 2005 UTC (8 years, 10 months ago) by tmoore
Branch: MAIN
Changes since 1.152: +4 -2 lines
Diff to previous 1.152
Added some improvements to accept-from-string so that random accept
methods and default processing are more likely to work with it.

Added a null command and null-command presentation type so that the
REPL doesn't print something obnoxious when the user enters an empty
command.

Some fixes to default processing.

Revision 1.152 - (view) (annotate) - [select for diffs]
Mon Mar 14 22:03:05 2005 UTC (9 years, 1 month ago) by tmoore
Branch: MAIN
Changes since 1.151: +188 -167 lines
Diff to previous 1.151
Start removing uses of the infamous dada macro.

Revision 1.151 - (view) (annotate) - [select for diffs]
Tue Feb 22 07:02:18 2005 UTC (9 years, 1 month ago) by ahefner
Branch: MAIN
CVS Tags: McCLIM-0-9-1
Changes since 1.150: +2 -1 lines
Diff to previous 1.150
Fix to window-clear (close current text output before clearing output
history, else hilarity ensues), provided by Alastair Bridgewater.

Revision 1.150 - (view) (annotate) - [select for diffs]
Tue Feb 22 03:09:18 2005 UTC (9 years, 1 month ago) by ahefner
Branch: MAIN
Changes since 1.149: +5 -2 lines
Diff to previous 1.149
Dummy implementation of restraining-pane. It doesn't really work, but it
should if the layout protocol worked as specified. This is still an
improvement over the previous version, which didn't display its children
at all.

Revision 1.149 - (view) (annotate) - [select for diffs]
Tue Feb 1 03:08:27 2005 UTC (9 years, 2 months ago) by ahefner
Branch: MAIN
Changes since 1.148: +38 -34 lines
Diff to previous 1.148
Attempt to remedy bit rot in grid-pane.

Revision 1.148 - (view) (annotate) - [select for diffs]
Fri Jan 21 11:01:37 2005 UTC (9 years, 3 months ago) by ahefner
Branch: MAIN
Changes since 1.147: +3 -1 lines
Diff to previous 1.147
Implement label option to open-window-stream.

Revision 1.147 - (view) (annotate) - [select for diffs]
Sun Jan 2 05:26:44 2005 UTC (9 years, 3 months ago) by ahefner
Branch: MAIN
Changes since 1.146: +4 -1 lines
Diff to previous 1.146
Added comment in panes.lisp noting the the :x-spacing, :y-spacing, and
:spacing initargs don't appear to work for grid and table panes.

Revision 1.146 - (view) (annotate) - [select for diffs]
Tue Dec 7 04:49:51 2004 UTC (9 years, 4 months ago) by hefner1
Branch: MAIN
Changes since 1.145: +2 -2 lines
Diff to previous 1.145
Merging text selection functionality, implemented by Gilbert Baumann.

Text selection functions are provided by cut-and-paste-mixin,
tentatively added to clim-stream-pane. Possibly we want to move it
further down the class hierarchy, so users can define stream panes
without interference from the selection code.


Interaction implemented:

 Shift-Mouse-L down: clear active selection and set the first point
 Shift-Mouse-L drag: drag the second point
 Shift-Mouse-L up:   set the second point

 Shift-Mouse-R down: pick the nearest point, if any
 Shift-Mouse-R drag: drag said point
 Shift-Mouse-R up:   leave said point where it was dragged to.

 Shift-Mouse-M:      paste

Revision 1.145 - (view) (annotate) - [select for diffs]
Sun Nov 21 00:01:21 2004 UTC (9 years, 5 months ago) by gilbert
Branch: MAIN
Changes since 1.144: +18 -3 lines
Diff to previous 1.144
The BOX-LAYOUT-MIXIN class now listens to REORDER-SHEETS. So that one
can now rearrange children of say a VBOX by calling REORDER-SHEETS.

Revision 1.144 - (view) (annotate) - [select for diffs]
Fri Nov 12 06:39:15 2004 UTC (9 years, 5 months ago) by hefner1
Branch: MAIN
Changes since 1.143: +15 -6 lines
Diff to previous 1.143
Added *double-click-delay*, *double-click-max-travel* pertaining to
double-click detection (which is still not implemented, but the option-pane
is doing it manually).

Revision 1.143 - (view) (annotate) - [select for diffs]
Sun Oct 31 01:46:31 2004 UTC (9 years, 5 months ago) by hefner1
Branch: MAIN
Changes since 1.142: +25 -1 lines
Diff to previous 1.142
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.142 - (view) (annotate) - [select for diffs]
Sun Sep 26 15:57:38 2004 UTC (9 years, 6 months ago) by moore
Branch: MAIN
Changes since 1.141: +28 -18 lines
Diff to previous 1.141
Support for UPDATING-OUTPUT where the display records are moved around
during the course of redisplay. In particular, UPDATING-OUTPUT now
works inside of tables.

Get stream-clear-output from host CL.

Revision 1.141 - (view) (annotate) - [select for diffs]
Fri Apr 23 19:29:49 2004 UTC (9 years, 11 months ago) by moore
Branch: MAIN
Changes since 1.140: +44 -46 lines
Diff to previous 1.140
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.140 - (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.139: +2 -1 lines
Diff to previous 1.139
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.139 - (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.138: +5 -6 lines
Diff to previous 1.138
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.138 - (view) (annotate) - [select for diffs]
Thu Jan 22 20:14:59 2004 UTC (10 years, 3 months ago) by moore
Branch: MAIN
Changes since 1.137: +3 -3 lines
Diff to previous 1.137
Fix some broken slot types

Revision 1.137 - (view) (annotate) - [select for diffs]
Tue Jan 20 16:07:26 2004 UTC (10 years, 3 months ago) by moore
Branch: MAIN
Changes since 1.136: +9 -7 lines
Diff to previous 1.136
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.136 - (view) (annotate) - [select for diffs]
Tue Dec 16 23:20:18 2003 UTC (10 years, 4 months ago) by hefner1
Branch: MAIN
Changes since 1.135: +6 -3 lines
Diff to previous 1.135
Move default foreground/background for the pointer documentaion pane into a
defparameter, so that certain malcontents can reconfigure it more easily.

See CLIMI:*default-pointer-documentation-background*,
    CLIMI:*default-pointer-documentation-foreground*

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

Some work-in-progress on window streams

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

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

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

Add note about run-test

Revision 1.134 - (view) (annotate) - [select for diffs]
Tue Nov 11 23:45:15 2003 UTC (10 years, 5 months ago) by moore
Branch: MAIN
CVS Tags: McCLIM-0-9
Changes since 1.133: +8 -2 lines
Diff to previous 1.133

Fixed some small bugs that were affecting the demos. clim-fig doesn't
need its own frame-read-command method anymore; in fact, it's breaking
menus.  Added a default method on pane-viewport-region for postscript
streams.

Added README file.

Added lacuna to the TODO file.

Revision 1.133 - (view) (annotate) - [select for diffs]
Mon Oct 20 01:29:05 2003 UTC (10 years, 6 months ago) by hefner1
Branch: MAIN
Changes since 1.132: +4 -11 lines
Diff to previous 1.132
Various changes for WITH-OUTPUT-AS-GADGET.

Here's what works:
 * Embedding gadgets in stream panes.
 * Gadget panes will be moved if their containing output record is moved,
   either directly or by moving a parent.
 * Deleting the gadget-output-record or its parents will remove the gadget.
 * Adding the gadget-output-record back into a sheet will restore the gadget.

What needs to be done:
 * Figure out how to integrate gadgets with presentations

Summary of changes:
 * Two new methods, NOTE-OUTPUT-RECORD-[GOT,LOST]-SHEET, needed to make adding
   and deleting of gadget-output-records work. They could use better names =)
 * Changes to ADD-OUTPUT-RECORD, DELETE-OUTPUT-RECORD, and CLEAR-OUTPUT-RECORD
   to support above methods.
 * Output histories now have a slot to keep track of their sheet.
 * Removed some code that had snuck into panes.lisp related to input focus and
   changable cursor shapes (which I've never comitted).
 * Made clim-stream-pane inherit sheet-multiple-child-mixin.
 * Removed redundant definition of the OUTPUT-HISTORY slot from stream panes,
   and the two uses of the PANE-OUTPUT-HISTORY accessor it defines (which
   isn't in the spec nor the vendor CLIMs AFAIK).

Also changes to the slider gadget, which I was using in my test case:
 * Wrote a COMPOSE-SPACE method to request a more appropriate size depending
   on gadget orientation.
 * Merged code in the repaint method that was duplicated for horizontal and
   verical orientations.
 * Fill the background with PANE-BACKGROUND instead of GADGET-CURRENT-COLOR.
 * Commented out slot definition in basic-gadget which caused it to get a white
   background instead of the default frmo basic-pane. There was a comment there
   about Lispworks compatibility... but hopefully no one misses this.

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

Support (in OpenMCL) for accepting the subforms of a form, as opposed
to blowing away the entire form in progress. Put the transform for
coord-seqs in the recording methods, not the def-grecording
macro. Fake MOP functions for OpenMCL in order to support the listener
application.

Revision 1.131 - (view) (annotate) - [select for diffs]
Tue Aug 12 23:17:46 2003 UTC (10 years, 8 months ago) by gilbert
Branch: MAIN
Changes since 1.130: +2 -2 lines
Diff to previous 1.130
Non-negative reals are now spacing values too.

Revision 1.130 - (view) (annotate) - [select for diffs]
Tue Aug 12 00:01:18 2003 UTC (10 years, 8 months ago) by hefner1
Branch: MAIN
Changes since 1.129: +4 -3 lines
Diff to previous 1.129
Fixed a typo in changing-space-requirements.

Revision 1.129 - (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.128: +9 -20 lines
Diff to previous 1.128
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.128 - (view) (annotate) - [select for diffs]
Sat Aug 9 00:35:40 2003 UTC (10 years, 8 months ago) by gilbert
Branch: MAIN
Changes since 1.127: +5 -3 lines
Diff to previous 1.127
PANE-VIEWPORT-REGION

    We now return the region in the coordinate system of the 'pane'
    argument.

    Hope this is the right thing to do.

Revision 1.127 - (view) (annotate) - [select for diffs]
Wed Aug 6 20:26:06 2003 UTC (10 years, 8 months ago) by gilbert
Branch: MAIN
Changes since 1.126: +41 -1 lines
Diff to previous 1.126
Added a "CLIM Layout Protocol for Dummies" section.

Revision 1.126 - (view) (annotate) - [select for diffs]
Tue Aug 5 07:26:03 2003 UTC (10 years, 8 months ago) by strandh
Branch: MAIN
Changes since 1.125: +1 -2 lines
Diff to previous 1.125
Added file TODO.

clim-stream-pane no longer has transform-coordinates-mxin as superclass.

Revision 1.125 - (view) (annotate) - [select for diffs]
Thu Jul 31 09:35:29 2003 UTC (10 years, 8 months ago) by hefner1
Branch: MAIN
Changes since 1.124: +29 -8 lines
Diff to previous 1.124
Attempting to merge Neonsquare's fixes for LispWorks.

Revision 1.124 - (view) (annotate) - [select for diffs]
Sat Jul 26 17:37:57 2003 UTC (10 years, 8 months ago) by gilbert
Branch: MAIN
Changes since 1.123: +12 -12 lines
Diff to previous 1.123
Due to popular demand we spit FORMAT-style debugging messages out to
*trace-output* instead of *debug-io*

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

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

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

Revision 1.121 - (view) (annotate) - [select for diffs]
Sat May 31 21:43:15 2003 UTC (10 years, 10 months ago) by gilbert
Branch: MAIN
Changes since 1.120: +10 -4 lines
Diff to previous 1.120
SHEET-ADOPT-CHILD :AFTER (BOX-LAYOUT-MIXIN ...)
SHEET-DISOWN-CHILD :AFTER (BOX-LAYOUT-MIXIN ...)

    We INVOKE CHANGE-SPACE-REQUIREMENTS now as the new child has
    probably altered our space requirements.

SCROLLER-PANE [class]

    Fixed wrong :type slot options.

Revision 1.120 - (view) (annotate) - [select for diffs]
Sun May 25 10:36:39 2003 UTC (10 years, 10 months ago) by gilbert
Branch: MAIN
Changes since 1.119: +4 -2 lines
Diff to previous 1.119
TRANSFORM-COORDINATES-MIXIN added to CLIM-STREAM-PANE.

Revision 1.119 - (view) (annotate) - [select for diffs]
Sat Apr 12 22:10:46 2003 UTC (11 years ago) by hefner1
Branch: MAIN
Changes since 1.118: +8 -1 lines
Diff to previous 1.118
Added method on redisplay-frame-pane to handle specifying panes by name,
as the CLIM spec allows.

Revision 1.118 - (view) (annotate) - [select for diffs]
Sat Apr 12 06:00:47 2003 UTC (11 years ago) by hefner1
Branch: MAIN
Changes since 1.117: +4 -2 lines
Diff to previous 1.117
Changed WINDOW-CLEAR to call CHANGE-SPACE-REQUIREMENTS - sizes of cleared
panes were not being reset.

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

Revision 1.116 - (view) (annotate) - [select for diffs]
Fri Mar 21 15:15:08 2003 UTC (11 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.115: +14 -14 lines
Diff to previous 1.115
make all #+/#- conditionals lowercase for ACLs java mode

Revision 1.115 - (view) (annotate) - [select for diffs]
Wed Mar 19 03:02:20 2003 UTC (11 years, 1 month ago) by gilbert
Branch: MAIN
Changes since 1.114: +2 -2 lines
Diff to previous 1.114
There was a paren missing. *blush*

Revision 1.114 - (view) (annotate) - [select for diffs]
Wed Mar 19 02:53:35 2003 UTC (11 years, 1 month ago) by gilbert
Branch: MAIN
Changes since 1.113: +16 -12 lines
Diff to previous 1.113
A few :initform and :type slot options were not in agreement.

Revision 1.113 - (view) (annotate) - [select for diffs]
Sun Mar 16 17:21:29 2003 UTC (11 years, 1 month ago) by gilbert
Branch: MAIN
Changes since 1.112: +196 -93 lines
Diff to previous 1.112
CHANGE-SPACE-REQUIREMENTS
NOTE-SPACE-REQUIREMENTS-CHANGED
CHANGING-SPACE-REQUIREMENTS
INVOKE-WITH-CHANGING-SPACE-REQUIREMENTS

    New implementation.

POINTER-DOCUMENTATION-PANE

    :min-height and :max-height are (2 :line) also -- makes it fixed size.

COMPOSE-SPACE :around ((pane command-menu-pane) &key width height)

    Kludge removed

COMPOSE-SPACE ((pane clim-stream-pane) &key width height)

    New method. Returns the space requirements according to output history.

Revision 1.112 - (view) (annotate) - [select for diffs]
Fri Mar 14 20:55:12 2003 UTC (11 years, 1 month ago) by gilbert
Branch: MAIN
Changes since 1.111: +1 -2 lines
Diff to previous 1.111
Patches for running McCLIM on experimental SBCL threaded version.

By Daniel Barlow, also see article <87znnxdiew.fsf@noetbook.telent.net>.

Revision 1.111 - (view) (annotate) - [select for diffs]
Fri Mar 14 14:01:50 2003 UTC (11 years, 1 month ago) by gilbert
Branch: MAIN
Changes since 1.110: +183 -197 lines
Diff to previous 1.110
GROK-USER-SPACE-REQUIREMENT-OPTIONS
    gone

MERGE-USER-SPECIFIED-OPTIONS
    hope this function does more sensible things now.

*CHANGING-SPACE-REQUIREMENTS*
*CHANGED-SPACE-REQUIREMENTS*
CHANGING-SPACE-REQUIREMENTS
    new variables, start of a new implementation.
    not done.

SPACING-PANE
    Removed the misleading documentation string.
    Adjusted implementation.

POINTER-DOCUMENTATION-PANE
    Different default initargs. We use (2 :line) for its height now.

COMPOSE-SPACE :around ((pane command-menu-pane) &key width height)
    Kludge?

Revision 1.110 - (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.109: +43 -8 lines
Diff to previous 1.109
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.109 - (view) (annotate) - [select for diffs]
Thu Nov 21 03:54:49 2002 UTC (11 years, 5 months ago) by mikemac
Branch: MAIN
Changes since 1.108: +2 -1 lines
Diff to previous 1.108
remove redundant declarations and definitions

Revision 1.108 - (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.107: +77 -33 lines
Diff to previous 1.107
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.107 - (view) (annotate) - [select for diffs]
Sun Nov 10 16:35:43 2002 UTC (11 years, 5 months ago) by gilbert
Branch: MAIN
Changes since 1.106: +4 -4 lines
Diff to previous 1.106
Fixed a few bugs in PARSE-BOX-CONTENT which i introduced recently.

Revision 1.106 - (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.105: +6 -9 lines
Diff to previous 1.105
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.105 - (view) (annotate) - [select for diffs]
Sun Nov 10 15:10:40 2002 UTC (11 years, 5 months ago) by gilbert
Branch: MAIN
Changes since 1.104: +5 -6 lines
Diff to previous 1.104
GROK-USER-SPACE-REQUIREMENT-OPTIONS

    The options the user specifies are now just copied over to the
    user-* slots as they are. Previously for instance the maxima where
    defaulted to +fill+ which efficiently caused every pane to get a
    maximal stretchable space requirement (unless the user specified
    another maximum size). This then resulted into menu bars being
    enlarged when the user enlarges the frame which probably is not
    what you want.

    Now, when the user specifies no maxima explicitly just the panes
    intrinsic maxima are taken likewise for minima and everything
    works more smoothly again, as it once was.

Revision 1.104 - (view) (annotate) - [select for diffs]
Sun Nov 10 14:42:36 2002 UTC (11 years, 5 months ago) by gilbert
Branch: MAIN
Changes since 1.103: +175 -160 lines
Diff to previous 1.103
HBOX, VBOX, HRACK, VRACK

    I did away with my stupid idea of a NULL-PANE and contraint slots. We
    use the old approach now.

Revision 1.103 - (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.102: +73 -89 lines
Diff to previous 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.102 - (view) (annotate) - [select for diffs]
Sun Sep 15 19:09:27 2002 UTC (11 years, 7 months ago) by brian
Branch: MAIN
Changes since 1.101: +18 -12 lines
Diff to previous 1.101
fixed bug in scroller pane space allocation, restored 300x300 defaults.

Revision 1.101 - (view) (annotate) - [select for diffs]
Sat Sep 14 04:02:36 2002 UTC (11 years, 7 months ago) by brian
Branch: MAIN
Changes since 1.100: +3 -7 lines
Diff to previous 1.100
put 200x200 defaults, 30x30 min for scroller window dimensions

Revision 1.100 - (view) (annotate) - [select for diffs]
Sat Sep 14 02:53:10 2002 UTC (11 years, 7 months ago) by brian
Branch: MAIN
Changes since 1.99: +72 -70 lines
Diff to previous 1.99
fixed layout invariant violation

Revision 1.99 - (view) (annotate) - [select for diffs]
Thu Sep 12 18:18:57 2002 UTC (11 years, 7 months ago) by brian
Branch: MAIN
Changes since 1.98: +107 -63 lines
Diff to previous 1.98
merge-user-specified-options, and border-pane's grok-user-space-requirements
to respect min and max sizes properly.

Revision 1.98 - (view) (annotate) - [select for diffs]
Sat Sep 7 15:57:40 2002 UTC (11 years, 7 months ago) by brian
Branch: MAIN
Changes since 1.97: +66 -27 lines
Diff to previous 1.97
Added lowering to complement raising.
Fixed raising and lowering to draw their backgrounds.
Fixed viewport to allocate-space for its child - maybe needs fixing somewhere else.

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

Revision 1.96 - (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.95: +7 -2 lines
Diff to previous 1.95
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.95 - (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.94: +7 -2 lines
Diff to previous 1.94
First try at pointer documentation.

Revision 1.94 - (view) (annotate) - [select for diffs]
Wed Jul 31 18:54:48 2002 UTC (11 years, 8 months ago) by gilbert
Branch: MAIN
Changes since 1.93: +21 -9 lines
Diff to previous 1.93
XICALLY-CONTENT-SR**
    minimum size of an h/v-pane child wraped into (:fill ..) is now
    respected.

XICALLY
    We grok (:fill child) or (+fill+ child) now.

Revision 1.93 - (view) (annotate) - [select for diffs]
Wed Jul 31 11:58:10 2002 UTC (11 years, 8 months ago) by adejneka
Branch: MAIN
Changes since 1.92: +9 -4 lines
Diff to previous 1.92
* A-WINDOW-STREAM: Made an ENCAPSULATING-STREAM on its stream pane.

Revision 1.92 - (view) (annotate) - [select for diffs]
Tue Jul 30 16:43:16 2002 UTC (11 years, 8 months ago) by adejneka
Branch: MAIN
Changes since 1.91: +19 -29 lines
Diff to previous 1.91
* Subclasses of CLIM-STREAM-PANE: Moved default initialization
  parameters from INITIALIZE-INSTANCE to :DEFAULT-INITARGS.

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

Revision 1.90 - (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.89: +2 -1 lines
Diff to previous 1.89
* Fixed CLIM-STREAM-PANE for single-process mode.

Revision 1.89 - (view) (annotate) - [select for diffs]
Sun Jun 30 08:21:43 2002 UTC (11 years, 9 months ago) by adejneka
Branch: MAIN
Changes since 1.88: +19 -13 lines
Diff to previous 1.88
* PANE-VIEWPORT: Check only immediate parent.

* (CLASS CLIM-STREAM-PANE): Fixed default display function.

Revision 1.88 - (view) (annotate) - [select for diffs]
Thu Jun 27 17:33:04 2002 UTC (11 years, 9 months ago) by gilbert
Branch: MAIN
Changes since 1.87: +1 -2 lines
Diff to previous 1.87
removed debugging output.

Revision 1.87 - (view) (annotate) - [select for diffs]
Thu Jun 27 16:45:13 2002 UTC (11 years, 9 months ago) by gilbert
Branch: MAIN
Changes since 1.86: +200 -184 lines
Diff to previous 1.86
Scrolling Work

Most notable change: scrolling works!

Revision 1.86 - (view) (annotate) - [select for diffs]
Wed Jun 26 02:11:29 2002 UTC (11 years, 9 months ago) by gilbert
Branch: MAIN
Changes since 1.85: +5 -6 lines
Diff to previous 1.85
SCROLLER-PANE/HORIZONTAL-DRAG-CALLBACK
SCROLLER-PANE/VERTICAL-DRAG-CALLBACK
    Bug fix: no longer breaks when there is only one scroll-bar.

(ALLOCATE-SPACE label-pane t t)
    Bug fix: was using WITH-BOUNDING-RECTANGLE* where
    MULTIPLE-VALUE-BIND is correct.

Revision 1.85 - (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.84: +1 -6 lines
Diff to previous 1.84
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.84 - (view) (annotate) - [select for diffs]
Thu Jun 20 08:33:24 2002 UTC (11 years, 10 months ago) by adejneka
Branch: MAIN
Changes since 1.83: +2 -2 lines
Diff to previous 1.83
* SCROLL-EXTENT: fixed computation of the cleared region.

Revision 1.83 - (view) (annotate) - [select for diffs]
Thu Jun 20 07:38:47 2002 UTC (11 years, 10 months ago) by adejneka
Branch: MAIN
Changes since 1.82: +5 -1 lines
Diff to previous 1.82
* Invalidate cached regions/transformations after direct setting
  SHEET-{REGION,TRANSFORMATION}.

Revision 1.82 - (view) (annotate) - [select for diffs]
Sun Jun 2 00:25:31 2002 UTC (11 years, 10 months ago) by mikemac
Branch: MAIN
Changes since 1.81: +55 -80 lines
Diff to previous 1.81
cleanup scroll-extent and remove unused instance vars sr-*-*

Revision 1.81 - (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.80: +6 -14 lines
Diff to previous 1.80
clean up a bunch of ACL compiler warnings

Revision 1.80 - (view) (annotate) - [select for diffs]
Mon May 20 02:11:18 2002 UTC (11 years, 11 months ago) by mikemac
Branch: MAIN
Changes since 1.79: +14 -24 lines
Diff to previous 1.79
scrolling seems to work now but scrollbars are not being updated yet

Revision 1.79 - (view) (annotate) - [select for diffs]
Sun May 5 03:41:03 2002 UTC (11 years, 11 months ago) by adejneka
Branch: MAIN
Changes since 1.78: +34 -20 lines
Diff to previous 1.78
* Added keyword arguments to COMPOSE-SPACE.

Revision 1.78 - (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.77: +46 -34 lines
Diff to previous 1.77
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.77 - (view) (annotate) - [select for diffs]
Sun Apr 28 11:17:07 2002 UTC (11 years, 11 months ago) by gilbert
Branch: MAIN
Changes since 1.76: +14 -34 lines
Diff to previous 1.76
Besides some support for enabled/disabled sheets in panes.lisp and removal
of some unused code, the most notable change is:

- removal of all method defintions like
  (defmethod handle-event ((foo foo-pane) (event window-repaint-event))
    (repaint-sheet foo (event-region event))

- Switched last remaining REPAINT-SHEET methods into HANDLE-REPAINT, since
  HANDLE-REPAINT is where you define repainting. REPAINT-SHEET is for forcing
  a repaint not for implementing a repaint. [Although I am German my reading
  comprehension should be just good enough to understand the relevant chapter
  of the specification].
  This breaks CLIM-FIG again, refer to my posting to the mailing list.

Revision 1.76 - (view) (annotate) - [select for diffs]
Sun Apr 28 07:56:19 2002 UTC (11 years, 11 months ago) by gilbert
Branch: MAIN
Changes since 1.75: +5 -4 lines
Diff to previous 1.75
DRAW-DESIGN t +nowhere+
    ignore declarations

ALLOCATE-SPACE label-pane t t
    not using the sheet's region anymore but the formally ignored
    width and height arguments.

Revision 1.75 - (view) (annotate) - [select for diffs]
Sat Apr 27 09:02:59 2002 UTC (11 years, 11 months ago) by brian
Branch: MAIN
Changes since 1.74: +35 -2 lines
Diff to previous 1.74
Added a hack to have a frame resize its pane rather than to be clamped to the pane's
min/max dimensions, which is not the right thing to do, but should help in fixing up
space allocation code in the future. Also changed the event peeker into cleverer macro.

Revision 1.74 - (view) (annotate) - [select for diffs]
Wed Apr 24 16:30:14 2002 UTC (11 years, 11 months ago) by brian
Branch: MAIN
Changes since 1.73: +7 -19 lines
Diff to previous 1.73
General cleaning up. Fixed pixie-toggle-buttons, rebuild pixie-sliders, and
pixie-scroll-bar (unfinished). Cleaned up Examples/gadget-test to use the
correct constructors.

Revision 1.73 - (view) (annotate) - [select for diffs]
Tue Apr 23 01:50:00 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.72: +9 -2 lines
Diff to previous 1.72
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.72 - (view) (annotate) - [select for diffs]
Mon Apr 22 07:10:07 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.71: +13 -3 lines
Diff to previous 1.71
Replaced (method handle-event (pane t)) with a no-applicable-method method to
log unhandled events.

Added (method deallocate-pixmap (mirrored-pixmap)).

Removed (method handle-event (menu-button-pane) (window-repaint-event)) from
looks/pixie.lisp.  Don't write handle-event methods on window-repaint-event,
and don't call dispatch-repaint from handle-repaint!

Tested calculator, clim-fig, gadget-test, and presentation test.  clim-fig only
draws the first quadrant of ellipses; don't know if that's recent lossage.

Revision 1.71 - (view) (annotate) - [select for diffs]
Mon Apr 22 05:25:41 2002 UTC (12 years ago) by brian
Branch: MAIN
Changes since 1.70: +18 -5 lines
Diff to previous 1.70
Re-added code to point out where events were not being handled rather than to explode.
Fixed the repaints for raised-panes.

Revision 1.70 - (view) (annotate) - [select for diffs]
Mon Apr 22 01:28:52 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.69: +1 -7 lines
Diff to previous 1.69
Backed out Brian's added handle-event for panes.  calculator demo works again;
clim-fig still hosed.

Revision 1.69 - (view) (annotate) - [select for diffs]
Sun Apr 21 12:41:14 2002 UTC (12 years ago) by brian
Branch: MAIN
Changes since 1.68: +8 -2 lines
Diff to previous 1.68
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.68 - (view) (annotate) - [select for diffs]
Fri Apr 19 22:27:09 2002 UTC (12 years ago) by moore
Branch: MAIN
Changes since 1.67: +15 -16 lines
Diff to previous 1.67
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.67 - (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.66: +7 -1 lines
Diff to previous 1.66
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.66 - (view) (annotate) - [select for diffs]
Thu Feb 28 19:27:08 2002 UTC (12 years, 1 month ago) by gilbert
Branch: MAIN
Changes since 1.65: +5 -5 lines
Diff to previous 1.65
Undid what I did before. We use SHEET-CHILDREN again instead of
SHEET-ENABLED-CHILDREN until sheets are fully implemented.

Revision 1.65 - (view) (annotate) - [select for diffs]
Thu Feb 28 09:57:20 2002 UTC (12 years, 1 month ago) by gilbert
Branch: MAIN
Changes since 1.64: +72 -57 lines
Diff to previous 1.64
BOX-LAYOUT-MIXIN
    - only consider enabled children
    - consider children in reverse order

ALLOCATE-SPACE viewport-pane
    - fixed <200202272318.PAA24948@saturn.mikemac.com>
      by using LAYOUT-CHILD now, that is extrema of the child's space
      requirement are taken into account. Still not sure if this is
      really the right thing to do.

Revision 1.64 - (view) (annotate) - [select for diffs]
Wed Feb 27 12:54:35 2002 UTC (12 years, 1 month ago) by gilbert
Branch: MAIN
Changes since 1.63: +315 -378 lines
Diff to previous 1.63
LAYOUT-CHILD
    New function for layout a single child while taking alignment into
    account.

BASIC-PANE
    New default for PANE-BACKGROUND is *3d-normal-color* to have a
    more boring look. That is, the background of layout panes is
    gray now to match what other toolkits, which feature this silly
    3D look, do.

COMPOSITE-PANE
    CONTENTS slot gone.

CONTENT [class]
    gone and all its subclasses. We use constraint slots now.

PARSE-CONTENTS [generic function]
    dito: gone.
    Adjusted INITIALIZE-INSTANCE methods accordingly.

HBOX, VBOX, HRACK, VRACK
    These use the BOX-LAYOUT-MIXIN class now to reduce code
    duplication.

TABLE-PANE
    Now makes the cells large enough to fill all the table pane's
    space. Though children are not made larger than they want.

Revision 1.63 - (view) (annotate) - [select for diffs]
Mon Feb 25 17:19:12 2002 UTC (12 years, 1 month ago) by gilbert
Branch: MAIN
Changes since 1.62: +465 -278 lines
Diff to previous 1.62
BOX-LAYOUT-MIXIN
RACK-LAYOUT-MIXIN
    new classes. The idea is that HBOX, VBOX, HRACK, VRACK all can
    inherit from these [not currently implemented]
    RADIO-BOX in gadgets.lisp already inherits from these to provide
    for the layout of its children.

CONSTRAINT-SLOTS-MIXIN
    Related to the above. Implements the idea of constraint slots like
    in say Xt. This is mainly for bookkeeping information that is
    related to one of a pane's children.

SCROLLER-PANE
    Some more work to fix them, not yet finished.

Revision 1.62 - (view) (annotate) - [select for diffs]
Mon Feb 25 05:50:39 2002 UTC (12 years, 1 month ago) by strandh
Branch: MAIN
Changes since 1.61: +9 -9 lines
Diff to previous 1.61
Moved the definition of the class LAYOUT-PROTOCOL-MIXIN so that it is
now before that of PANE.  This avoids a load problem giving an error message
"CLASS-PRECEDENCE-LIST unbound".

Revision 1.61 - (view) (annotate) - [select for diffs]
Sat Feb 23 23:22:24 2002 UTC (12 years, 1 month ago) by mikemac
Branch: MAIN
Changes since 1.60: +6 -6 lines
Diff to previous 1.60
reorder defmethod after corresponding defclass to avoid load problems

Revision 1.60 - (view) (annotate) - [select for diffs]
Fri Feb 22 21:10:02 2002 UTC (12 years, 1 month ago) by gilbert
Branch: MAIN
Changes since 1.59: +30 -2 lines
Diff to previous 1.59
Default for :EQUALIZE-WIDTH, :EQUALIZE-HEIGHT is now T again.

Revision 1.59 - (view) (annotate) - [select for diffs]
Fri Feb 22 19:11:01 2002 UTC (12 years, 1 month ago) by gilbert
Branch: MAIN
Changes since 1.58: +51 -43 lines
Diff to previous 1.58
OUTLINED-PANE
    added

BORDER-PANE
    groks :border-width option.
    has black background, so that it is visible.

VBOX-PANE, HBOX-PANE
    These know the :spacing-[xy] options now.

Revision 1.58 - (view) (annotate) - [select for diffs]
Fri Feb 22 14:31:18 2002 UTC (12 years, 1 month ago) by gilbert
Branch: MAIN
Changes since 1.57: +84 -49 lines
Diff to previous 1.57
MERGE-USER-SPECIFIED-OPTIONS

    New generic function to account for BORDER-PANE's and
    SPACING-PANE's exception to the way user specified spacing options
    are merged in.

COMPOSE-SPACE :around ((pane space-requirement-options-mixin))

    Use it.

Revision 1.57 - (view) (annotate) - [select for diffs]
Sat Feb 16 02:46:07 2002 UTC (12 years, 2 months ago) by gilbert
Branch: MAIN
Changes since 1.56: +931 -472 lines
Diff to previous 1.56
Practically a 3/4 rewrite!!

Revision 1.56 - (view) (annotate) - [select for diffs]
Mon Feb 11 21:42:50 2002 UTC (12 years, 2 months ago) by gilbert
Branch: MAIN
Changes since 1.55: +78 -8 lines
Diff to previous 1.55
PANE class
    TEMPORARY-MEDIUM-SHEET-OUTPUT-MIXIN no longer within the super
    classes, we were contradicting ourself further below the class
    hierarchy, where other classes wanted a
    PERMANENT-MEDIUM-SHEET-OUTPUT-MIXIN.

BASIC-PANE
    No longer inherits from WINDOW-STREAM.

ALLOCATE-SPACE ((pane top-level-sheet-pane) width height
    Fix: when the space requirement is not yet known, call
    COMPOSE-SPACE.

RAISED-PANE class
    Now has PERMANENT-MEDIUM-SHEET-OUTPUT-MIXIN mixed in.

CLIM-STREAM-PANE
    Altered super classes.

WINDOW-ERASE-VIEWPORT ((pane clim-stream-pane))
    No longer assumes to be captured within a viewport.

First half-hearted attempt to provide for Section 29.4.5, "Creating a
Standalone CLIM Window".

Revision 1.55 - (view) (annotate) - [select for diffs]
Sun Feb 10 01:24:13 2002 UTC (12 years, 2 months ago) by gilbert
Branch: MAIN
Changes since 1.54: +99 -100 lines
Diff to previous 1.54
SPACE-REQUIREMENT, STANDARD-SPACE-REQUIREMENT
    slots moved to where they belong.

PRINT-OBJECT ((space space-requirement) stream

    Extended the printer to print also the extrema.

    Since there were bugs, where the values was not within its range.
    Introduced by destructively modifing SPACE-REQUIRENT objects!

MAKE-SPACE-REQUIREMENT
    allocates object of class STANDARD-SPACE-REQUIREMENT now.

SPACE-REQUIREMENT-COMPONENTS
    specialized on STANDARD-SPACE-REQUIREMENT.

DO-IN
    moved to utils.lisp. Became a function. Never heard of inline
    functions and evaluation order, eh?

COMPOSE-SPACE :around ((pane pane))
    Eliminated destructivity.

COMPOSE-SPACE ((rack hrack-pane))
COMPOSE-SPACE ((rack vrack-pane))
    Rewrite.

*SCROLLBAR-THICKNESS*
    Sigh. Finally adjusted.

Revision 1.54 - (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.53: +18 -1 lines
Diff to previous 1.53
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.53 - (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.52: +2 -2 lines
Diff to previous 1.52
remove compiler warnings for ACL

Revision 1.52 - (view) (annotate) - [select for diffs]
Sun Dec 2 23:59:54 2001 UTC (12 years, 4 months ago) by mikemac
Branch: MAIN
Changes since 1.51: +1 -1 lines
Diff to previous 1.51
better random number for +FILL+

Revision 1.51 - (view) (annotate) - [select for diffs]
Sun Nov 18 16:23:14 2001 UTC (12 years, 5 months ago) by gilbert
Branch: MAIN
Changes since 1.50: +2 -2 lines
Diff to previous 1.50
UPDATE-SCROLL-BARS: fixed cut + paste bug

Revision 1.50 - (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.49: +1 -0 lines
Diff to previous 1.49
updated copyright dates for me

Revision 1.49 - (view) (annotate) - [select for diffs]
Wed Nov 14 17:31:48 2001 UTC (12 years, 5 months ago) by mikemac
Branch: MAIN
Changes since 1.48: +47 -22 lines
Diff to previous 1.48
first cut at incremental redisplay for scrolling

Revision 1.48 - (view) (annotate) - [select for diffs]
Tue Nov 13 20:56:22 2001 UTC (12 years, 5 months ago) by mikemac
Branch: MAIN
Changes since 1.47: +9 -3 lines
Diff to previous 1.47
missed some scrollbar initializations

Revision 1.47 - (view) (annotate) - [select for diffs]
Tue Nov 13 18:40:45 2001 UTC (12 years, 5 months ago) by mikemac
Branch: MAIN
Changes since 1.46: +41 -19 lines
Diff to previous 1.46
more scrollbar work

Revision 1.46 - (view) (annotate) - [select for diffs]
Mon Nov 12 22:16:01 2001 UTC (12 years, 5 months ago) by mikemac
Branch: MAIN
Changes since 1.45: +2 -3 lines
Diff to previous 1.45
beautifying the scroll-bar-pane

Revision 1.45 - (view) (annotate) - [select for diffs]
Fri Nov 2 21:23:04 2001 UTC (12 years, 5 months ago) by mikemac
Branch: MAIN
Changes since 1.44: +9 -10 lines
Diff to previous 1.44
:min/:max width/height fixes

Revision 1.44 - (view) (annotate) - [select for diffs]
Sat Sep 22 18:13:46 2001 UTC (12 years, 7 months ago) by leto
Branch: MAIN
Changes since 1.43: +27 -4 lines
Diff to previous 1.43
- Added the possibilty to scroll up or to scroll down by page.

Revision 1.43 - (view) (annotate) - [select for diffs]
Sun Sep 16 14:29:57 2001 UTC (12 years, 7 months ago) by strandh
Branch: MAIN
Changes since 1.42: +106 -93 lines
Diff to previous 1.42
Simplified the space allocation and space composition code.

Replaces unintuitive names by somewhat more intuitive ones.

Revision 1.42 - (view) (annotate) - [select for diffs]
Sun Sep 16 08:57:34 2001 UTC (12 years, 7 months ago) by strandh
Branch: MAIN
Changes since 1.41: +9 -0 lines
Diff to previous 1.41
Fixed scroll-extent on a clim-stream-pane so that the
sheet-transformation is altered properly.

Scrolling in the address book example now "works" again.  It is still
WAY too slow, for several reasons.  I guess I'll look into that next.

Also, scrolling still does not correspond to what I wrote in the
manual.  Assuming your silence means approval, the manual has the
right interpretation and the code is wrong.

Revision 1.41 - (view) (annotate) - [select for diffs]
Sat Sep 15 06:20:17 2001 UTC (12 years, 7 months ago) by strandh
Branch: MAIN
Changes since 1.40: +3 -0 lines
Diff to previous 1.40
Added method for sheet-native-transformation on top-level-sheet-pane
which returns +identity-tranformation+.

The top leve sheet is now used as a reference for the native
transformation rather than the graft.  This way, we avoid strange
behavior when the window manager reparents the top level sheet.

Later, we may want the frame manager to decide whether the top level
sheet should have the identity tranformation or some other
transformation (presumably a scaling).

Revision 1.40 - (view) (annotate) - [select for diffs]
Tue Sep 4 15:25:31 2001 UTC (12 years, 7 months ago) by rouanet
Branch: MAIN
Changes since 1.39: +19 -47 lines
Diff to previous 1.39
Modified the code to use the new functions move-sheet and resize-sheet.

Revision 1.39 - (view) (annotate) - [select for diffs]
Thu Aug 30 11:16:49 2001 UTC (12 years, 7 months ago) by rouanet
Branch: MAIN
Changes since 1.38: +2 -2 lines
Diff to previous 1.38
Suppressed the medium argument in the handle-repaint method.  It has
been removed in the new spec version, and wasn't used in the code
anyway.

Added the new basic-sheet class, and changed a few things in the code
accordingly.

Modified the definition of some functions, and added new ones, namely :
  map-over-sheets
  map-over-sheets-containing-position
  map-over-sheets-overlapping-region
  move-sheet
  resize-sheet
  move-and-resize-sheet

Moved the repaint protocol code in a stand-alone file, because it need
to have access to window-repaint-event defined in the events code.

Revision 1.38 - (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.37: +1 -1 lines
Diff to previous 1.37
The former mirrored-sheet class is now mirrored-sheet-mixin.
Changed the name in the existing code and made the necessary
adaptations.

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.37 - (view) (annotate) - [select for diffs]
Tue Aug 21 21:33:05 2001 UTC (12 years, 8 months ago) by rouanet
Branch: MAIN
Changes since 1.36: +24 -24 lines
Diff to previous 1.36
The SPACER-PANE is now called SPACING-PANE in the new Spec.

Revision 1.36 - (view) (annotate) - [select for diffs]
Mon Aug 20 16:56:10 2001 UTC (12 years, 8 months ago) by rouanet
Branch: MAIN
Changes since 1.35: +2 -2 lines
Diff to previous 1.35
Fixed a bug which prevented the first line of the interactor-pane from
being redrawn correctly in the address-book demo.

Revision 1.35 - (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.34: +4 -3 lines
Diff to previous 1.34
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.34 - (view) (annotate) - [select for diffs]
Thu Aug 9 09:37:32 2001 UTC (12 years, 8 months ago) by leto
Branch: MAIN
Changes since 1.33: +130 -74 lines
Diff to previous 1.33
Implementation of scroll-bars based on a code made by Julien Bonifante.

Modifications of his code include:

- Modified the name of the scroll-bar's callbacks from "drag" to
"scroll", according to the new Spec.
- Simplified the slots of SCROLL-BAR-PANE, using the inherited slots.
- Added HANDLE-EVENT functions to control the scrolling.

Modifications of panes.lisp:

- Modified the creation of scroll-bars in a scrolling environment.
- Modified the scrolling functions and clim-stream-pane functions.

Revision 1.33 - (view) (annotate) - [select for diffs]
Thu Aug 2 09:48:43 2001 UTC (12 years, 8 months ago) by rouanet
Branch: MAIN
Changes since 1.32: +11 -7 lines
Diff to previous 1.32
Fixed a bug in the space-requirement combination functions.

Revision 1.32 - (view) (annotate) - [select for diffs]
Wed Aug 1 16:08:53 2001 UTC (12 years, 8 months ago) by rouanet
Branch: MAIN
Changes since 1.31: +16 -30 lines
Diff to previous 1.31
Modified to make use of the new space-requirement-combine* function.

Revision 1.31 - (view) (annotate) - [select for diffs]
Wed Aug 1 14:55:52 2001 UTC (12 years, 8 months ago) by leto
Branch: MAIN
Changes since 1.30: +29 -1 lines
Diff to previous 1.30
Added the following functions:
- space-requirement+
- space-requirement+*
- space-requirement-combine
- space-requirement-components

These functions have been added in the new Spec version.
They can be useful to simplify code.

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

Revision 1.29 - (view) (annotate) - [select for diffs]
Mon Jul 30 05:40:08 2001 UTC (12 years, 8 months ago) by adejneka
Branch: MAIN
Changes since 1.28: +1 -1 lines
Diff to previous 1.28
* CLIM-STREAM-PANE: base class was changed to
  STANDARD-OUTPUT-RECORDING-STREAM.

Revision 1.28 - (view) (annotate) - [select for diffs]
Wed Jul 25 12:06:27 2001 UTC (12 years, 8 months ago) by boninfan
Branch: MAIN
Changes since 1.27: +1 -1 lines
Diff to previous 1.27
Added the macro with-special-choices. Its purpose is to add backend dependant drawing optimizations in repaint protocol.
For example, with CLX, it adds the double-buffering thanks to pixmaps by calling the macro with-double-buffering.
Julien.

Revision 1.27 - (view) (annotate) - [select for diffs]
Sat Jul 7 13:31:54 2001 UTC (12 years, 9 months ago) by rouanet
Branch: MAIN
Changes since 1.26: +16 -12 lines
Diff to previous 1.26
- window-clear and window-pane now works according to the spec.
- update-scrollbars now works for `flat' bounding-boxes as well.

Revision 1.26 - (view) (annotate) - [select for diffs]
Tue May 22 10:43:42 2001 UTC (12 years, 11 months ago) by cvs
Branch: MAIN
Changes since 1.25: +6 -3 lines
Diff to previous 1.25
Some Lisp can't grok (... &rest), inserted dummy variables.
--GB

Revision 1.25 - (view) (annotate) - [select for diffs]
Thu May 3 09:45:52 2001 UTC (12 years, 11 months ago) by boninfan
Branch: MAIN
Changes since 1.24: +3 -3 lines
Diff to previous 1.24
Method of double-buffering added thanks to pixmaps

Revision 1.24 - (view) (annotate) - [select for diffs]
Thu Apr 19 12:24:28 2001 UTC (13 years ago) by cvs
Branch: MAIN
Changes since 1.23: +2 -2 lines
Diff to previous 1.23
bug for the default value of make-space-requirement (which was 0) fixed. Now, this value is 1, because of the division in set-width-and-height

Revision 1.23 - (view) (annotate) - [select for diffs]
Mon Mar 19 18:47:45 2001 UTC (13 years, 1 month ago) by cvs
Branch: MAIN
Changes since 1.22: +558 -413 lines
Diff to previous 1.22
According to the specification, "COMPOSE-SPACE" is first invoked on the
the top-level pane which then asks its children recursivly, resulting
in a "SPACE-REQUIREMENT" for each pane in the hierarchy.  When this
recursive process terminates, the opt-level pane asks the system for
space.  The system may or may not return the exact amount that was
asked for.  The actual space given must therefore be distributed by
the top-level pane to its children recursiveley through calls to
"ALLOCATE-SPACE".

When "ALLOCATE-SPACE" is called on a pane P, it must compare the
space-requirement of the children of P to the available space in order
to distribute it in the most preferable way.  In order to avoid a
second recursive invokation of "COMPOSE-SPACE" at this point, we store
the result of the previous call to "COMPOSE-SPACE" in each pane.

The situation is complicated by the fact that a user can (according to
the spacification) give explicit values for the pane sizes (such as
:width and :height) at the time the pane is created.  These explicit
values override the ones obtained by the normal rule of composing a
space requirement from the requirements of the children.  For that
reason, we use an :around method on "COMPOSE-SPACE".

This way, we can control the composition protocol. The :around method
will call the primary method only if necessary (i.e., (eq (slot-value pane
'space-requirement) nil)), and store this request.
Then we'll compute the space-requirement of the pane as follow:
     (setf (space-requirement-width ...)
           (or explicit-width (space-requirement-width request))
           ...
           (space-requirement-max-width ...)
           (or explicit-max-width
               explicit-width
               (space-requirement-max-width request))
           ...)

When the call to the primary method is not necessary we simply
return the stored value.

[minor issue]: We have a special case for the spacer-pane. Indeed,
  the explicit size you can give for this pane should represent the margin
  size.  So its primary method should only call compose on the child.
  And the around method will compute the explicits-sizes for it from
  the space requirement of the child and for the values given for the
  surrounding space.

Looking at the change-space notification protocol, it suggest that
the function "NOTE-SPACE-REQUIREMENT-CHANGED" should invalidate the
stored value of the compose protocol, and reinvoke "COMPOSE-SPACE" on
the pane. Then, according to the rules of the spec, it should notify its
parents if (not (or (typep pane 'restraining-pane)
                    (typep pane 'top-level-sheet-pane)))

        and if no explicit width and height had been given.
In those "stop cases" a call to allocate-space is made.

ALLOCATE PROTOCOL.

For this, the hardest thing to do is respecting the children's
desires, and the actual ratio between the children.
We can regard that problem in four different ways:

   1 - horizontal panes (box, rack)
   2 - vertical panes
   3 - table-pane
   4 - grid-pane.

 1,2.
We will use two sorted lists.
Those lists should be sorted by ratio (i.e., (/ size
extremeum-size)) of each child depending on the main size of the pane.

-- for example :  h(box, pane) --

(/ width max-width) <== sort by >
(/ width min-width) <== sort by <

---------------------------------

Now we can distribute the space correctly by iterating over one of the
lists (depending on whether we are increasing or decreasing the size).

 3.
We will use the same method as before.  We should have a list for the
first column and one for the first line.  Then we can iterate again.

[minor issue]: those lists have to be created and stored after the
call to compose-space.

 4.
This pane is the simplest: indeed what we have to do is equaly
dividing the sizes by the number of children.
       - child width = (/ new-size nb-children-per-line)
       - child height = (/ new-size nb-children-per-column)

[minor issue]: we do those operations for each child.  Otherwise we
take the risk that the result sizes are not integers.



According to the specification, "COMPOSE-SPACE" is first invoked on the
the top-level pane which then asks its children recursivly, resulting
in a "SPACE-REQUIREMENT" for each pane in the hierarchy.  When this
recursive process terminates, the opt-level pane asks the system for
space.  The system may or may not return the exact amount that was
asked for.  The actual space given must therefore be distributed by
the top-level pane to its children recursively recursivly through
calls to "ALLOCATE-SPACE".

When "ALLOCATE-SPACE" is called on a pane P, it must compare the
space-requirement of the children of P to the available space in order
to distribute it in the most preferable way.  In order to avoid a
second recursive invokation of "COMPOSE-SPACE" at this point, we store
the result of the previous call to "COMPOSE-SPACE" in each pane.

The situation is complicated by the fact that a user can (according to
the spacification) give explicit values for the pane sizes (such as
:width and :height) at the time the pane is created.  These explicit
values override the ones obtained by the normal rule of composing a
space requirement from the requirements of the children.  For that
reason, we use an :around method on "COMPOSE-SPACE".

This way, we can control the composition protocol. The :around method
will call the primary method only if necessary (i.e., (eq (slot-value pane
'space-requirement) nil)), and store this request.
Then we'll compute the space-requirement of the pane as follow:
     (setf (space-requirement-width ...)
           (or explicit-width (space-requirement-width request))
           ...
           (space-requirement-max-width ...)
           (or explicit-max-width
               explicit-width
               (space-requirement-max-width request))
           ...)

When the call to the primary method is not necessary we simply
return the stored value.

[minor issue]: We have a special case for the spacer-pane. Indeed,
  the explicit size you can give for this pane should represent the margin
  size.  So its primary method should only call compose on the child.
  And the around method will compute the explicits-sizes for it from
  the space requirement of the child and for the values given for the
  surrounding space.

Looking at the change-space notification protocol, it suggest that
the function "NOTE-SPACE-REQUIREMENT-CHANGED" should invalidate the
stored value of the compose protocol, and reinvoke "COMPOSE-SPACE" on
the pane. Then, according to the rules of the spec, it should notify its
parents if (not (or (typep pane 'restraining-pane)
                    (typep pane 'top-level-sheet-pane)))

        and if no explicit width and height had been given.
In those "stop cases" a call to allocate-space is made.

ALLOCATE PROTOCOL.

For this, the hardest thing to do is respecting the children's
desires, and the actual ratio between the children.
We can regard that problem in four different ways:

   1 - horizontal panes (box, rack)
   2 - vertical panes
   3 - table-pane
   4 - grid-pane.

 1,2.
We will use two sorted lists.
Those lists should be sorted by ratio (i.e., (/ size
extremeum-size)) of each child depending on the main size of the pane.

-- for example :  h(box, pane) --

(/ width max-width) <== sort by >
(/ width min-width) <== sort by <

---------------------------------

Now we can distribute the space correctly by iterating over one of the
lists (depending on whether we are increasing or decreasing the size).

 3.
We will use the same method as before.  We should have a list for the
first column and one for the first line.  Then we can iterate again.

[minor issue]: those lists have to be created and stored after the
call to compose-space.

 4.
This pane is the simplest: indeed what we have to do is equaly
dividing the sizes by the number of children.
       - child width = (/ new-size nb-children-per-line)
       - child height = (/ new-size nb-children-per-column)

[minor issue]: we do those operations for each child.  Otherwise we
take the risk that the result sizes are not integers.

Revision 1.22 - (view) (annotate) - [select for diffs]
Sat Jan 20 22:34:39 2001 UTC (13 years, 3 months ago) by cvs
Branch: MAIN
Changes since 1.21: +3 -1 lines
Diff to previous 1.21
bug fixes by Paul Werkowski

Revision 1.21 - (view) (annotate) - [select for diffs]
Sat Dec 16 14:23:12 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.20: +84 -89 lines
Diff to previous 1.20
Removed :initarg from space-requirement slot of pane class.

Added slots corresponding to initargs :width, :max-width, etc to pane
class.

Added new function compute-and-set-space that first checks whether
explicit space has been required through :width, :max-width, etc.  If
not, calls compose-space.  compute-and-set-space also sets the
space-requirement slot for later use by allocate-space.  Only
compute-and-set-space is allowed to modify this slot.

Removed ask-space-children and compute-space.

Fixed various compose-space methods so that they don't update
space-requirement slot.

Added raised-pane and macro raising (thanks to Iban).

Spacer pane still doesn't work.  I probably have to convert
compute-and-set-space to a generic function and have a different
method on spacer pane.

Revision 1.20 - (view) (annotate) - [select for diffs]
Fri Dec 8 17:17:19 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.19: +4 -63 lines
Diff to previous 1.19
removed scrollbar-pane and added scroll-bar-pane

Revision 1.19 - (view) (annotate) - [select for diffs]
Mon Dec 4 14:57:33 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.18: +0 -1 lines
Diff to previous 1.18
*** empty log message ***

Revision 1.18 - (view) (annotate) - [select for diffs]
Sat Dec 2 07:59:29 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.17: +166 -26 lines
Diff to previous 1.17
added scrollbars, made pane's foreground and background redirect to medium's

Revision 1.17 - (view) (annotate) - [select for diffs]
Sat Dec 2 05:28:45 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.16: +12 -8 lines
Diff to previous 1.16
Added `bodering' macro.

Reindented setf (perhaps I shouldn't do that?))

Revision 1.16 - (view) (annotate) - [select for diffs]
Fri Dec 1 00:27:38 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.15: +13 -10 lines
Diff to previous 1.15
more work on scrolling

Revision 1.15 - (view) (annotate) - [select for diffs]
Wed Nov 29 23:17:10 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.14: +57 -15 lines
Diff to previous 1.14
  added single-child-composite-pane with default space layout methods
  changed border-pane to be subclass of single-child-composite-pane with
correct layout methods
  changed viewport-pane to be subclass of single-child-composite-pane
using the default layout methods
  added temporary hack layout methods to scroller-pane
  added border-pane support to make-clim-stream-pane

  scroller-pane needs the scrollbars added along with allocating space
for them

Revision 1.14 - (view) (annotate) - [select for diffs]
Wed Nov 29 19:45:33 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.13: +10 -9 lines
Diff to previous 1.13
made interactor and application panes be contained in scroller panes

Revision 1.13 - (view) (annotate) - [select for diffs]
Wed Nov 29 13:36:53 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.12: +24 -27 lines
Diff to previous 1.12
Added auxiliary function for setting width and height of region of
a rectangular sheet.

Modified layout panes to use auxiliary function so as to avoid setting
upper-left corner of region.  This makes the panes scroller-friendly.

Removed method on allocate-space for gereral composite pane.

Added method on allocate-space for top-level-sheet-pane.

Revision 1.12 - (view) (annotate) - [select for diffs]
Tue Nov 28 15:37:49 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.11: +76 -56 lines
Diff to previous 1.11
Altered space allocation protocol.  Layout panes no longer alter region
of children, but only modifies sheet-transformation.

Improved formating of loop instances.

Added class unmanaged-top-level-sheet-pane which gets created
with :override-redirect :on for CLX frame managers, i.e., with no
window manager intervention.

Window configuration events now moves top-level-sheet according to
x and y slots.

Revision 1.11 - (view) (annotate) - [select for diffs]
Thu Nov 23 08:42:43 2000 UTC (13 years, 4 months ago) by cvs
Branch: MAIN
Changes since 1.10: +6 -0 lines
Diff to previous 1.10
Added method for compose-space on default panes.

Revision 1.10 - (view) (annotate) - [select for diffs]
Wed Nov 22 09:14:49 2000 UTC (13 years, 5 months ago) by cvs
Branch: MAIN
Changes since 1.9: +57 -43 lines
Diff to previous 1.9
Layout panes now alter both the region and the transformation of children.
The upper left corner of the region is set to (0,0) and the transformation
is set to a translating transformation corresponding to the upper left
corner in the coordinate system of the parent.

Reformated loop bodies so that Emacs knows how to indent them.  Introduced
artificial progns for that purpose.

Revision 1.9 - (view) (annotate) - [select for diffs]
Tue Sep 5 11:32:32 2000 UTC (13 years, 7 months ago) by cvs
Branch: MAIN
Changes since 1.8: +1 -1 lines
Diff to previous 1.8
Removed illegal &allow-other-keys from lambda list of defgeneric
change-space-requirements.

Revision 1.8 - (view) (annotate) - [select for diffs]
Fri Sep 1 12:21:17 2000 UTC (13 years, 7 months ago) by cvs
Branch: MAIN
Changes since 1.7: +4 -3 lines
Diff to previous 1.7
Improved indentation.

Revision 1.7 - (view) (annotate) - [select for diffs]
Tue Aug 29 12:22:23 2000 UTC (13 years, 7 months ago) by cvs
Branch: MAIN
Changes since 1.6: +14 -12 lines
Diff to previous 1.6
Improved algorithmic complexity of format-children.

Modified window-clear (does it do the right thing now?).

Simplified window-viewport-position.

Revision 1.6 - (view) (annotate) - [select for diffs]
Fri Aug 25 15:56:55 2000 UTC (13 years, 7 months ago) by cvs
Branch: MAIN
Changes since 1.5: +18 -2 lines
Diff to previous 1.5
Added new class for top-level sheet to be able to react immediately to
resize events.

Added methods for dispatch-event and handle-event on new class.

Revision 1.5 - (view) (annotate) - [select for diffs]
Thu Aug 24 12:41:47 2000 UTC (13 years, 7 months ago) by cvs
Branch: MAIN
Changes since 1.4: +10 -27 lines
Diff to previous 1.4
Fixed default space requirements to make address book example look
more like it used to.

Fixed space requirement calculation for various panes.

Reversed the order of child adoptions in composite panes to conform
to new definition of sheet-adopt-child.

Removed :after method for initialize-instance on table-pane.

Revision 1.4 - (view) (annotate) - [select for diffs]
Thu Aug 24 10:18:48 2000 UTC (13 years, 7 months ago) by cvs
Branch: MAIN
Changes since 1.3: +1 -1 lines
Diff to previous 1.3
Fixed the order in which children of composite panes are adopted so as
to preserve the final order, which determines the resulting layout.

Revision 1.3 - (view) (annotate) - [select for diffs]
Thu Aug 24 09:38:48 2000 UTC (13 years, 7 months ago) by cvs
Branch: MAIN
Changes since 1.2: +7 -8 lines
Diff to previous 1.2
Fixed lambda list in macro changing space-requirement.

Removed multiple &key in method change-space-requirements ((pane
composite-pane)...)

Fixed typo: resize-frame -> layout-frame.

Revision 1.2 - (view) (annotate) - [select for diffs]
Tue Aug 22 10:49:32 2000 UTC (13 years, 8 months ago) by cvs
Branch: MAIN
Changes since 1.1: +513 -62 lines
Diff to previous 1.1
Added many more panes.

Improved the implementation of the space allocation protocol.

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.197
Initial check-in

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

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5