Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to McCLIM-0-9-6:||(view) (annotate)|
Prepare for the 0.9.6 release.
Converted MCCLIM-IMAGES to CLIM 2.2 bitmap functions (with extensions). Includes new demo application.
Updated the version requirement on the flexichain dependency.
Moved bordered-output.lisp and table-formatting.lisp earlier in the loading process. (antifuchs, please save me from this maze of twisty dependencies! They'are all alike!)
Moved with-output-as-presentation to presentations.lisp, so it can be available when input-editing.lisp is compiled.
Fixed ASDF system for MCCLIM-IMAGES.
My last commit was a broken monster, here's the rest.
- added jpeg.lisp by Eric Marsden and Troels Henriksen - changed rgb-image-design to invalidate the medium-specific cache automatically instead of being bound to one medium - added output recording for draw-design of an rgb-image-design
Added extension MCCLIM-IMAGES in Extensions/Images. This extension is a simple collection of functions that make it easy to load images and convert them into CLIM designs. Currently, only the GIF and XPM formats are supported. If it turns out that the facilities provided by MCCLIM-IMAGES are useful for non-CLIM applications, it could be generalised into an external library, but due to its simplicity, I doubt the major benefit of this. An example of use: ;; Is there a non-CLIM-INTERNALS way of getting these things drawn? (define-presentation-method present ((pattern climi::pattern) (type climi::pattern) stream (view drei-view) &key acceptably for-context-type) (declare (ignore acceptably for-context-type)) (multiple-value-bind (x y) (stream-cursor-position stream) (draw-pattern* stream pattern x y) (stream-increment-cursor-position stream (+ (pattern-width pattern)) 0))) (asdf:operate 'asdf:load-op :mcclim-images) (asdf:operate 'asdf:load-op :mcclim-images-gif) (asdf:operate 'asdf:load-op :mcclim-images-xpm) (define-command (com-insert-image :name t :command-table climacs-gui::development-table) ((image-pathname 'pathname :default (merge-pathnames (user-homedir-pathname)) :insert-default t)) (if (probe-file image-pathname) (handler-case (insert-object (point) (mcclim-images:load-image image-pathname)) (mcclim-images:unsupported-image-format (c) (display-message "Image format ~A not recognized" (mcclim-images:image-format c)))) (display-message "No such file: ~A" image-pathname)))
Added support for "modes" (roughly similar to Emacs' minor-modes) to Drei.
Don't compile the pixie look if CLIM-BEAGLE is set.
Renamed the GTKAIRO feature to CLIM-GTKAIRO ... for consistency with CLIM-GRAPHIC-FORMS and CLIM-BEAGLE ... also CLIM-GL
Fixed McCLIM on OpenMCL/Linux. ... don't require cocoa by default. ... instead, conditionalize on CLIM-BEAGLE
Added nasty hack to inform CLISP users of their sub-par CLX, and offer a fix.
Made base.lisp depend on delegating-buffer.lisp
Beagle backend fixes * functionality not tested, but it loads under clozure cl snapshot * Patches by Greg Pfeil Signed-off-by: Rudi Schlatte <firstname.lastname@example.org>
Changed Drei to use a view-based paradigm, didn't make any significant changes to ESA just yet.
Added Drei "target" concept, facilitating search/replace-commands that act over multiple buffers (or "targets").
define new class graphic-forms-pixmap; separate a few pixmap-related methods from medium.lisp to the new pixmap.lisp
Update mcclim versions to 0.9.6-dev. This ends the freeze period. Happy hacking, McCLIM hackers.
Prepare the 0.9.5 release * Less depressing release notes (i.e. MORE non-depressing release notes). * Web page updates for new version * mcclim.texi update for MCCLIMVERSION
Revamped the Drei test suite infrastructure slightly.
Revised Lisp syntax module, making a bunch of improvements and added handling of even the craziest lambda lists. Now conses more!
Merged splittist's work on splitting the general parts of the Lisp syntax's LR parser into an abstract syntax type. Also some supporting (mostly package) fixes needed to make it all still roll.
Added the native windows backend clim-graphic-forms, by Jack D. Unrue
Added the tab layout. * Extensions/tab-layout.lisp: New file. * Examples/tabdemo.lisp: New file. * mcclim.asd (CLIM): Added Extensions/tab-layout.lisp. (CLIM-EXAMPLES): Add tabdemo.lisp * package.lisp (CLIM-TAB-LAYOUT): New package. * Examples/demodemo.lisp: Added a button for the tabdemo. * Doc/make-docstrings.lisp: Process the clim-tab-layout package. * Doc/mcclim.texi: New chapter about the tab-layout. * Backends/CLX/frame-manager.lisp (GENERATE-STANDARD-PANE-SPECS, FIND-CONCRETE-PANE-CLASS): Obey define-abstract-pane-mapping even for names not the internal packages. * Backends/gtkairo/event.lisp (TAB-BUTTON-HANDLER): New. * Backends/gtkairo/frame-manager.lisp ((MAKE-PANE-2 TAB-LAYOUT-PANE)): New. (RESOLVE-ABSTRACT-PANE-NAME): Renamed. * Backends/gtkairo/gadgets.lisp (TAB-BUTTON-EVENT, TAB-PRESS-EVENT, TAB-RELEASE-EVENT, GTK-TAB-LAYOUT): New classes. (REALIZE-NATIVE-WIDGET, CONTAINER-PUT, (SETF CLIM-TAB-LAYOUT:TAB-LAYOUT-PAGES), REORDER-NOTEBOOK-PAGES, CONTAINER-MOVE, ALLOCATE-SPACE, (SETF CLIM-TAB-LAYOUT:TAB-LAYOUT-ENABLED-PAGE), CONNECT-NATIVE-SIGNALS, CLIM-TAB-LAYOUT:NOTE-TAB-PAGE-CHANGED, SET-TAB-PAGE-ATTRIBUTES, HANDLE-EVENT): New functions and methods on gtk-tab-layout. (PARENT-AD-HOC-PRESENTATION): New class. * Backends/gtkairo/port.lisp (GTK-WIDGET-MODIFY-FG): New function. * Backends/gtkairo/ffi.lisp: Regenerated.
Split the interesting systems from mcclim.asd into their own .asd files, to ease asdf-installation. Beware: If you had symlinks from e.g. /path/to/asdf-central-registry/clim-listener.asd to mcclim.asd, this will break your setup. Run ./symlink-asd-files.sh /path/to/asdf-central-registry/ to fix this.
Added implementation of the gray streams protocol using Drei buffers as the backend.
Checkin the new version's release notes.
Re-add the dependency on core.lisp in mcclim.asd
Make mcclim.asd work better with OpenMCL and CLISP.
Add a new class RGB-IMAGE (renamed from closure's IMAGELIB:AIMAGE) and RGB-IMAGE-DESIGN (used to implement CLOSURE/CLIM-DEVICE::RO/IMG). Drawing code implemented only in CLIM-CLX, and only for true color visuals. * Examples/rgb-image.lisp: New file, from closure/src/imagelib/basic.lisp. * Backends/CLX/medium.lisp (MEDIUM-DRAW-IMAGE-DESIGN*, MEDIUM-FREE-IMAGE-DESIGN, COMPUTE-RGB-IMAGE-PIXMAP, COMPUTE-RGB-IMAGE-MASK, IMAGE-TO-XIMAGE-FOR-DRAWABLE, IMAGE-TO-XIMAGE, MASK->BYTE, PIXEL-TRANSLATOR): Methods and functions, renamed from original closure code.
Really Make CLISP Work.
Make McCLIM loadable in CLISP.
With Robert Strandh's permission, move gsharp/bezier.lisp into McCLIM. All symbols are still in the CLIMI package and undocumented, but should ultimately move into CLIME or a new package. Try CLIM-FIG or gsharp to test. * NEWS: updated. * mcclim.asd (CLIM-BASIC): Depend on flexichain. Added bezier.lisp * bezier.lisp: New file, from gsharp. Postscript methods taken out. * Backends/PostScript/graphics.lisp (MEDIUM-DRAW-BEZIER-DESIGN*): New methods, from gsharp/bezier.lisp. * Backends/gtkairo/cairo.lisp (MEDIUM-DRAW-BEZIER-DESIGN*): New methods. * Backends/gtkairo/ffi.lisp: regenerated. * Examples/clim-fig.lisp (DRAW-FIGURE, HANDLE-DRAW-OBJECT): Added a bezier drawing mode.
Split up gtkairo/medium.lisp, moving the cairo medium into its own file.
Added a GDK medium, for more CLX-like output. Set CLIM-GTKAIRO::*MEDIUM-TYPE* to :GDK or :CAIRO to choose. * mcclim.asd: Added gdk.lisp. * Backends/gtkairo/gdk.lisp: New file. * Backends/gtkairo/ffi.lisp: Regenerated. * Backends/gtkairo/gtk-ffi.lisp (gdkpoint): New struct definition. * Backends/gtkairo/medium.lisp (CAIRO-MEDIUM): Renamed from gtkairo-medium. (GTKAIRO-MEDIUM): New superclass. (INVOKE-WITH-CAIRO-MEDIUM): Renamed to INVOKE-WITH-MEDIUM, now generic. (METRIK-MEDIUM-FOR): New function. (*MEDIUM-TYPE*): New variable. (MAKE-MEDIUM): Dispatch on *medium-type*. (SYNC-TEXT-STYLE, ASSERT-FONT-STATUS, CAIRO-TEXT-EXTENTS): Removed. (SYNC-SHEET, all MEDIUM-foo-bar functions): s/with-medium/with-medium/ and s/gtkairo-medium/cairo-medium/. (INVOKE-WITH-PANGO-LAYOUT): New. (MEDIUM-DRAW-TEXT*): s/with-pango-cairo/with-pango-layout/. (TEXT-SIZE, TEXT-BOUNDING-RECTANGLE): Use METRIK-MEDIUM-FOR. (TEXT-STYLE-foo): Use METRIK-MEDIUM-FOR. Perform caching in the primary method. Put the class name into the hash key. (DESTROY-SURFACE-MEDIUM): Renamed from destroy-cairo-medium. (DESTROY-MEDIUM): New generic function and method. (...) Etc. pp. * pango.lisp (METRIK-MEDIUM-MIXIN): Renamed from metrik-medium. (CAIRO-METRIK-MEDIUM, GDK-METRIK-MEDIUM): New classes. (WITH-MEDIUM): Renamed from WITH-CAIRO-MEDIUM. (WITH-PANGO-LAYOUT): Renamed from with-pango-cairo. (CONFIGURE-PANGO-LAYOUT, INVOKE-WITH-PANGO-LAYOUT, INVOKE-WITH-PANGO-CAIRO): Replaced the latter. (TEXT-SIZE, TEXT-BOUNDING-RECTANGLE*): Split up into into methods for cairo and gdk. (TEXT-STYLE-foo): s/metrik-medium/metrik-medium-mixin/. * pixmap.lisp (%medium-copy-area): Factor cairo calls out into combining methods. * port.lisp (GDK-METRIK-MEDIUM): New slot in the port. (CAIRO-METRIK-MEDIUM): Renamed from metrik-medium. (INITIALIZE-INSTANCE): Install gdk-metrik-medium. (INVOKE-WITH-GDKCOLOR, WITH-GDKCOLOR): New, based on gtk-widget-modify-bg. (DESTROY-MEDIUMS, RESET-MEDIUMS): Call destroy-medium.
Enable support for extended text styles using strings for family and face, as already implemented in CLIM-CLX. Teach Gtkairo do the same. Add an API for font listing (implemented in CLX and Gtkairo, plus a trivial fallback implementation for other backends) and a font selection dialog as an example. * Doc/mcclim.texi: New chapter "Fonts and Extended Text Styles" * Examples/font-selector.lisp: New file. * Examples/demodemo.lisp: Added a button for the font selector. * mcclim.asd (CLIM-EXAMPLES): Added font-selector.lisp. * package.lisp (CLIM-EXTENSIONS): Export new symbols font-family font-face port-all-font-families font-family-name font-family-port font-family-all-faces font-face-name font-face-family font-face-all-sizes font-face-scalable-p font-face-text-style. * medium.lisp (MAKE-TEXT-STYLE, TEXT-STYLE-EQUALP): Allow strings for family and face. (MAKE-TEXT-STYLE-1): New helper function. * ports.lisp (FONT-FAMILY, FONT-FACE): New classes. (port-all-font-families font-family-name font-family-port font-family-all-faces font-face-name font-face-family font-face-all-sizes font-face-scalable-p font-face-text-style): New generic functions and default methods. * Backends/CLX/port.lisp (FONT-FAMILIES): New slot in the port. (CLX-FONT-FAMILY, CLX-FONT-FACE): New classes. (port-all-font-families font-family-name font-family-port font-family-all-faces font-face-name font-face-family font-face-all-sizes font-face-scalable-p font-face-text-style): New methods. (SPLIT-FONT-NAME, RELOAD-FONT-TABLE, MAKE-UNFRIEDLY-NAME): New helper functions. * Backends/gtkairo/pango.lisp (MAKE-FONT-DESCRIPTION): Support strings for family and face. (PANGO-FONT-FAMILY, PANGO-FONT-FACE): New classes. (port-all-font-families font-family-name font-family-port font-family-all-faces font-face-name font-face-family font-face-all-sizes font-face-scalable-p font-face-text-style): New methods. (INVOKE-LISTER, pango-font-family-list-faces, pango-font-face-list-sizes): New helper functions. * Backends/gtkairo/port.lisp (GLOBAL-PANGO-CONTEXT): New slot in the port. ((INITIALIZE-INSTANCE GTKAIRO-PORT)): Set the pango context. * Backends/gtkairo/ffi.lisp: regenerated.
Rewrote text drawing and font metric functions using Pango. * pango.lisp: New file. * gtk-ffi.lisp (PANGO_SCALE, PangoRectangle): New. * ffi.lisp: Regenerated. * medium.lisp (METRIK-MEDIUM, WITH-CAIRO-MEDIUM): Moved to pango.lisp. (MEDIUM-DRAW-TEXT*): Rewritten using Pango. (TEXT-STYLE-ASCENT, TEXT-STYLE-DESCENT, TEXT-STYLE-FIXED-WIDTH-P, TEXT-SIZE, TEXT-BOUNDING-RECTANGLE*): Methods on METRIK-MEDIUM deleted. * package.lisp: Export new variable *DEFAULT-FONT-FAMILIES*.
Fixed file interdependencies in the Clouseau system definition.
Fix CMUCL support. * event.lisp (get-next-event): Yield. * frame-manager.lisp ((defgeneric make-pane-2)): New. * gtk-ffi.lisp (invoke-with-gtk): Inhibit scheduling. * mcclim.asd: Don't (require :clx) when :gtkairo is set.
Added lisp-syntax-tests.lisp file to the DREI-TESTS system.
Reimplemented key event handling. * event.lisp (*KEYSYMS*, DEFINE-KEYSYM): Removed. (*KEYS*, DEFINE-KEY): New. (GDKMODIFIERTYPE->MODIFIER-STATE): Ignore hyper, too. (STATE-WITHOUT-BUTTONS): New. (+CLIM-MODIFIERS+, MODIFY-MODIFIERS): Copy&Paste from CLIM-CLX. (KEY-HANDLER): Reimplemented using *keys* and modify-modifiers. * ffi.lisp: Regenerated. * keys.lisp: New file. * keygen.lisp: New file. * keysymdef.lisp: Removed.
Replaced the old RT-based test suite with a new FiveAM-based one. Also added a fair amount of new tests. What isn't tested is: - CLIM parts - Commands - Syntax module and specific syntaxes (Unfortunately, these are arguably the most interesting things to test).
New file ffi.lisp for generated FFI code. gtk-ffi.lisp and cairo-ffi.lisp still have definitions that need to be maintained manually.
Make sure dialog.lisp is loaded before builtin-commands.lisp.
Commit mcclim.asd changes to load Drei and the other added files. May contain trace amounts of ugly (and necessary complexity).
Easier Gtkairo building on Windows: If the :GTKAIRO feature is set, disable the dependency from CLIM-LOOKS to CLIM-CLX. This way, the default is to load CLIM-CLX as usual, but users who explicitly request Gtkairo can build without CLX and sb-bsd-sockets.
update gtkairo build order
(argh. save buffers)
Increment asd file version to .3-dev
Add release notes and set the version on the MCCLIM system
Added the views.lisp example to the CLIM-EXAMPLES system definition.
Get rid of the silly code deletion note in mcclim.asd (finally!)
Commit 2 of 3 acl fixes by Willem Broekema: * package.lisp depends on patch.lisp (how did I miss this all the time?) * use xlib::*x-tcp-port*
Commit Douglas Crosher's non-symbol case fixes: * defsystem :clouseau: avoid pathname directory namestrings in file component names; reworking to be more portable. * defsystem :clim-examples: add the stopwatch example. * Update support for the Scieneer CL.
Add "Logic Cube" example.
Add the inspector to mcclim.asd, depend on :mcclim instead of :clim, :clim-looks for examples and applications.
Medium benchmark toy. * mcclim.asd (clim-examples): Added drawing-benchmark.lisp. * Examples/drawing-benchmark.lisp: New file. * Examples/demodemo.lisp (demodemo): Added Drawing Benchmark button. * Backends/gtkairo/port.lisp (port-force-output): Call gdk_flush.
* mcclim.asd (clim-examples): Don't conditionalize gadget-test on #+CLX. (I hope this doesn't break anything for anyone, but it _does_ work without CLX, I don't see a compilation time dependency on clim-looks either, and :clx isn't necessarily on *features* at system parse time anyway.)
* Backends/gtkairo: New directory: Experimental GTK+ backend. * mcclim.asd (clim-gtkairo): New system. (clim-looks): Depend on clim-gtkairo if the gtkairo feature has been set by the user. * ports.lisp (*server-path-search-order*): s/gtk/gtkairo/
* Examples/text-size-test.lisp: New file. Visual test for the TEXT-SIZE function. * Examples/demodemo.lisp: Added a button for text-size-test. * mcclim.asd (clim-examples): Added text-size-test.lisp.
Andy Hefner's code for keeping track of graph edges, and demo code for draggable graphs. I've been running with this for about a year now, and I'm bored of having to snip it out of diffs all the time. (Also add the drag-and-drop-translator demo to demodemo)
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.
Add highly experimental Null backend. The idea is that the null backend implements all the mcclim machinery for a backend, but doesn't side-effect the rest of the world; this should make it possible to write test cases for mcclim-internal invariants, and potentially also mcclim applications, by running them under this backend. This utopia is quite a way off, however; what actually works at present is not much more than: (setf clim:*default-server-path* :null) (let ((stream (clim:open-window-stream) (clim:draw-rectangle* stream 10 10 100 200) (clim:stream-output-history stream)) but it's a start. (Additionally, the Null backend could be used as a starting point for implementing other backends.)
* mcclim.asd (defsystem :clim-system): include a few more of the examples. (patch by Douglas Crosher, mcclim-devel, 'Patch: clim-example system definition', 16 March 2006)
Changes to get Beagle running with current sources. Various demos 'run' (tested address-book, clim-listener, functional-geometry) but many things aren't working (scroll bars).
Change build order to work around CMUCL method definition bug. * instead of system clim, system clim-looks now depends on clim-postscript
Made the command-table-inherit-from slot of command tables setf-able, as per the Franz manual. Changed the default documentation of presentation translators from the presentation object to the name of the translator. If this is too controversial I will back it out. Force the tester of drag-and-drop translators to be definitive; otherwise serious weirdness ensues. Added the functional geometry explorer of Frank Buss and Rainer Joswig, who graciously agreed to it being included, as an application.
Patches from dtc for Scieneer Common Lisp, and a few other fixes too.
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 :)
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.
Implement standard-tree-output-records using spatial trees. Also, document the updated installation process in INSTALL.ASDF.
SBCL / OpenMCL(?) build fixes Fix the perennially annoying duplicate component error in the Scigraph defsystem (name the components by the full namestring, which should be unique) While I'm at it, fix the annoyance over static / dynamic packages: for sbcl, clim-lisp-patch and clim-mop are dynamic packages, so they shouldn't be created by DEFPACKAGE (because reevaluating the defpackage subsequently, say by recompiling stuff, then invokes undefined behaviour)
Make Allegro CL a McCLIM/asdf-supported lisp. Thanks for the patch go to rpgoldman.
without-package-locks is in cmucl's EXTENSIONS package.
Add two dependencies spotted by Tim Daly Jr.
Backends/CLX/image.lisp depends on .../package.lisp. Spotted by Christophe Rhodes.
Adding the ASDF-only dependency-aware mcclim.asd file. This file buys McCLIM ASDF-INSTALLability, among other things.
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.
|Powered by ViewVC 1.1.5|