Skip to content

AUI_UI_THREAD#

Executes lambda on main thread.

Header:#include <AUI/Util/kAUI.h>
CMake:aui_link(my_target PUBLIC aui::core)

Definition#

#define AUI_UI_THREAD (*AThread::main())* [=]()

Examples#

examples/ui/views/src/ExampleWindow.cpp

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

      Horizontal {} AUI_LET {
              mAsync << AUI_THREADPOOL {
                  auto drawable = IDrawable::fromUrl(
                      "https://raster.shields.io/github/stars/aui-framework/aui?style=raster&logo=github");
                  AUI_UI_THREAD {
                      auto view = Icon { drawable } AUI_OVERRIDE_STYLE {
                          FixedSize { 80_dp, 20_dp },
                          BackgroundImage { {}, {}, {}, Sizing::COVER },
                          Margin { 4_dp },
                          ACursor::POINTER,
examples/ui/infinite_lazy_list/src/main.cpp

Infinite Lazy List — Usage of AUI_DECLARATIVE_FOR to make an infinite lazy list.

            auto loadedItems = AVector<_<Item>>::generate(20, [&](size_t i) {
                return aui::ptr::manage_shared(new Item { .value = "Item {}"_format(loadFrom + i) });
            });

            AUI_UI_THREAD { // back to main thread.
                state->items.writeScope()->insertAll(loadedItems);
                state->needMore = false;
            };
        };
    });

Examples#