Skip to content

Gaclib 1.2.0.0

Compare
Choose a tag to compare
@vczh vczh released this 18 Jan 09:51
· 94 commits to master since this release

GacUI 1.2.0.0

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

Website for this project: 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.

Hosted Mode:

Hosted mode is a new mode that allow all non-main windows to be rendered inside the main window, instead of creating a window on the native platform. Currently dialog services in hosted mode still implemented by each platform provider. They will become nested windows in the future.

  • Use SetupHostedWindowsGDIRenderer and SetupHostedWindowsDirect2DRenderer to start hosted mode on Windows.
  • New methods in IGuiGraphicsRenderTarget. Using the new base class GuiGraphicsRenderTarget to simplify the implementation of IGuiGraphicsRenderTarget without bothering with hosted or non-hosted mode, and clippings.
  • New methods in INativeWindow:
    • SetFocus and IsFocused is removed, because now activated means focused.
    • IsActivelyRefreshing is added, it should return true for native implementation.
    • GetRenderingOffset() is added, it should return {0,0} for native implementation.
    • IsRenderingAsActivated is added, see comments for details.
    • New helper function PerformHitTest to call all listener's HitTest callback and get the result if they don't conflict with each other.
  • New methods in INativeWindowListener:
    • RenderingAsActivated and RenderingAsDeactivated, called when INativeWindow::IsRenderingAsActivated is changed.
    • Closing renamed to BeforeClosing and AfterClosing. BeforeClosing of all listeners must be called first, and then AfterClosing.
    • NeedRefresh, ForceRefresh and BecomeNonMainHostedWindow, don't call them in native implementation.
    • DpiChanged with a new parameter. DpiChanged(true) of all listeners must be called first, and then DpiChanged(false).
  • GuiControl:
    • SetFocus and GetFocus is renamed to SetFocused and GetFocused.
  • GuiControlHost:
    • WindowReadyToClose event, called when non of WindowClosing blocked the closing operation, but before the window is closed.
  • vl::presentation::SharedAsyncService is offered for the default async service implementation.

Enhancements:

  • GacUI
    • Fixed random crash when using FreeHeightItemArranger.
    • Fixed combo box expanding glitch.
  • Release
    • Fixed workflow tutorial build break.