This is a question about which general approach to take, so I haven’t included any code.
Requirement:
I need to create a page within a multi-page editor that has two vertical sections in it. The top section has a tree and the bottom section has a text field. The tree and text field should fill their respective sections. Each section should scroll independently and there should be a splitter in between. When the editor is opened I want the visible area of the editor to be divided among the two sections based on some ratio I provide. Then when the editor is resized, the two sections will adjust proportionally to maintain the ratio and fit the page. This way there won’t be scroll bars on the editor page itself, just the two sections.
Proposed Solution:
My idea was to add a SashForm to the editor page and set the size of the SashForm to be the same as the editor’s visible area. Then I’d add a resize listener to the editor page and adjust the size of the SashForm so that it stays in sync with the page. However, I can’t find a way to get the editor’s visible area. So when I add the SashForm it just makes each section big enough to fit its data and adds a scroll on the editor page itself.
Is it possible to meet my requirement?
Success! The key was to listen for resize events on the
ScrolledForm. I’ve only tested on Fedora but I’ll take a look on Windows soon. The only thing that bothers me is that the use of the buffer constants seems a little hacky.