Up to Lgi...
About
Changes:
- [Win32] Renamed all the win32 RegisterClass() stuff to be GetClassW32(), SetClassW32() and CreateClassW32() so that it doesn't conflict with platform neutral stuff.
- [Win32] Renamed GetClassName() to GetClass() to avoid a conflict with the GetClassNameA and GetClassNameW macros on win32. This allows you to compile apps in Unicode mode without links errors.
- Added native support for char16 (wchar_t) in the GVariant class. Changed GVariant::Str() to convert to utf if needed. Added GVariant::WStr() and GVariant::OwnStr(char16).
- [Win32] Changed GView::Attach() to create the class if needed, so you shouldn't have to call GView::CreateClass at all unless you want to specify the icon.
- Overhauled the GSocketI interface and it's GSocket implementation to be cleaner and more functional. Basically it had a bunch of cruft from before I knew how to structure classes properly. So I've added some easy to read methods for state, added timeout support, cleanup up the implementations of Open, Read and Write. Made it inherit from GDom to support getting and setting abitary properties.
- [Script] Fixed some non-blocking connect issues in the socket code. Made it more cross platform, currently it's not tested on Linux/Mac after the re-factoring.
- [Script] Fixed the bytecode compiler emitting IArraySet instructions when processing "a != b". Obviously you shouldn't "set" a to the result of the expression.
- [Script] Fixed disassembly of 'INotEquals' instruction to have right opcode.
- [Script] Fixed mis-allocation of registers, added more debugging to register allocation in _DEBUG mode.
- [Script] Added support for putting return statements in nested blocks or not as the last statement in the function. Generalized the compilation of return statements into the DoReturn method.
- [Script] Fixed IRet instruction creating incorrect local variable when returning to an empty local stack.
- [Script] Fixed some disassembly details.
- Implemented new functionality in GXmlToUi to handle serialization of list boxes and tree controls to/from XML element lists.
- Fixed a crash in LgiRes when you cut a control from a dialog and paste it somewhere else.
- [Script] Fixed copying hash tables. Previous all the values inside the hash table would change from variants to GV_VOID_PTR's on copy. Not good.