[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:Mon Sep 29 15:44:12 1999 
Subject:Re: Help on resizing 
From:Aaron Sloman See text for reply address 
Volume-ID:990929.02 

pop@roo.cs.umass.edu (Robin Popplestone) writes:

> Date: 29 Sep 1999 13:59:51 GMT

Robin if you include extracts from online documentation in a
message, it won't be easily readable by non-Ved users (e.g. those
who prefer Emacs to Ved) unless you strip Ved's graphic characters
which you can do for a marked range thus (I think)

    ENTER chat r -bui

(or for a whole file with ENTER strip)

I've done that for your quote below.

> I'm having problems with what to do when a user resizes a shell
> window containining lots of Poplog widgets. It seems that
> one can catch the resize request as described in ref xt_libs
>
> XptResizeResponse(widget) -> widentproc                      [procedure]
> widentproc -> XptResizeResponse(widget)                      [procedure]
>         Assigns  an  action  to  be  called  when  widget  is   resized.
>         widentproc is a  word, ident or  procedure. If it  is a word  or
>         ident  then  valof/idval  is  used  to  obtain  the   underlying
>         procedure. The procedure should takes one argument, widget,  and
>         return  no  results.  The  procedure  can  perform  any  actions
>         necessary to update the contents  of the widget, but should  not
>         itself cause the widget  to resize since this  may cause a  race
>         condition.
>
> but this gives no indication of the parameters of the resize
> event. The width and height of the shell widget have their
> OLD values at the time this request is handled. There seems
> to be no way of finding the NEW values, which is what
> one wants if one is to do anything sensible. I've had
> no luck grepping around the source code for XVED etc...

I presume there are two times involved:
    1. when the event is detected and the event handler creates the
        callback
    2. when the callback runs

If that is correct, then at time 2 if you interrogate the widget you
can find its new dimensions. I can't remember the syntax for this
but I had to use it in the rc_window_location method in here:

ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/rclib/lib/rc_window_object.p

so it should be easy to find.

Apologies if that is not the answer to your question.

Incidentally if you are developing a general purpose GUI design
package it may be worth comparing notes: maybe I can add some of
your stuff to the RCLIB package. I've deliberately built mine on top
of LIB  rc_graphic so that existing drawing code can easily be used,
with the required scale and location invariance (e.g. the stuff in
TEACH RC_GRAPHPLOT) and also because I wanted to allow picture
objects, including movable picture obojects, to be procedurally
defined: so an object is defined by the code for drawing/redrawing
it. It's slow with complex picture objects, but very flexible. I
intend to add support for bitmaps but have not yet done so.

Examples are in
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/rclib/teach/rc_linepic

My answer to propsheet is rc_control_panel
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/rclib/help/rc_control_panel

with specially convenient syntax in the rcmenu package, using the

    define :menu ... enddefine
format, described in

    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/rcmenu/help/ved_menu

Aaron
===
-- 
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs/ )
School of Computer Science, The University of Birmingham, B15 2TT, UK
EMAIL A.Sloman AT cs.bham.ac.uk   (NB: Anti Spam address)
PAPERS: ftp://ftp.cs.bham.ac.uk/pub/groups/cog_affect/0-INDEX.html