brother Damian — 18-Jan-2022/15:20:54-8:00
Hello!
I am using Rebol-view 278-3-1 on a Windows 10
I am trying to write a program that includes 3 text-lists. The second is populated depending on a selection made with the first text-list. The third one is populated by a selection made in the second.
What I see is that when the GUI is first drawn, if the contents of a text-list don’t fit (given the dimensions of the text-list) then the scroll bars in the text-list work, giving me access to the extra elements on the list.
As the second text-list is empty (when the GUI is first drawn) all “contents fit”, but if I select an option that populates more items that what the second text-list can show, the scroll bars don't work, and I can’t access the rest of the elements.
This happens whether I ask to “show” the particular text-list or the entire GUI.
Does anyone know a workaround?
Thanks in advance!
Brother Damian — 19-Jan-2022/14:24:24-8:00
To illustrate the problem. Say:
info: [“item1” “item2” “item3” “item4” “item5” “item6” “item7” “item8” “item9” “item10” “item11” “item12” “item13” “item14” “item15”]
view layout [title “Scroll bars test” l1: text list data info]
We should see the text-list with a default size showing some of the elements in the info series AND scroll bars that give us access to the rest.
If instead we go
view layout [title “Scroll bars test” l1: text-list]
At this moment we should see a text-list with no info and therefore scroll bars that are not enabled. The problem happens now, if we load the text-list with data that goes beyond the viewable area, the scroll bars will not help us access it.
view layout [title “Scroll bars test” l1: text-list btn “Load Info” [l1/data: info show l1] ]
So, to reiterate, how can I have the scroll bars activate when the new data set is loaded?
Thanks in advance!
Sergey_Vl — 20-Jan-2022/5:02:45-8:00
hi!
I'm not sure I understood the problem correctly, but try refinement /update. For example, a small file viewer - select a file in the first list, the content is updated in the second:
>> view layout[text-list data read %. [b/data: read value b/update show b] b: text-list]
to see all possible options try:
>> ? b
B is an object of value:
type word! face
offset pair! 20x228
size pair! 200x200
span none! none
pane object! [type offset size span pane text color image effec...
text string! ""
color tuple! 240.240.240
image none! none
effect none! none
data block! length: 0
...
text-pane function! [face id]
update function! [/local item value]
resize function! [new /x /y /local tmp]
to see source object "b":
>> source b
... many text...
Sergey_Vl — 20-Jan-2022/5:02:48-8:00
hi!
I'm not sure I understood the problem correctly, but try refinement /update. For example, a small file viewer - select a file in the first list, the content is updated in the second:
>> view layout[text-list data read %. [b/data: read value b/update show b] b: text-list]
to see all possible options try:
>> ? b
B is an object of value:
type word! face
offset pair! 20x228
size pair! 200x200
span none! none
pane object! [type offset size span pane text color image effec...
text string! ""
color tuple! 240.240.240
image none! none
effect none! none
data block! length: 0
...
text-pane function! [face id]
update function! [/local item value]
resize function! [new /x /y /local tmp]
to see source object "b":
>> source b
... many text...
Brother Damian — 21-Jan-2022/3:04:52-8:00
Thank you Sergey_VI, that indeed solves the problem. After the update, the scroll bars become active as needed.
Following my example and your recommendation, the code needs to be amended as so:
view layout [title “Scroll bars test” l1: text-list btn “Load Info” [l1/data: info l1/update show l1] ]