Trying to use McCLIM
Andrea De Michele
andrea.demichele at gmail.com
Sat Oct 12 08:28:32 UTC 2019
Hello Craig,
I tried your code to see why the commands are disabled. I think this is
due to the fact that the commands are not inserted in the command table:
--------
CB> (command-present-in-command-table-p 'com-show-info 'cb-file)
NIL
--------
Evidently Symbolics and Franz versions of macro define-command-table
automatically add the commands in :menu argument to the command-table,
mcclim version no.
So you need to add by hand the commands to command-table like that:
---------
(add-command-to-command-table 'com-show-info 'cb-file)
---------
or use the :command-table name option in define command (for this you
need to define the command-table before the command):
-----------
(define-command (com-show-info :command-table cb-file) ()
...
...)
-----------------
Andrea De Michele
Craig Lanning <craig.t.lanning at gmail.com> writes:
> Daniel,
>
> Attached is a modified version of my code that actually works in
> LispWorks CLIM. It probably needs some additional tweaking, but it
> works to a point.
>
> Craig
>
> On Fri, 2019-10-11 at 16:01 -0400, Craig Lanning wrote:
>> Thanks for your quick reply.
>>
>> On Fri, 2019-10-11 at 21:37 +0200, Daniel Kochmański wrote:
>> > Hello Craig,
>> >
>> > Craig Lanning writes:
>> >
>> > > Gentlemen,
>> > >
>> > > I have been writing CLIM apps for years. I've use Symbolics CLIM
>> > > and
>> > > LispWorks CLIM. Code moves back and forth between these two with
>> > > little
>> > > difficulty. In the past when I tried McCLIM, I couldn't make it
>> > > work.
>> > >
>> > > I just tried it again. Is there a way to determine which version
>> > > of
>> > > McCLIM was loaded by QuickLisp? I tried it in both Clozure CL
>> > > and
>> > > SBCL. Neither worked, but each exhitited a different failure.
>> >
>> > I'm glad to hear that you've tried it again. I expect that there is
>> > easier way to check the Quicklisp version, but if you look into the
>> > file
>> > quicklisp-directory/dists/quicklisp/releases.txt and search for a
>> > string
>> > mcclim you'll see something like this:
>> >
>> > -- cut --
>> > mcclim
>> >
> http://beta.quicklisp.org/archive/mcclim/2019-07-10/mcclim-20190710-git.tgz
>> > ...
>> > -- cut --
>> >
>> > You can see there that it is a version cloned at 2019-07-10.
>> > Canonical
>> > repository is https://github.com/McCLIM/McCLIM/ so if you want to
>> > ensure
>> > the newest version clone it to your local-projects directory (or to
>> > one of asdf registory directories).
>> >
>> > >
>> > > SBCL compiles and loads my code. When I start the app, once it
>> > > displays
>> > > the frame, the command menus show up in the menu bar, but they
>> > > won't
>> > > pop down.
>> > >
>> > > Clozure CL compiles and loads my code. When I start the app, once
>> > > it
>> > > displays the frame, while the command menus will pop down, all of
>> > > the
>> > > items in the menu are grayed out, except the divider entries.
>> >
>> > I can reproduce the result you've mentioned for CCL on SBCL. Note
>> > that I
>> > had to make changes to your code since it didn't run
>> > (:redisplay-function argument should be :display-function and a
>> > function
>> > name typo s/display-detail/display-details/). I didn't change
>> > anything
>> > else so far.
>> > >
>> > > I also noticed that for both SBCL and Clozure CL, McCLIM had no
>> > > support
>> > > for Palettes. It failed when my code called make-palette and
>> > > frame-
>> > > manager-palette.
>> >
>> > McCLIM implements CLIM II specification which doesn't specify what
>> > palettes are.
>>
>> That is interesting since that bit of code works on both the
>> Symbolics
>> CLIM and the LispWorks CLIM.
>>
>> The code that Franz just released also has some stuff about Palettes.
>>
>> I'll have to look back through the CLIM II spec to see if it mentions
>> Palettes.
>>
>> Palettes may have been something that was added after the 2.0 spec
>> was
>> released. I think that Symbolics' CLIM implementation was considered
>> to be 2.1 and I don't know about LispWorks. I think that Franz
>> implementation may have been 2.2.
>>
>> > > The app is just a toy that I want to use as the example for a
>> > > book
>> > > that
>> > > I am writing about using CLIM.
>> > >
>> > > I have attached a zip file of the source code. With the code
>> > > unzipped,
>> > > you can compile and load the app by loading system.lisp into your
>> > > lisp
>> > > environment. Its a fairly simple file to compile and load the
>> > > files
>> > > for
>> > > the app.
>> > >
>> > > Once the app is loaded you can start it by typing the form
>> > > (cb:run-class-browser)
>> > >
>> >
>> > I've started the application (as noted above). If nobody replies
>> > during
>> > the weekend about why menu commands seem to be disables I'll try to
>> > debug it on Monday.
>> > > Incidently, it would be helpful if there was a feature symbol
>> > > that
>> > > was
>> > > unique to McCLIM. So that I could distinguish between running in
>> > > McCLIM
>> > > and some other CLIM.
>> >
>> > As it happens such feature symbol exists, it is `:mcclim'.
>>
>> Thanks, that is great. I guess I missed it when I looked through the
>> list of symbols.
>>
>> Craig
>>
>> > > Craig
>> >
>> > Best regards,
>> > Daniel
>> >
>> > --
>> > Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland
>> > TurtleWare - Daniel Kochmański | www.turtleware.eu
>> >
>> > "Be the change that you wish to see in the world." - Mahatma Gandhi
>
>
--
Andrea De Michele
More information about the mcclim-devel
mailing list