Releases: vczh-libraries/Release
GacUI 1.3.0.0
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::SaveToXmldouble space characters.IGuiGraphicsParagraphrendering and caret calculation bugs on GDI.FakeDialogServiceBaserenders and selects wront files if filter applied.
Breaking Changes
- Delete
GuiSinglelineTextBoxandGuiMultilineTextBox.- A new
GuiSinglelineTextBoxwill be created, inheriting fromGuiDocumentLabel. - A new
GuiMultilineTextBoxwill be created, inheriting fromGuiDocumentViewer.
- A new
New Features
- Prepared github copilot compatible prompt files
- With knowledge base for this library
- Vlpp UnitTest supports /F:wildcard
GuiDocumentCommonInterfacesub classes acceptGuiDocumentConfigto control document editing and rendering behavior.GuiDocumentCommonInterfaceofferConvertToPlainTextandLoadTextAndClearUndoRedo/LoadDocumentAndClearUndoRedo- Add
PasswordChartoGuiDocumentCommonInterface, set to\0to 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
GuiDocumentViewerandGuiDocumentLabel, it could be changed with theBehaviorproperty 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
GuiMultilineTextBoxusesLoadTextAndClearUndoRedo. - To load prepared large document into
GuiDocumentViewerusesLoadDocumentAndClearUndoRedo. - Future editing still work with undo.
- To load such text into
- Loading super large text into one single paragraph (~0.2M lines) too slow
- 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
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
OnNextIdleFramedoes nothing to the UI or calls a blocking function, leading to a failure test case. GuiDatePickershould tab through days by rows.GuiComboBoxBasehandles[ESC]to close the combo.- Menu didn't close immediately if the handler is blocked
GuiDateComboBoxdid not receive focus properly, when opening year/month combo byALTor 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
InjectFileSystemImplto replace implementation forFileStream,FilePath,File,Folder.[SPACE]key inGuiVirtualTextListwill 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:
- Direct2D Renderer
- https://github.com/vczh-libraries/Release/tree/master/Tutorial/GacUI_ControlTemplate/BlackSkin
- Can be changed to GDI by editing the shared WinMain.cpp
RemotingTest_CoreandRemotingTest_Rendering_Win32(will later be moved to this repo)- Using
- Source
- Starts RemotingTest_Core with
/Pipeor/Httpfirst, and then start RemotingTest_Rendering_Win32 with the same option.
- Running GacUI in Browser:
- https://github.com/vczh-libraries/GacJS
- Starts
RemotingTest_Corewith/Httpfirst, and start the test website.
GacUI 1.2.12.0
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:
Win11ToolstripMenututorial to use new virtual control:ToolstripToolBarInMenuandToolstripSplitterInMenu.
GacUI Test Projects:
- Direct2D Renderer
- https://github.com/vczh-libraries/Release/tree/master/Tutorial/GacUI_ControlTemplate/BlackSkin
- Can be changed to GDI by editing the shared WinMain.cpp
RemotingTest_CoreandRemotingTest_Rendering_Win32(will later be moved to this repo)- Using
- Source
- Starts RemotingTest_Core with
/Pipeor/Httpfirst, and then start RemotingTest_Rendering_Win32 with the same option.
- Running GacUI in Browser:
- https://github.com/vczh-libraries/GacJS
- Starts
RemotingTest_Corewith/Httpfirst, and start the test website.
GacUI 1.2.11.1
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.
- Fixed:
GuiWindow::GuiWindowcallingSetNativeWindowskips all sub classes'AfterControlTemplateInstalled_calling because at the moment sub classes are not fully initialized yet.- Displaying a tooltip and exit would crash on deleting
sharedTooltipControlinGuiApplication::~GuiApplication. - Toolstrip dropdown button has unwanted splitter in control template.
<Raw/>element in GacUI XML mappaing to raw element for each renderer.
- Added:
vl::InjectLocaleImpl<Raw/>element, mapping to e.g.GuiGDIElementorGuiDirect2DElementfor Windows renderers. Each renderer will have different implementation.
- GacUI Test Projects:
RemotingTest_CoreandRemotingTest_Rendering_Win32- Using
- Source
- Starts
RemotingTest_Corewith/Pipeor/Httpfirst, and then startRemotingTest_Rendering_Win32with the same option.
GacUI 1.2.11.0
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:
GuiImageFrameElementwill 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__yieldinVlppOS.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::ConvertUtfStringvl::collections::BinarySearchLambdaIGuiRemoteProtocolChannel<TPackage>andIGuiRemoteProtocolChannelReceiver<TPackage>GuiRemoteProtocolFromJsonChannelcreatesIGuiRemoteProtocolfromIGuiRemoteProtocolChannel<Ptr<JsonNode>>GuiRemoteJsonChannelFromProtocolcreatesIGuiRemoteProtocolChannel<Ptr<JsonNode>>fromIGuiRemoteProtocolSetupRawWindowsDirect2DRendererSetupRawWindowsGDIRendererGuiRemoteRendererSingle
- GacUI Test Projects:
RemotingTest_CoreandRemotingTest_Rendering_Win32
GacUI 1.2.10.2
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::GetGlobalBoundsdouble calculateInternalMargin.INVOKEGET_INTERFACE_PROXYandINVOKEGET_INTERFACE_PROXY_NOPARAMSbreak build when returningLazyList<T>.- button behavior when not IgnoreChildControlMouseEvents.
- control not losing focus when disabled.
- progress bar is focusable.
GuiListControlincompatible with non-default axis.GuiTextList::SelectionChangednot raised when changing properties of the only selectedlist::TextItem.GuiVirtualListViewinDetailsview column header height doesn't sync to item arranger in real-time.DataColumn::SetSorterandDataColumn::SetFilterdoesn't refresh data grid items.GuiBindableDataGridnot implements stable sorting.GuiBindableDataGrid[UP]and[DOWN]not working properly right after changing selection by callingSelectCell.- UnitTestSnapshotViewer always not render the second loaded images.
- Crash when closing the (even disabled) main window with pending modal windows exist.
- Added
/F:EnabledTestFileto unit test CLI parameters. GuiTreeItemTemplatechange base class toGuiListItemTemplateGuiListControl::IItemProvider(Callback)?moved tovl::presentation::controls::list.- Make
ItemSourceclass of bindable list controls reflectable. - New theme name/virtual control:
ToolstripToolBarInMenu,ToolstripSplitterInMenu IGuiMenuService::GetHostThemeNameListViewColumnItemArrangeraddedColumnButtonsandColumnSplittersproperties.GuiMenuButtonexposedSubMenuHostproperty.GuiVirtualDataGridexposedOpenedEditorproperty.
GacUI 1.2.10.1
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.slnwith x64.
GacUI 1.2.10.0
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_tvl::InjectDateTimeImpl
- VlppOS
- Removed
SERIALIZE_ENUM, enum will be automatically registered UtfBase64(En|De)coder
- Removed
- GacUI
NativeImageFrameBasefor common implementation ofINativeImageFramebool controllerUnrelatedPluginsandbool controllerRelatedPluginsadded toIGuiPluginGuiCustomControl::SetFocusableCompositionGetHostedApplicationto access the instance ofIGuiHostedApplicationin hosted mode- Add
@cpp:Privatefor GacGen generated<parameter>ViewModelvariable
- 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 diffor opened by a unit test snapshot viewer. The viewer is implemented inGacUI.UnitTest.UI.cppand you need to make it an application by yourself at this moment. (Try)?FindObjectByName(Try)?FindControlByText
- 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
- Release
- vlpp.natvis updated
Fixed Bugs:
Restorebutton 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_VALUEandGUI_RUNmacros. ShowMaximizedinsideWindowOpeneddoesn't work with hosted mode.
GacUI 1.2.9.1
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
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_ADDITIONALfor 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;
- private:
- Removed
DEFINE_CACHED_RESOURCE_ALLOCATOR(TKEY, TVALUE)- New base class:
GuiCachedResourceAllocatorBase<Self, TKEY, TVALUE>
- New base class:
- Removed
DEFINE_GUI_GRAPHICS_RENDERER(TELEMENT, TRENDERER, TTARGET)- New base class:
GuiElementRendererBase<TELEMENT, TRENDERER, TTARGET> - private:
friend class GuiElementRendererBase<TELEMENT, TRENDERER, TTARGET>;
- New base class:
- Renamed:
GuiGraphicsComposition::FindComposition->FindVisibleComposition IGuiGraphicsRenderTargetandGuiGraphicsRenderTargetassociates a generator to a clipper.
- Removed