#include "component.hh" #include "creeper-qt/utility/material-icon.hh" #include "creeper-qt/utility/wrapper/mutable-value.hh" #include "dlog/dlog.hh" #include #include #include #include #include #include #include #include #include #include #include #include using namespace creeper; namespace lnpro = linear::pro; namespace mwpro = main_window::pro; namespace capro = card::pro; namespace stpro = stacked::pro; auto main(int argc, char *argv[]) -> int { app::init { app::pro::Attribute {Qt::AA_EnableHighDpiScaling}, app::pro::Attribute {Qt::AA_UseHighDpiPixmaps}, app::pro::Complete {argc, argv}, }; auto stack_index = std::make_shared>(); stack_index->set_silent(0); auto manager = ThemeManager {kBlueMikuThemePack}; creeper::material::FontLoader::load_font(); auto nav_component_state = NavComponentState { .manager = manager, .switch_callback = [&](int index, const auto& name) { qDebug() << "switch_callback index: " << index; }, .buttons_context = { {"0", material::icon::kTouchSensor}, {"1", material::icon::kPets}, {"2", material::icon::kSettings}, {"3", material::icon::kExtension}, {"4", material::icon::kLogout}, }, .stacked_callback = [&](int index) { *stack_index = index; } }; auto setting_component_state = SettingComponentState { .manager = manager, }; auto hand_view_component_state = HandViewComponentState { .manager = manager, }; auto view_component_state = ViewComponentState {.manager = manager}; auto mask_window = (MixerMask*){}; creeper::ShowWindow { [&](MainWindow& window) noexcept { }, // mwpro::FixedSize {1080, 720}, // mwpro::MinimumSize { // 1080, // 720 // }, mwpro::Central { capro::ThemeManager {manager}, capro::Radius {0}, capro::Level {CardLevel::HIGHEST}, capro::Layout { lnpro::Margin{0}, lnpro::Spacing{0}, lnpro::Item { NavComponent(nav_component_state), }, lnpro::Item { {0}, MutableForward { stpro::CurrentIndex {1}, stack_index, }, stpro::Item { capro::Layout { lnpro::ContentsMargin {{5, 15, 15, 15}}, lnpro::Item { // {255}, // lnpro::ContentsMargin {{5, 15, 15, 15}}, lnpro::Item { scroll::pro::ThemeManager {manager}, scroll::pro::HorizontalScrollBarPolicy { Qt::ScrollBarAlwaysOff }, scroll::pro::Item { ViewComponent(view_component_state), }, }, }, }, }, stpro::Item { capro::Layout { lnpro::ContentsMargin {{5, 15, 15, 15}}, lnpro::Item { HandViewComponent(hand_view_component_state), } } }, stpro::Item { capro::Layout { lnpro::ContentsMargin {{5, 15, 15, 15}}, lnpro::Item { SettingComponent(setting_component_state) } } } } } }, mixer::pro::SetMixerMask {mask_window}, }; manager.apply_theme(); manager.append_begin_callback([=](const auto&) { auto const point = mask_window->mapFromGlobal(QCursor::pos()); mask_window->initiate_animation(point); }); return app::exec(); }