CLIM mail archive

[Prev][Next][Index][Thread]

problems with clim:open-window-stream



    Date: Mon, 28 Sep 1992 12:58 EDT
    From: Oliver Christ <oli@adler.ims.uni-stuttgart.de>

    [Platforms: Lucid CLIM 1.0/Allegro CLIM 1.1 with CLX on Sparc; using an NCD X Display]

    I've got some problems with clim:open-window-stream: some of the arguments are
    not recognized (or, at least not evaluated). :borders,
    :top/:left/:right/:bottom/:widht/:height have no visible effect (but :scroll-bars
    works). This problem occurred both with Lucid's CLIM as well as with Allegro. 

This may be your X window manager ignoring the size/position information
that CLIM passes to it.  It may also be that the version of CLIM you are
using is not passing the :USER-SPECIFIED-SIZE-P/:USER-SPECIFIED-POSITION-P 
properties to CLX correctly.

    Running the macro below several times with the root window as the parent, the
    window is displayed at the root windows "pointer position" (not the 'real'
    pointer position, but a clim-internal value which is not affected by pointer
    motions [why?] -- initially the upper left corner), which is altered by the the
    output functions (so that another call to open-window-stream puts the window to
    the altered position -- finally, all windows are displayed in the lower right
    corner of the screen...). Trying to do a (clim:stream-set-pointer-position*
    *clim-root* 400 400) informs me that no generic method exists for these
    arguments. In other words, I can't display a window where I want to -- window
    system basics don't work.

    The :borders argument doesn't work either -- but at least, I have scrollbars for
    my 2-line user message.

I dunno about this.

    When calling the macro while an application frame is running (for example, the
    clim-demo lisp listener), the temporary window *is* displayed at the "real"
    pointer position (WOW), but still without borders (hmm). When the :parent is the
    top-level-window of the clim:*application-frame*, the window is displayed *with*
    borders (finally!), but not with the correct :widht/:height values specified in the
    arguments.

    OK. So far, the :left/:right/:top/:bottom-stuff doesn't seem to have  the slightest
    effect on the position of the window. The :borders argument seems only to work
    when the :parent is a running application frame. 

    I don't need workarounds for the deficiencies of clim:open-window-stream. I need
    it with the functionality specified in the manual (and don't let me hear that it
    works with Genera...). The various CLIM vendors didn't have much work with their
    manuals, so at least they could provide a manual supplement with
    implementation-specific bugs and shortcomings. CLIM will not keep the friends it
    has (and deserves) when the implementations are so buggy that you have to spend
    more time in ("non-portable"!) bug-fixes and workarounds than in the interface
    design.

I sympathize with your frustrations, but it sounds like you are looking
for real software support services from you CLIM vendors.  In that case,
you should really send mail to the appropriate software support
organization.  Although it sometimes seems like it, CLIM@BBN.COM is not
a software support mailing list.

    Frustrated,

    Oli
    ======================================================================

    (defmacro test-dialog (format-string &rest args &key (parent *clim-root*))
      `(let ((menu-window (clim:open-window-stream :parent ,parent
						   :scroll-bars nil
						   :borders t
						   :left 500 :width 250
						   :top 400 :height 200))
	     (answer nil))
	(clim::menu-choose-from-drawer menu-window 'clim::menu-item
	 #'(lambda (stream type)
	 
	     (clim:format stream ,format-string ,@args)
	     (clim:terpri stream)
	     (clim:terpri stream)
	 
	     (clim:present " Yes "
			   type
			   :sensitive t
			   :stream stream)
	 
	     (clim:present " No "
			   type
			   :sensitive t
			   :stream stream)))))


0,,

References:

Main Index | Thread Index