New in version 5.0.0

  • New widgets

  • Form Builder

    • Invisible widgets are now invisible in Form Editor and highlighted differently in Hierarchy Editor which you can use to select them and make visible again if needed.
  • Added

    • Visual property editor for mask properties. You may use new mask property editor by using CPropertyMask and CPropertyMaskState properties in your packages.
    • CDateTime and CInterval classes for convenient work with date and time.
    • Built-in month calendar control.
    • Constants for month and day of week names as well as translation helpers for them.
    • Angle function in mathematical module to calculate angle to point.
    • Unified TCP connection interface and its platform implementations. See getNetwork() method of IApplication interface which instance you can access by global Application variable.
    • Unified multithreading and its platform dependent implementations. You can create new threads by CreateThread() method of IApplication interface which instance you can access by global Application variable.
  • Fixed

    • Disable rendering of several controls when their size is zero.
    • Background2 function now render correctly if outer border does not exist.
  • Improved

    • Built-in controls mouse down state is now can be checked via isDown() method.
    • Gradient class was suplied with new setPoints(const std::vector<POINT> &points) method.
    • A new option type(unsigned integer) was added to IStyle interface.
    • Variant is now can store one more data type - unsigned integer.
    • Built-in scroll is now support automatically scroller size and large scroll value calculation. Just set ScrollerSize and DeltaLarge properties to 0 to use this feature.
    • TRect has got new operators dealing with rectangle movement and using TPoint type argument. So, for example, the Rect{ left, top, right, bottom } + Point{ x, y } will result in rectangle Rect{ left + x, top + y, right + x, bottom + y }.
    • IFileSystem has got more useful methods for working with file systems. Corresponding platform classes has been updated as well.
    • TCPServer and TCPClient widgets are now not using any platform dependent code.
  • Renamed

    • ITCPServer::ERROR_CODE is now ISocket::ERROR_CODE.
    • ITCPClient::IHandler is now IClientSocket.

Migration from previous version

In ITCPServer::IClient calls of method getHandler() should be renamed to getSocket() which returns IClientSocket replacement of former ITCPClient::IHandler. The TCPClient getHandler() is changed in the same way to getSocket() method.

ITCPServer:ERROR_CODE should be changed to ISocket::ERROR_CODE which is declared in Nitisa/Interfaces/INetwork.h header file.