mirror of
https://github.com/slint-ui/slint.git
synced 2025-07-08 13:45:22 +00:00

We currently forward declare classes as we use them in functions. But this breaks if classes with the same name were declared in the parent namespace. As shown with this example ```C++ // Uncomment that line to make the code break //struct SharedGlobals; namespace ns { // Is that a forward declaration in `ns`? // Depends if it was declared before in the parent namespace void foo(struct SharedGlobals *x) {} // Actualy define ns::SharedGlobal struct SharedGlobals { int x; }; int xyz() { SharedGlobals globals; foo(&globals); } } ``` So make sure we forward-declare the classes properly to be more robust and be able to include generated file with namespace after a file without namespace CC #2909
18 lines
508 B
C++
18 lines
508 B
C++
// Copyright © SixtyFPS GmbH <info@slint.dev>
|
|
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
|
|
|
|
#include "logic.h"
|
|
#include "app-window.h"
|
|
#include "another-window.h"
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
auto my_ui = App::create();
|
|
setup_logic(my_ui->global<Logic>());
|
|
|
|
auto my_ui2 = other::AnotherWindow::create();
|
|
my_ui2->global<other::Logic>().on_decrement([](int x) { return x - 1; });
|
|
my_ui2->show();
|
|
|
|
my_ui->run();
|
|
}
|