Skip to content

Releases: vczh-libraries/Release

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.

GacUI 1.2.9.1

20 Feb 08:06

Choose a tag to compare

GacUI 1.2.9.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 in 1.2.9.0:

  • Tutorials can't start.

GacUI 1.2.9.0

16 Feb 22:03

Choose a tag to compare

GacUI 1.2.9.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.

Features:

  • Vlpp
    • vl::Variant, but without smart type conversion and comparison.
    • vl::Overloading.
  • GacUI
    • Incomplete implementation of remote protocol.
    • Added macro GUI_DEFINE_KEYBOARD_CODE_ADDITIONAL for suggested key names.
    • Added GuiGraphicsComposition::GetRelatedHitTestResult.

Breaking Changes:

  • GacUI
    • Removed DEFINE_GUI_GRAPHICS_ELEMENT(TYPE, NAME)
      • private: friend class GuiElementBase<TYPE>;
      • private: static constexpr const wchar_t* ElementTypeName = NAME;
    • Removed DEFINE_CACHED_RESOURCE_ALLOCATOR(TKEY, TVALUE)
      • New base class: GuiCachedResourceAllocatorBase<Self, TKEY, TVALUE>
    • Removed DEFINE_GUI_GRAPHICS_RENDERER(TELEMENT, TRENDERER, TTARGET)
      • New base class: GuiElementRendererBase<TELEMENT, TRENDERER, TTARGET>
      • private: friend class GuiElementRendererBase<TELEMENT, TRENDERER, TTARGET>;
    • Renamed: GuiGraphicsComposition::FindComposition -> FindVisibleComposition
    • IGuiGraphicsRenderTarget and GuiGraphicsRenderTarget associates a generator to a clipper.