Announcing: The way, QLiberator use the PE
Posted: Tue Jul 02, 2019 6:31 pm
QLiberator v3.xx was the first compiled SuperBASIC program, which was able to use the PE. I am in progress to make some demo programs for that, to show, how easy it is. Meanwhile, there is QPTR and EasyPTR, so there may be no demand for that, but perhaps it is even interesting.
Before launching all of the stuff, here my preface of the documentation. Perhaps it makes some appetite:
---------- snip ----------
How Qlib uses the Pointer.
Since v3.xx. QLiberator can be used with the PE. You have the look and feel of real Loose Menu Items, when you drag the pointer over the window to select its "Loose Menu Items" or move the window. But this is just an illusion, as we will see later.
QLiberator v3.xx was born in the days of QRAM, so the window and colour had the same feeling, colour 208. It was designed for the Sandy Futura and the QRAM colours should match.
Since this time, I always thought about the way, QLiberator manages the use of PE. As it is a compiled SuperBASIC program, there must be linked MC extensions in QLib_obj to use the PE. At this time, QPTR was far from release. QLiberator looked so PE native and I have asked Liberation Software several times about it, but never got an answer.
Qliberator v3.xx is a self compiled program with inbuilt machine code extensions to manage the hard work of compiling and the first compiled SB program, which uses the PE.
The next step was loading QLib_obj in S_Edit and look for keywords, which perhaps are used for those pointer things.
I found keywords like WM_Rptr, WM_Outln, WM_Sptr and so on. So I extracted this little "toolkit" from the file QLib_obj. Marcel Kilgus was a great help in disassembling it and gave the correct parameters and an example SB program to me.
The result is a little "toolkit": QLib_ptr_exts. It does not all the work, but it does the hard work. Whether this extension was written by Liberation software or written by Tony Tebby to help them out is not verified, as I have never got an answer about that from both of them.
As most of you might know, PE programs can be written with the help of the Window Manager or just with the Pointer Interface. QPTR has quite good examples for this. The Window Manager has the advantage to make a lot things by itself, for example returning the item number and drawing a little border outside an item, if the pointer has touched it and so on. The drawback is a bit more work in SB. Especially the QPTR keywords for the Window Manager can be quite complicated.
The Pointer Interface itself does not have such things, so you have to do a few things in SB. EDSPR is a good example, there are no item outlines, if you move the pointer over a block and the position of the pointer to a block is checked with a lot of SB procedures and functions.
---------- snip ----------
Before launching all of the stuff, here my preface of the documentation. Perhaps it makes some appetite:
---------- snip ----------
How Qlib uses the Pointer.
Since v3.xx. QLiberator can be used with the PE. You have the look and feel of real Loose Menu Items, when you drag the pointer over the window to select its "Loose Menu Items" or move the window. But this is just an illusion, as we will see later.
QLiberator v3.xx was born in the days of QRAM, so the window and colour had the same feeling, colour 208. It was designed for the Sandy Futura and the QRAM colours should match.
Since this time, I always thought about the way, QLiberator manages the use of PE. As it is a compiled SuperBASIC program, there must be linked MC extensions in QLib_obj to use the PE. At this time, QPTR was far from release. QLiberator looked so PE native and I have asked Liberation Software several times about it, but never got an answer.
Qliberator v3.xx is a self compiled program with inbuilt machine code extensions to manage the hard work of compiling and the first compiled SB program, which uses the PE.
The next step was loading QLib_obj in S_Edit and look for keywords, which perhaps are used for those pointer things.
I found keywords like WM_Rptr, WM_Outln, WM_Sptr and so on. So I extracted this little "toolkit" from the file QLib_obj. Marcel Kilgus was a great help in disassembling it and gave the correct parameters and an example SB program to me.
The result is a little "toolkit": QLib_ptr_exts. It does not all the work, but it does the hard work. Whether this extension was written by Liberation software or written by Tony Tebby to help them out is not verified, as I have never got an answer about that from both of them.
As most of you might know, PE programs can be written with the help of the Window Manager or just with the Pointer Interface. QPTR has quite good examples for this. The Window Manager has the advantage to make a lot things by itself, for example returning the item number and drawing a little border outside an item, if the pointer has touched it and so on. The drawback is a bit more work in SB. Especially the QPTR keywords for the Window Manager can be quite complicated.
The Pointer Interface itself does not have such things, so you have to do a few things in SB. EDSPR is a good example, there are no item outlines, if you move the pointer over a block and the position of the pointer to a block is checked with a lot of SB procedures and functions.
---------- snip ----------