Skip to content

AGridSplitter#

A resizable grid layout.

Header:#include <AUI/View/AGridSplitter.h>
CMake:aui_link(my_target PUBLIC aui::views)

Detailed Description#

AGridSplitter represents a grid layout which can be resized by user. Unlike ASplitter, works in both directions. AGridSplitter can be constructed with AGridSplitter::Builder.

Examples#

examples/7guis/cells/src/main.cpp

7GUIs Cells — Spreadsheet processor (Excel).

public:
    CellsView(_<State> state) : mState(std::move(state)) {
        ALayoutInflater::inflate(
            this,
            AGridSplitter::Builder()
                    .noDefaultSpacers()
                    .withItems([&] {
                        AVector<AVector<_<AView>>> views;
                        views.resize(mState->spreadsheet.size().y + 1);
                        for (auto& c : views) {
examples/ui/views/src/ExampleWindow.cpp

Views Example — All-in-one views building example.

                      .withItems({ _new<AButton>("One"), _new<AButton>("Two"), _new<AButton>("Three"),
                                   _new<AButton>("Four"), _new<AButton>("Five") })
                      .build() AUI_OVERRIDE_STYLE { LayoutSpacing { 4_dp }, Expanding{} },
              _new<ALabel>("Grid splitter"),
              AGridSplitter::Builder()
                      .withItems(AVector<AVector<_<AView>>>::generate(
                          5,
                          [](size_t y) {
                              return AVector<_<AView>>::generate(5, [&](size_t x) {
                                  return _new<AButton>("{}x{}"_format(x, y));

Public Types#


Builder#

class AGridSplitter::Builder

Examples:

Empty structure.