Yes, it is possible, but it does not happen automatically - i.e. with no programmer intervention.
If your main application windows has a graphics area, defined by a %gr, then you can make it user-resizable by grabbing and moving the corners of the application window. You make the %gr graphics area resizable by using the %pv format code, i.e.
'%pv%gr
If the user does that, do you want to resize and/or change the contents of the graphics window? It seem to me that you do. So, you have to give the %gr graphics area a callback function, and tell it that the program will take care of redrawing the graphics area contents.
Hence, you will want:
'%pv%^gr[user_resize,rgb_colours]&', .... GRAPHICS_CALLBACK etc.
In the GRAPHICS_CALLBACK function, you need to see if the callback has been invoked by reason of a graphics resize. There are two ways of doing this, but the preferred way seems to be by this sort of construct:
CBR=clearwin_string@(‘CALLBACK_REASON’)
which returns 'RESIZE' in CBR if the graphics resize was the reason for invoking the callback. If it is, then you calculate where everything needs to appear, and redraw the graphics area. Be prepared for this to happen repeatedly as the application window is resized. On a modern computer, quite complex redraws are essentially instant.
Eddie