libera/#clim - IRC Chatlog
Search
11:33:22
lisp123
If I want to change the layout of an application-pane while running my app, what is the recommended approach? Should I just clear the application-pane and rebuild it or should I create my classes of panes and then replace the pre-existing applicaiton-pane with one of these?
11:45:35
lisp123
For example, I'm unable to do (setf (get-frame-pane *application-frame* 'display) ...), which leads me to believe the easiest way is to simply clear a pane and rewrite its contents vs. replacing it out right
11:47:47
lisp123
Alternatively, I could try (setf frame-current-layout), but wondering if that causes any issues with resizing..will test it out now
12:13:01
jackdaniel
I think that you are confusing two things here. there is an application-frame and an application-pane
12:13:33
jackdaniel
panes are "sub-windows" while the frame is an abstract entity organizing them together
12:14:09
jackdaniel
if you want to redefine the frame's current layout, add an option :reinitialize-frames t to the frame definition, then when you redefine the frame then changes will be propagated to its running instances
12:14:46
jackdaniel
if you want to redefine the application pane's display function, the best approach is to set :display-function 'my-function (not, that not #'my-function)
12:15:10
jackdaniel
redefine said function and trigger redisplay (i.e by running some command, or recompiling a frame with :reinitialize-frames t)
12:15:22
lisp123
Yeah, so my original question was whether I should 'draw' everything within an application-pane or should I define multiple panes and then switch them out
12:15:51
jackdaniel
eventually, and that's an approach I'm often taking, define a generic function display that specializes on the frame, then it won't be inlined
12:16:41
jackdaniel
that depends on the use case. if you want a few independent application panes, then put them in a layout - i.e one pane shows logs and another shows some manipulative data
12:17:30
lisp123
For example, somebody can click on a button and it then should take them to a "new page" (new pane effectively)
12:18:32
lisp123
"eventually, and that's an approach I'm often taking, define a generic function display that specializes on the frame, then it won't be inlined" --> that's a very good idea, thanks
12:37:12
jackdaniel
to customzie the view there is a concept "view", various presentation methods specialize on it
12:37:36
jackdaniel
simpler approach is also fine I suppose, just keep in mind that this use case may be handled differently