[mcclim-devel] Re: [mcclim-cvs] CVS update: mcclim/dialog.lisp

Max-Gerd Retzlaff m.retzlaff at gmx.net
Fri Aug 26 13:13:15 UTC 2005


Hello

On Fri, Aug 26, 2005 at 01:50:21PM +0200, Paolo Amoroso wrote:
> mretzlaff at common-lisp.net (Max-Gerd Retzlaff) writes:
> 
> > Modified Files:
> > 	dialog.lisp 
> > Log Message:
> > (climi::frame-event-queue *application-frame*) as argument :INPUT-BUFFER
> > to the call of OPEN-WINDOW-STREAM in WITH-STREAM-IN-OWN-WINDOW (was not
> > specified previously).
> 
> I still don't get separate windows in dialogs of town-example.lisp
> that have :own-window t.  The accepting-values dialogs still appear in
> the interactor.  I use the latest McCLIM CVS sources.

Did you change the call TO ACCEPTING-VALUES in the macro
ACCEPTING-VALUES-WITH-STYLE-AND-TITLE (and a recompile of the whole file)?

ACCEPTING-VALUES-WITH-STYLE-AND-TITLE is only used for the *output* of the
commands COM-SHOW-TOWN-INFO and COM-GET-DISTANCE. And that did not work for
you? I just grabbed a fresh cvs checkout and it worked for me.


If you want the accepting-values dialogs of the partial-command-parser (i.e.
if you click in the menu on "Show Town Info" or "Get Distance") to appear
in a new window, you have to change the :own-window argument of that call.
It is burried in MAKE-PARTIAL-PARSER-FUN in mcclim/commands.lisp, try this
patch:

 -- zipp --

--- commands.lisp_old   2005-08-26 15:06:27.370372680 +0200
+++ commands.lisp       2005-08-26 15:06:29.218091784 +0200
@@ -755,7 +755,7 @@
                                           ,command-table
                                           :errorp nil))
                      ,@(mapcar #'list required-arg-names original-args))
-                 (accepting-values (,stream)
+                 (accepting-values (,stream :own-window t)
                    (format ,stream
                            "You are being prompted for arguments to ~S~%~%"
                            ,command-line-name)

 -- zapp --

There seems to be no simple way to just change the default for a
single application frame. The right way seems to be to modify the
application-frame's top-level with something like (:top-level
(default-frame-top-level :partial-command-parser ..) in one's
DEFINE-APPLICATION-FRAME. But that seems to be a lot of work as the
default, COMMAND-LINE-READ-REMAINING-ARGUMENTS-FOR-PARTIAL-COMMAND,
calls the partial-command-parsers that are created via mentioned
MAKE-PARTIAL-PARSER-FUN when the commands of the application are
defined (DEFINE-..-COMMAND -> DEFINE-COMMAND -> %DEFINE-COMMAND)..

Bye,
Max

-- 
Max-Gerd Retzlaff <m.retzlaff at gmx.net>

For your amusement:
Scientists will study your brain to learn more about your distant cousin, Man.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/mcclim-devel/attachments/20050826/06b1f5cc/attachment.sig>


More information about the mcclim-devel mailing list