In trying to built more persistence into aUCBLogo, the console windowtext can now be automatically saved in the file USER-aucblogo-console, where USER is replaced by the name of the computer user currently logged in. There's a checkitem in the menu with which you can disable autoload and -save of the console text. The same autosave mechanism is now provided for the picture data, andloadPictureandsavePicture now work (I hope) correctly. Additionally I made the new primitivesloadPictureTextandsavePictureTextto enable easy exporting and importing of picture data and better debugging.
Finally I achieved persistence of all Logo nodes, so you can run any aUCBLogo program, close aUCBLogo, do something else, start aUCBLogo again and recover your last state. The last state can be running or in midst of a debugging session. This persistent mode can of course be disabled by unchecking "Autosave Nodes" in the File menu, which can be highly wanted if there are many users logged in with the same username.
Printing does now work.
Support for arbitrary precision math using the MAPM library has been added:
The primitives saveScreenBMP and saveBMP have been deleted, because there is now saveScreen, which can save the screen in all formats supported by wxWidgets.
Additionally there's now saveScreenVector which uses the GL2PS library to generate various vector graphic formats.
BitMaxXandBitMaxY are new primitves to get the maximal allowed coordinates of a Bitmap obtained by BitCopyor a file.
The Color Database has been extended by lots of extra color names, but all still just in English.
Among other new GUI programmingprimitives, custom keyboard and mouse event handlers written in Logo are now supported. For the console are the following keyboard and mouse handlers:
For cleanup of texture memory there's now deleteTextures, so a texture memory overflow can be prevented, if you create many textures which you maybe only use once.
When you use Graph windows with a defined shape then setScreenRange might be useful to get away from the default [800,600] logical pixels.
setPixel can now also take 3D coordiantes as arguments.
For easier and faster plotting the new command setPixelXY has been written: It takes structured X data and equally structured Y data as separate arguments.
The DLCall primitive supports now argument-by-pointer when "IntPtr, "Int16Ptr, "Int8Ptr, "UInt8Ptr or "FloatPtr are specified as argument type.
For customizing the Logo environment, file anddir locations, the most important can now be read and changed:
Windows (using the constructor Frame), multiple Graph windows (using the constructor Graph) and many Controls from the wxWidgets framework are now included.
Andfor the debugging of the Garbage Collector (andfor my amusement) I wrote a memory window, accessable through the view menu, where one can inspect every Node by pointing with the mouse to it: a tooltip window with a textual representation of that Node will showup then. It's pretty interesting to see the GC working!
You can always ask me if you experience problems with aUCBLogo!