Aim of that is to provide an easy and native window scrolling function.
My suggestion is to expand the DISPLAY primitive with a window size option - like that:
Code: Select all
@DISPLAY 1, { Title = "my title",width=600, height=2000, Color= #WHITE, mode="windowed", winwidth=600, winheight=400, minwidth=400, minheight=200}
To avoid such conflicts adding a (maybe optional) primitive WINDOW that determines the actual window size - which can differ from display size could help.
For example something like that
Code: Select all
@DISPLAY 1, { Title = "my title",width=600, height=1000, Color= #WHITE, hidden=True }
@WINDOW 1, {1, width=600, height=400, minwidth=400, minheight=200 }
A window gets an id and a handle to an actual display. Furhermore you would need a createwindow() function - but probavly nothing more
I.e. if using a window you would call createwindow() instead of createdisplay() which would do exactly the same as create display but actually visually show a fraction of the display only.
All other functions could stay unchanged. I.e you work with the display just as you do now. but not the entire display gets show. Abit more complicated and with more overhead, but probably clearer seggregated.
If such windows that show a part of the actual display will get implemented the restriction of the displaysize to the actual screen size should get circumvented somehow.
Maybe as 3rd option something like this:
Code: Select all
@VIRTUALDISPLAY (1, Title = "my title",width=600, height=4000, winwidth=600, winheight=400, minwidth=400, minheight=200, Color= #WHITE)