Skip to content

C++: PhaseKit UI library (beta release)

Choose a tag to compare

@coinbump coinbump released this 10 Dec 05:56
· 63 commits to main since this release

What's New in v2.42

C++ Changes: UI Kit beta

  • New: Full support for HStack, VStack, ZStack layouts (with unit tests)

  • New: PadView layout

  • New: PageView, SpacerView, TextView, ColorView, View2D

  • New: ToggleButtonControl

  • New: "ugly duckling" DuckDesignSystem for building basic UIs (work in progress)

  • New: ThemeBuilder for building themed UIs from a design system

  • New: Slice3TextureRenderer for 3-slice repeating textures

  • New: ImRenderer immediate mode render support (basic functionality: FillRect, drawText)

  • New: ViewBuilder for dynamic building of views

  • ImGuiPlanPainter supports button, text, list select

  • Bug fix and QOL improvements

ViewBuilder Example

QB(root).And("Root View").RootView({ 800, 800 }, [=](auto& vb) {
  vb.ZStack({ .buildViewFunc = [=](auto& vb) {
      ThemeBuilder(vb).Surface();

      vb.VStack({ .spacing = 20, .buildViewFunc = [=](auto& vb) {
                     vb.HStack({ .buildViewFunc = [=](auto& vb) {
                         ThemeBuilder(vb)
                             .Label({ .color = Color::red, .text = "Button" })
                             .Button({ .label = "Duck UI" });
                     } });

                     vb.HStack({ .buildViewFunc = [=](auto& vb) {
                         ThemeBuilder(vb)
                             .Label({ .text = "Progress Bar" })
                             .ProgressBar({ .color = Color::red,
                                            .valueFunc = []() { return 0.3f; } }
                             );
                     } });
                 } });
  } });

Screenshots

Screenshot 2024-12-09 at 9 41 53 PM