Skip to content

Releases: vczh-libraries/Release

GacUI 1.3.2.0

30 Mar 07:42

Choose a tag to compare

GacUI 1.3.2.0

GacUI / C++ Interoperable Script Engine (Apache License 2.0 with extra conditions)

Website for this project: https://vczh-libraries.github.io/ -> http://www.gaclib.net/

This repository contains the latest release for the GacUI project, including packed library source codes, development tools, demos and documents. Complete source code can be accessed in https://github.com/vczh-libraries .

Prompts and necessary supporting files in .github folder will be iterating on each release.

Version

This version is a sub release towards GacUI 2.0.
Please check out 1.0-rc-3 for GacUI 1.0.

Fixed Bugs:

  • Changing font of a text box does not trigger refreshing.
  • Changing font of a text box affects all other text boxes.
  • RemotingTest_Core test application did not handle renderer reconnection correctly.
  • Reconnecting GuiRemoteRendererSingle on monitors with different DPI causes scaling issue.
  • GuiRemoteRendererSingle flashes during typing.
  • FakeDialogService file dialog should always ensure the first file visible after changing folder.
  • Tutorial ProgressAndAsync to use LoadTextAndClearUndoRedo.

GacUI 1.3.1.0

08 Mar 11:45

Choose a tag to compare

GacUI 1.3.1.0

GacUI / C++ Interoperable Script Engine (Apache License 2.0 with extra conditions)

Website for this project: https://vczh-libraries.github.io/ -> http://www.gaclib.net/

This repository contains the latest release for the GacUI project, including packed library source codes, development tools, demos and documents. Complete source code can be accessed in https://github.com/vczh-libraries .

Prompts and necessary supporting files in .github folder will be iterating on each release.

Version

This version is a sub release towards GacUI 2.0.
Please check out 1.0-rc-3 for GacUI 1.0.

New Feature

  • Remote Protocol unit test for text boxes.
  • GuiRemoteRendererSingle implements text boxes, enabling full remote protocol implementation for client with any native OS provider.
  • Upgraded FindObjectByName to accept name chain.

Fixed Bugs:

  • GuiOpenFileDialog/GuiSaveFileDialog does not apply default file extension to the file name before checking availability.
  • GacUI Unit Test Framework stores logged UI frames in separated files to speed up UnitTestSnapshotViewer reaction.
  • Global hot key not activated on a few keys
  • DocumentViewer edit paragraph with inserted image crashes.
  • DocumentViewer select inserted image crashes.
  • DocumentViewer delete inserted image crashes.
  • DocumentViewer resizing does not trigger layout.
  • GacUI_Controls/GlobalHotKey tutorial: pressing hot key doesn't work.

Breaking Changes:

  • IGuiGraphicsParagraph caret handling, (Enable|Disable)Caret controls enability while BlinkCaret controls visibility.
  • InlineObjectProperties::backgroundColor renderer should use this color instead of which comes from IGuiGraphicsParagraph::SetBackgroundColor.
  • Remote protocol definition optimized.
  • VlppGlrParser removes prefix_merge and left_recursion_inject syntax, they became automatically identified.

Known Issues

  • GuiDocumentViewer
    • Loading super large text into one single paragraph (~0.2M lines) too slow
      • Workaround: Change paragraph mode to multiline.
    • Paragraph mode plus doubleLineBreaksBetweenParagraph==true plus no empty line causing the whole text loaded into one single IGuiGraphicsParagraph.
    • This is the default configuration for GuiDocumentViewer and GuiDocumentLabel, it could be changed with the Behavior property in XML.
    • Root cause in IDWriteTextLayout::GetMetrics, taking most of the time.
    • When loading super big content to the control while you don't need user to undo to the previous state:
      • To load such text into GuiMultilineTextBox uses LoadTextAndClearUndoRedo.
      • To load prepared large document into GuiDocumentViewer uses LoadDocumentAndClearUndoRedo.
      • Future editing still work with undo.
  • GacUI_Controls/ProgressAndAsync tutorial: doesn't scroll to the top after downloading.

GacUI 1.3.0.0

31 Oct 11:15

Choose a tag to compare

GacUI 1.3.0.0

GacUI / C++ Interoperable Script Engine (Apache License 2.0 with extra conditions)

Website for this project: https://vczh-libraries.github.io/ -> http://www.gaclib.net/

This repository contains the latest release for the GacUI project, including packed library source codes, development tools, demos and documents. Complete source code can be accessed in https://github.com/vczh-libraries .

Prompts and necessary supporting files in .github folder will be iterating on each release.

Version

This version is a sub release towards GacUI 2.0.
Please check out 1.0-rc-3 for GacUI 1.0.

Fixed

  • DocumentModel::SaveToXml double space characters.
  • IGuiGraphicsParagraph rendering and caret calculation bugs on GDI.
  • FakeDialogServiceBase renders and selects wront files if filter applied.

Breaking Changes

  • Delete GuiSinglelineTextBox and GuiMultilineTextBox.
    • A new GuiSinglelineTextBox will be created, inheriting from GuiDocumentLabel.
    • A new GuiMultilineTextBox will be created, inheriting from GuiDocumentViewer.

New Features

  • Prepared github copilot compatible prompt files
    • With knowledge base for this library
  • Vlpp UnitTest supports /F:wildcard
  • GuiDocumentCommonInterface sub classes accept GuiDocumentConfig to control document editing and rendering behavior.
  • GuiDocumentCommonInterface offer ConvertToPlainText and LoadTextAndClearUndoRedo/LoadDocumentAndClearUndoRedo
  • Add PasswordChar to GuiDocumentCommonInterface, set to \0 to disable.

Known Issues

  • GuiDocumentViewer
    • Loading super large text into one single paragraph (~0.2M lines) too slow
      • Workaround: Change paragraph mode to multiline.
    • Demo: https://github.com/vczh-libraries/GacUI/blob/master/Test/Resources/UnitTestSnapshots/Controls/Ribbon/ GuiRibbonButtons/Dropdowns.json
    • Paragraph mode plus doubleLineBreaksBetweenParagraph==true plus no empty line causing the whole text loaded into one single IGuiGraphicsParagraph.
    • This is the default configuration for GuiDocumentViewer and GuiDocumentLabel, it could be changed with the Behavior property in XML.
    • Root cause in IDWriteTextLayout::GetMetrics, taking most of the time.
    • When loading super big content to the control while you don't need user to undo to the previous state:
      • To load such text into GuiMultilineTextBox uses LoadTextAndClearUndoRedo.
      • To load prepared large document into GuiDocumentViewer uses LoadDocumentAndClearUndoRedo.
      • Future editing still work with undo.
  • GacUI_Controls/GlobalHotKey tutorial: pressing hot key doesn't work.
  • GacUI_Controls/ProgressAndAsync tutorial: doesn't scroll to the top after downloading.

GacUI 1.2.13.0

04 Sep 12:40

Choose a tag to compare

GacUI 1.2.13.0

GacUI / C++ Interoperable Script Engine (Apache License 2.0 with extra conditions)

Website for this project: https://vczh-libraries.github.io/ -> http://www.gaclib.net/

This repository contains the latest release for the GacUI project, including packed library source codes, development tools, demos and documents. Complete source code can be accessed in https://github.com/vczh-libraries .

Version

This version is a sub release towards GacUI 2.0.
Please check out 1.0-rc-3 for GacUI 1.0.

Fixed

  • GacUI Unit Test detects if a frame in OnNextIdleFrame does nothing to the UI or calls a blocking function, leading to a failure test case.
  • GuiDatePicker should tab through days by rows.
  • GuiComboBoxBase handles [ESC] to close the combo.
  • Menu didn't close immediately if the handler is blocked
  • GuiDateComboBox did not receive focus properly, when opening year/month combo by ALT or mouse, list item cannot be selected only by key.
  • In hosted mode, when dragging left/top border of the main window, the window move if the size is smaller than the minimum size.

New Feature

  • InjectFileSystemImpl to replace implementation for FileStream, FilePath, File, Folder.
  • [SPACE] key in GuiVirtualTextList will check or uncheck selected items.
  • GacUI.UnitTest.UI.(h|cpp) allows you to click an UI element to jump to the DOM tree in the tree view, or reversely.

Breaking Changes

  • INativeWindow::SuggestMinClientSize.

GacUI Test Projects:

GacUI 1.2.12.0

26 Aug 05:40

Choose a tag to compare

GacUI 1.2.12.0

GacUI / C++ Interoperable Script Engine (Apache License 2.0 with extra conditions)

Website for this project: https://vczh-libraries.github.io/ -> http://www.gaclib.net/

This repository contains the latest release for the GacUI project, including packed library source codes, development tools, demos and documents. Complete source code can be accessed in https://github.com/vczh-libraries .

Version

This version is a sub release towards GacUI 2.0.
Please check out 1.0-rc-3 for GacUI 1.0.

Updates

  • Fixed:
    • Win11ToolstripMenu tutorial to use new virtual control: ToolstripToolBarInMenu and ToolstripSplitterInMenu.

GacUI Test Projects:

GacUI 1.2.11.1

09 Aug 07:35

Choose a tag to compare

GacUI 1.2.11.1

GacUI / C++ Interoperable Script Engine (Apache License 2.0 with extra conditions)

Website for this project: https://vczh-libraries.github.io/ -> http://www.gaclib.net/

This repository contains the latest release for the GacUI project, including packed library source codes, development tools, demos and documents. Complete source code can be accessed in https://github.com/vczh-libraries .

Version

This version is a sub release towards GacUI 2.0.
Please check out 1.0-rc-3 for GacUI 1.0.

GacUI 1.2.11.0

17 May 04:08

Choose a tag to compare

GacUI 1.2.11.0

GacUI / C++ Interoperable Script Engine (Apache License 2.0 with extra conditions)

Website for this project: https://vczh-libraries.github.io/ -> http://www.gaclib.net/

This repository contains the latest release for the GacUI project, including packed library source codes, development tools, demos and documents. Complete source code can be accessed in https://github.com/vczh-libraries .

Version

This version is a sub release towards GacUI 2.0.
Please check out 1.0-rc-3 for GacUI 1.0.

  • Breaking Changes:
    • GuiImageFrameElement will not check frame index availability anymore. The renderer should handle that properly.
  • Fixed:
    • clang++ warnings: implicit capture of 'this' with a capture default of '=' is deprecated
    • #include <arm_acle.h> is needed for __yield in VlppOS.cpp
    • In remote protocol, Calling GuiControlHost::Close() of the main window:
      • skips the last batch of async tasks.
      • crashes if not wrapped in GuiApplication::InvokeInMainThread.
    • In hosted mode, sub windows display maximized and minimized button which do nothing.
  • Added:
    • vl::ConvertUtfString
    • vl::collections::BinarySearchLambda
    • IGuiRemoteProtocolChannel<TPackage> and IGuiRemoteProtocolChannelReceiver<TPackage>
    • GuiRemoteProtocolFromJsonChannel creates IGuiRemoteProtocol from IGuiRemoteProtocolChannel<Ptr<JsonNode>>
    • GuiRemoteJsonChannelFromProtocol creates IGuiRemoteProtocolChannel<Ptr<JsonNode>> from IGuiRemoteProtocol
    • SetupRawWindowsDirect2DRenderer
    • SetupRawWindowsGDIRenderer
    • GuiRemoteRendererSingle
  • GacUI Test Projects:

GacUI 1.2.10.2

09 Nov 14:31

Choose a tag to compare

GacUI 1.2.10.2

GacUI / C++ Interoperable Script Engine (Apache License 2.0 with extra conditions)

Website for this project: https://vczh-libraries.github.io/ -> http://www.gaclib.net/

This repository contains the latest release for the GacUI project, including packed library source codes, development tools, demos and documents. Complete source code can be accessed in https://github.com/vczh-libraries .

Version

This version is a sub release towards GacUI 2.0.
Please check out 1.0-rc-3 for GacUI 1.0.

  • Fixed
    • GuiGraphicsComposition::GetGlobalBounds double calculate InternalMargin.
    • INVOKEGET_INTERFACE_PROXY and INVOKEGET_INTERFACE_PROXY_NOPARAMS break build when returning LazyList<T>.
    • button behavior when not IgnoreChildControlMouseEvents.
    • control not losing focus when disabled.
    • progress bar is focusable.
    • GuiListControl incompatible with non-default axis.
    • GuiTextList::SelectionChanged not raised when changing properties of the only selected list::TextItem.
    • GuiVirtualListView in Details view column header height doesn't sync to item arranger in real-time.
    • DataColumn::SetSorter and DataColumn::SetFilter doesn't refresh data grid items.
    • GuiBindableDataGrid not implements stable sorting.
    • GuiBindableDataGrid [UP] and [DOWN] not working properly right after changing selection by calling SelectCell.
    • UnitTestSnapshotViewer always not render the second loaded images.
    • Crash when closing the (even disabled) main window with pending modal windows exist.
  • Added /F:EnabledTestFile to unit test CLI parameters.
  • GuiTreeItemTemplate change base class to GuiListItemTemplate
  • GuiListControl::IItemProvider(Callback)? moved to vl::presentation::controls::list.
  • Make ItemSource class of bindable list controls reflectable.
  • New theme name/virtual control: ToolstripToolBarInMenu, ToolstripSplitterInMenu
  • IGuiMenuService::GetHostThemeName
  • ListViewColumnItemArranger added ColumnButtons and ColumnSplitters properties.
  • GuiMenuButton exposed SubMenuHost property.
  • GuiVirtualDataGrid exposed OpenedEditor property.

GacUI 1.2.10.1

07 Aug 08:41

Choose a tag to compare

GacUI 1.2.10.1

GacUI / C++ Interoperable Script Engine (Apache License 2.0 with extra conditions)

Website for this project: https://vczh-libraries.github.io/ -> http://www.gaclib.net/

This repository contains the latest release for the GacUI project, including packed library source codes, development tools, demos and documents. Complete source code can be accessed in https://github.com/vczh-libraries .

Version

This version is a sub release towards GacUI 2.0.
Please check out 1.0-rc-3 for GacUI 1.0.

Fixed Bugs:

  • Incorrect configuration in SampleForDoc/GacUI/GacUI.sln with x64.

GacUI 1.2.10.0

21 Jul 05:06

Choose a tag to compare

GacUI 1.2.10.0

GacUI / C++ Interoperable Script Engine (Apache License 2.0 with extra conditions)

Website for this project: https://vczh-libraries.github.io/ -> http://www.gaclib.net/

This repository contains the latest release for the GacUI project, including packed library source codes, development tools, demos and documents. Complete source code can be accessed in https://github.com/vczh-libraries .

Version

This version is a sub release towards GacUI 2.0.
Please check out 1.0-rc-3 for GacUI 1.0.

Improvements

  • Vlpp
    • vl::char16be_t
    • vl::InjectDateTimeImpl
  • VlppOS
    • Removed SERIALIZE_ENUM, enum will be automatically registered
    • UtfBase64(En|De)coder
  • GacUI
    • NativeImageFrameBase for common implementation of INativeImageFrame
    • bool controllerUnrelatedPlugins and bool controllerRelatedPlugins added to IGuiPlugin
    • GuiCustomControl::SetFocusableComposition
    • GetHostedApplication to access the instance of IGuiHostedApplication in hosted mode
    • Add @cpp:Private for GacGen generated <parameter>ViewModel variable
  • GacUI Unit Test Framework
    • An alpha version of GacUI unit test framework, to render UI in unit test frameworks and save the UI to files. UI file could be git diff or opened by a unit test snapshot viewer. The viewer is implemented in GacUI.UnitTest.UI.cpp and you need to make it an application by yourself at this moment.
    • (Try)?FindObjectByName
    • (Try)?FindControlByText
  • Release
    • vlpp.natvis updated

Fixed Bugs:

  • Restore button not renderered correctly. In both hosted and normal mode
  • Making a composition invisible doesn't refresh the application
  • Selection of a list control is not cleared when objects of selected items are replaced
  • Missing arguments in GUI_VALUE and GUI_RUN macros.
  • ShowMaximized inside WindowOpened doesn't work with hosted mode.