String ToString(const PointD &value)
function.String AsSourceCode(const double a)
function.unsigned int
and was silently converting it to required data type. Now it throws exception if value specified in string is valid number but is out of range of unsigned int
data type.setModal()
of CControl didn't remove modal state from control if false was passed.getDayOfWeek()
method.isEnabled()
method returned visibility state instead of enableability when form has no real system window.getClientRect()
method returned shifted by position rectangle when form has no real system window.setCaret()
method returned false if both form's and caret's renderers were nullptr. From now on it returns true.UnregisterHotkeys()
method now return true only if there were hotkeys. Before it returned true always.UnregisterHotkeys(IComponent*)
and UnregisterHotkeys(IControl*)
methods now return true only if there were hotkeys. Before they returned true always.Copy()
method of CListItem class.getItem(const PointF &position)
method of CListItem class.InsertItem()
method of CListItem class did not insert item before last one and added it after the last one instead.Export()
method of all *State properties when exporting properties with empty control name specified.Export()
methods of CPropertyEnumState class which manage enum type properties for Form Builder.Export()
methods of CPropertyFont and CPropertyFontState classes which manage font type properties for Form Builder.Load()
method of CPropertyMaskState class.time_point
type definition from CDateTime class.getVisible()
has been renamed to isVisible()
accordingly to the framework naming standards. Caret implementation in CCaret class has been changed accordingly.IWindow::CREATE_PARAMS
has been moved outside of IWindow interface and is now CREATE_PARAMS standalone structure. It also has got comparison operators.drive_separator
to ExtractFileName() function.replacer
to UTF8ToAnsi() function.bool DeleteItem(IListItem *item)
method to CControlItemList class.<<
for CDateTime class to output datetime object to terminal in human readable form.operator long long()
for CInterval class to convert interval to seconds.CInterval(const long long seconds)
for CInterval class to create interval with specified seconds which will be converted to usual years, months, days, hours, minutes, and seconds.std::vector<bool>
, std::vector<int>
, std::vector<float>
, std::vector<Color>
, and Gradient
.long long
algorithm.<<
of TRANSFORM structure outputs transform in better form now.ShadowRadius
property cannot be set to zero anymore. It was possible to set zero value by calling setShadowRadius()
method directly.<<
operator output format.Show()
and Hide()
.int
data types in methods has been replaced with size_t
data type.getSize()
which returns currently used storage size.setLimitCount()
, setLimitSize()
, and setPosition()
returns false if nothing has been changed. Previously they always returned true.hasItem()
of IListItem should return false if instance of the same object is passed as argument. Before it returned true in such a case. Now its implementations return false.InsertControl()
of CControlService now do not use loops and works faster.Export()
method of all *State properties before accessing these entities. The cases when those entities are not assigned are actually can happen only if using properties incorrectly or in some special cases, like unit testing, when those assigned entities are not required.Due to incomplete gradient storing and exporting in previous versions you need to re-setup all gradients of your forms(*.nfr files), which have gradients, and re-save those forms.
Instead of removed functions TryAnsiToInt(), TryAnsiToUInt(), TryAnsiToInt64(), TryAnsiToUInt64(), TryAnsiToFloat(), TryAnsiToDouble() use overloaded functions TryStringToInt(), TryStringToUInt(), TryStringToInt64(), TryStringToUInt64(), TryStringToFloat(), TryStringToDouble() respectively.
Instead of removed functions Extend() use overloaded functions PadRight().
Instead of removed time_point
definition of CDateTime class use long long
fundamental data type.
Whereever you use IWindow::CREATE_PARAMS
structure just drop IWindow:: part.
When using hasItem()
method of IListItem please note that from now on item->hasItem(item)
returns false. Previously it returned true.
As the format of storing matrices in the Nitisa Form Resource(*.nfr) files has been changed you need either to load your form files where you customized matrices, resetup such matrices and save forms again or change *.nfr files directly in any text editor. As you might know such files are just a text files in JSON format. For instance, in the form files you have matrices encoded as following:
{
"Data": [
[
1,
0,
0,
0
],
[
0,
1,
0,
0
],
[
0,
0,
1,
0
],
[
1,
2,
3,
1
]
]
}
[
[
1,
0,
0,
0
],
[
0,
1,
0,
0
],
[
0,
0,
1,
0
],
[
1,
2,
3,
1
]
]