Skip to content

Gaclib 0.9.5.0

Compare
Choose a tag to compare
@vczh vczh released this 02 Apr 11:21
· 672 commits to master since this release

Gaclib 0.9.5.0

GPU Accelerated C++ User Interface/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 .

Here is a simple description to the code

  • Import Gaclib source code
    • Skins Predefined control templates. You will need to call vl::presentation::theme::RegisterTheme to set a default skin before creating any controls. Read WinMain.cpp for details.
  • Tools
    • GacGen32.exe / GacGen64.exe GacUI resource compiler and C++ code generator for x86 and x64
    • CppMerge.exe Merge GacUI generated code for x86 and x64 to architecture-independent code
    • ParserGen.exe General LR parser to C++ code generator
    • GacGen.ps1 Do everything for you if you don't want to understand build steps
  • Tutorial Sample code
    • Lib Static library projects for all tutorials
    • GacUI_HelloWorlds Different ways to create a GacUI hello world project
    • GacUI_Layout Demo how to use GacUI layout
    • GacUI_Controls Demo how to use GacUI controls
    • GacUI_ControlTemplate Demo how to create control templates (skin) for GacUI controls
    • GacUI_Xml Demo how to author GacUI XML resource file
    • GacUI_Windows Demo how to interact with native Windows OS features.

Improvements

  • New menu features:
    • GuiToolstripCollection: Hide spaces of invisible items
    • GuiToolstripGroupContainer: Insert splitters between items
    • GuiToolstripGroup: Insert multiple items in one control, often put inside GuiToolstripGroupContainer
  • Responsive layout:
    • GuiResponsiveViewComposition: Explicitly define views for different size level, with shared item, views should be GuiResponsiveCompositionBase
    • GuiResponsiveGroupComposition: All child GuiResponsiveCompositionBase transform at the same time
    • GuiResponsiveStackComposition: All child GuiResponsiveCompositionBase transform one by one
    • GuiResponsiveFixedComposition: No transformation
    • GuiResponsiveContainerComposition: Automatically tell the target GuiResponsiveCompositionBase how to transform, which is put in ResponsiveTarget property
  • Add Context property in both control and control template. They are connected. This property is designed for adding custom properties to controls for the need of control templates, like adding state images to buttons.

Updated Demos:

  • GacUI_Controls\TextEditor: New menu features

New Demos:

  • GacUI_Windows\Direct2DClock: Draw a moving clock using Direct2D API
  • GacUI_Layout\Responsive1: Demo how different types of responsive layout algorithm works
  • GacUI_Layout\Responsive2: An example of responsive layout