Today (14th July 2013) I have released a
new PortablE beta of my
modernised AmigaE programming language. The highlights are:
* Added dynamic lists to the GUI module.
* Added three programs demonstrating dynamic lists:
Stacker,
SimpleGameLauncher, and
DirList.
* Added support for embedding native GUI elements (e.g. MUI objects), so people can work-around any cases where PortablE's GUI system is lacking something they need.
* Added support for dropping files on GUI windows.
* Added support for GUI windows saving/loading their size & position.
* The GUI now auto-activates the first text input item, so you can start typing straight away.
* It now tells the user when the NList or TextEditor MUI classes are required but missing.
* AmigaOS4: Fixed non-drawable bitmaps being moved to video memory by Picasso96, thus potentially saving a LOT of video memory. (A new beta release of PictureAlbum with be forthcoming.)
* AmigaOS4: Fixed a mistake that would have caused non-bitmap drawing with the Graphics module to not work after a planned update to OS4.
* Windows: Fixed installation failing to create the required Assignments.txt file.
* Removed source<>destination restriction for StrCopy(), RightStr() & MidStr(). (I think Chris Y once requested this!)
* Fixed stereo sounds being silent for their second half.
* Fixed various other bugs.
Also note that I have updated & recompiled
all the examples.
The full list of changes:
* Added the parameter "startPos=0" to the procedure Val(). This removes the need for pointer arithmetic.
* Added the 'std/pBox' module, to provide a simple but very flexible way of storing various types of data, without needing separate getter/setter methods for all of them.
* In 'std/cPath', added the RenamePath() procedure, so you don't need to open a file anymore to just rename it.
* In 'std/cPath', added the ReadLink() procedure, so it is now possible to get the target of a soft link when the target doesn't exist.
* In 'std/cGui', added support for dynamic lists (see cGuiWindow.beginList(), cGuiList, etc), plus three example programs.
* In 'std/cGui', added support for embedding native GUI elements (e.g. MUI objects), so people can work-around any cases where PortablE's GUI system is lacking something they need.
* In 'std/cGui', added initAllowDropFiles()/etc & getFileDropped()/etc methods to the cGuiWindow class, so GUIs now allow files to be dropped on them.
* In 'std/cGui', added initSaveID()/etc methods to the cGuiWindow class, so GUIs can now automatically save/load their position & size.
* In 'std/cGui', cGuiButton now listens to initUseLeastSpace().
* In 'std/cGui', now activates the first text input item (e.g. cGuiString), so you can start typing straight away.
* In 'std/cGui', now generates an event when you leave a text input item without pressing Enter.
* In 'std/cGui', now tells the user that the NList or TextEditor classes are missing.
* In 'std/cGui', added the queryExtra() method to the cGuiItem class, and made it do something useful for the cGuiList class.
* In 'std/cGui', added the "doNotClear" parameter to the methods getCloseRequest() & getQuitRequest(). And calling those methods will now cause their info to be forgotten unless you supply TRUE for doNotClear.
* In 'std/cGui', window close requests are now queued, so there is no-longer any chance of them being lost in a race condition.
* In 'std/cPath', renamed Exists() to ExistsPath(), Delete() to DeletePath(), and DeleteDir() to DeleteDirPath(). But the old procedures still work for the moment...
* In 'std/cGfxSprites', the setDataBox() & getDataBox() methods of cGfxSprite REPLACE the old set/getDataPtr() methods, and their usage is slightly different. This should be completely future-proof, so no more changes will be needed.
* BUG: Windows: Fixed installation failing to create the required Assignments.txt file.
* BUG: C++: The 'CSH/pAmiga_fakeNewProcess' module (and thus cGfx/cMusic/cSnd) would not work in some situations. Now properly fixed by adding special support to PortablE.
* BUG: C++: For FOR & some other statements, got rid of the (possibly harmless) GCC warning 'comparison is always true/false due to limited range of data type'.
* BUG: Fixed obfuscation of FUNCtions randomly marking it's call() method as being an ORPHAN.
* BUG: Removed source<>destination restriction for StrCopy(), RightStr() & MidStr(). Fixed the type of RightStr()'s eString2 parameter (should have been STRING but was ARRAY OF CHAR for some reason).
* BUG: In 'std/cGfx', fixed the timer continuously generating bogus events, if stopTimer() was called without the last timer event being handled.
* BUG: In 'std/cGfx', AmigaOS4; stopped non-drawable bitmaps being moved to video memory by Picasso96.
* BUG: In 'std/cGfx', AmigaOS4; fixed a mistake that would have caused non-bitmap drawing to not work after a planned update to OS4.
* BUG: In 'std/cGfx', AmigaOS4; worked-around composited scaling not working on 16-bit screens.
* BUG: In 'std/cGfxSprites', the findSpriteAt() method of cGfxStack could wrongly still return the (undocumented) background sprite.
* BUG: In 'std/cSnd', fixed stereo sounds being silent for their second half.
* BUG: In 'std/cGui', fixed string objects (like cGuiString) not generating an event when setState() was used on them.
* BUG: In 'std/cGui', fixed string & number objects generating events despite their contents not changing (in several different circumstances).
* BUG: In 'std/cGui', fixed cGuiStringBox.getState() not returning anything after the GUI is built.
* BUG: In 'std/cGui', fixed getState() returning NILS instead of an empty string for cGuiString/etc, if setState() had never been called.
* BUG: In 'std/cGui', fixed crash if program exited before App was built.
* BUG: In 'std/pShell', Amiga; fixed ShellArgs() to return the exact supplied program parameters, rather than stripping quotes & extra spaces. (Unfortunately still has the old behaviour on Windows.)
For the full list of changes & additional details, please see the documentation's
History chapter.