2012-01-09 08:08:59 UTC
I need a graphical object that allows for drawing some sort of
specialized table that can expand and collapse certain rows like a
TreeView. So I decided to program that either based on HTML in a
RichText thing or better everything by myself in a DrawingArea. The
DrawingArea would have to expand according to the contents and be
controlled by ScrollBars. Then I found there is a ScrollArea in Gambas3
which could do 90 % of the job by itself.
This is my understanding: A ScrollArea should be a DrawingArea which is
enlarged automagically as soon as you draw beyond its borders and will
produce ScrollBars for the user to slide the area forth and back below
the visible frame that confines it on screen.
Do you agree?
Ok, I have a small ScrollArea, say 100 x 100 px.
In Form_Open, I set its Contents to 2500 x 2500 px as from the
documentation I understand it won't do that by itself (why not?).
It shows two ScrollBars.
I draw a line from 1,1 to 500,500.
When I move the ScrollBars, nothing happens, i. e. the image shows the
beginning of the line and stands still. This happens in qt (KDE4) as
well as GTK (LXDE).
The ScrollArea is not cached. I guess if I really have to move it by
code, I will produce a whole lot of unnecessary Draw events.
But just in case, how would their position be calculated? I would have
to read the ScrollBar values, but their output is not documented - is it
percent? Or relative to anything?
(I cannot give you code snippets as this happened on my laptop this
weekend, and I don't have G3 here in my office yet.)
Really looking forward to your comments!