Commit graph

444 commits

Author SHA1 Message Date
Simon Hausmann
25820b57d4 C++: fix remaining doxygen warnings in image.h and string.h 2021-06-25 21:07:01 +02:00
Simon Hausmann
7e3e6faa31 C++: Fix remaining warnings in callbacks.h 2021-06-25 20:59:23 +02:00
Simon Hausmann
8e729fee95 C++: Fix remaining doxygen warnings in sixyfps_interpreter.h 2021-06-25 20:41:53 +02:00
Simon Hausmann
919cc3065f C++: Fix remaining doxygen warnings in sixtyfps.h 2021-06-25 20:33:03 +02:00
Simon Hausmann
929dd8dbf4 Fix various doxygen warnings
and hide some internal members from doxygen
2021-06-25 20:26:33 +02:00
Simon Hausmann
e042e5d5d7 C++: Fix doxygen warnings in sixtyfps_color.h
* Add missing docs
* Hide internal member from Doxygen
2021-06-25 20:19:44 +02:00
Simon Hausmann
57bbfd531a C++: Add some docs for Brush and LinearGradientBrush 2021-06-25 20:14:53 +02:00
Simon Hausmann
1c6ff356a4 Minor tweak to the logo in the C++ docs
Remove the sharp edges
2021-06-25 12:46:35 +02:00
Simon Hausmann
f9ef21bffd Add a logo to the C++ docs
This requires working around a bug in sphinx and the rtd theme, hence
the git pinning.
2021-06-25 11:48:36 +02:00
Simon Hausmann
40d8c7633f Enable clang support in Doxygen 2021-06-25 08:48:28 +02:00
Simon Hausmann
2879102a29 C++: Document brighter and darker for Color 2021-06-24 17:10:43 +02:00
Simon Hausmann
f7c7d2e67a C++: Add documentation for SharedVector 2021-06-24 17:04:58 +02:00
Simon Hausmann
d9857a3308 docs: add missing \a commands for arguments 2021-06-24 16:43:36 +02:00
Simon Hausmann
376ed43544 Remove the "View Page Source" links from the sphinx docs
The rst source is not really all that interesting :-)
2021-06-24 12:23:58 +02:00
Simon Hausmann
eef43bdf48 Fix typo 2021-06-24 11:10:55 +02:00
Simon Hausmann
4d2fac3f87 Minor markdown tweak
Annotate shell code blocks with the sh tag.
2021-06-23 20:22:29 +02:00
Simon Hausmann
9b5b0f7965 Document the setup for cross-compiling with CMake 2021-06-23 20:22:29 +02:00
Simon Hausmann
5fa7b31f01 Fix cross-compiling with CMake
Select that the compiler and xtask should be compiled as host binaries,
not target.

This also pulls in new corrosion with better cross-compilation support.
2021-06-23 20:22:29 +02:00
Simon Hausmann
59425b3f02 C++: Docs for sixtyfps::interpreter::Diagnostic and DiagnosticLevel 2021-06-22 08:34:33 +02:00
Simon Hausmann
2e4abc61e0 C++: Hide internal macros from documentation
That's SIXTYFPS_GET_ITEM_VTABLE, SIXTYFPS_DLL_IMPORT and
SIXTYFPS_QT_INTEGRATION
2021-06-22 08:27:08 +02:00
Simon Hausmann
fe59fb3ec3 C++: Hide sixtyfps::PathData from the public API 2021-06-21 15:50:58 +02:00
Simon Hausmann
51bc21c9a5 C++: Hide AbstractRepeaterView, Repeater and ModelPeer
These are not public API.
2021-06-21 15:50:58 +02:00
Simon Hausmann
f377b5db6c C++: Document sixtyfps::interpreter::Value::Type 2021-06-21 15:50:58 +02:00
Simon Hausmann
f7ff3ba0db C++: Document PropertyDescriptor 2021-06-21 15:50:58 +02:00
Simon Hausmann
07dd3ec82f C++: Hide global comparison operators for private Slice API 2021-06-21 15:50:58 +02:00
Simon Hausmann
7f8f1b3105 Hide Property<T> and PropertyTracker<T> from the public C++ API
Move those two classes into the private_api namespace, which is excluded
from the API reference documentation.

For generate code the explicit qualification of Property<T> is changed,
for the cbindgen generated item types the private_api namespace is
pulled into the cbindgen_private namespace.
2021-06-21 15:50:58 +02:00
Simon Hausmann
85474f7670 Add support for sixtyfps::Image::size() in C++
Also added a unit test for the C++ implementation.
2021-06-20 11:18:28 +02:00
Simon Hausmann
3587d49445 Hide sixtyfps::Repeater::RepeaterInner from the C++ docs 2021-06-18 17:15:39 +02:00
Olivier Goffart
a0bea36e43 Fix preferred size of the Window with a layout
A few problem:
 - the horizontal and vertical property were swapped
 - The implementation of the "preferred_xxx" property was not materialized properly
   because the `bindings` were borrowed in the materialize_fake_properties pass
 - Since the Window has a stretch factor of 0., the preferred size of the inner layout
   was not taken into account when merging the LayoutInfo.  I believe taking the
   maximum preferred size is the right solution when merging them.
2021-06-18 13:51:25 +02:00
Simon Hausmann
0a3ec534ae Hide CallbackHelper and CallbackSignatureHelper from the API docs
There's no hide-from-docs tag for doxygen, so move these into the
private_api namespace.
2021-06-18 13:49:05 +02:00
Simon Hausmann
54c8c7761b Refer to the tutorial from our front-pages that also refer to the reference docs 2021-06-17 16:38:19 +02:00
Olivier Goffart
cfc04bb4ab C++: adapt to the layout horizontal/vertical split 2021-06-16 15:14:07 +02:00
Olivier Goffart
7b63bb7d65 Allow to simulate key event with the interpreter (C++) 2021-06-11 11:26:21 +02:00
Simon Hausmann
c0511a54ea Rename ComponentDefintion::callback_names() to just callbacks()
That's consistent with properties().
2021-06-07 12:08:35 +02:00
Simon Hausmann
855808f9b5 Add API to the Rust and C++ interpreter library to return the names of all publicly declared callbacks 2021-06-07 11:43:04 +02:00
Simon Hausmann
fb19588c8c Add missing C++ sixtyfps::ComponentDefinition::name()
It was already present in Rust
2021-06-07 11:30:22 +02:00
Simon Hausmann
5d24fde6f5 Make it easier to run the examples on Windows in the C++ build
Place the examples into the bin folder in the top-level directory (when
not built standalone), along with the sixtyfps dll.
2021-06-01 10:05:00 +02:00
Olivier Goffart
142a8dc185 Rename ImageReference to ImageInner and make Immage.0 private 2021-05-28 17:05:16 +02:00
Olivier Goffart
8e44ac2351 Image type: some more docs 2021-05-28 17:05:16 +02:00
Olivier Goffart
0b3fecf300 WIP: API to expose image loading from C++ and Rust 2021-05-28 17:05:16 +02:00
Olivier Goffart
4584c40544 Rename items::Image to ImageItem
Because there will be soon a sixtyfps::Image and the names
can't clash
2021-05-28 17:05:16 +02:00
Olivier Goffart
236011d17c Make ComponentDefinition::properties only list the public properties as it should
Fixes #242
2021-05-25 15:48:22 +02:00
Olivier Goffart
0df8161a6b Also require Qt 5.15 in the main CMakeLists 2021-05-21 08:01:30 +02:00
Simon Hausmann
5f6ed2488e Avoid link error when cargo found Qt but CMake didn't
When using cmake to configure the C++ build and Qt is found, and then
build with `SIXTYFPS_NO_QT=0 cmake --build ..`, the C++ library is built
without Qt support but qt_viewer is built. Linkage then fails when it
tries to access the API in libsixtyfps_cpp.so that provides the QWidget,
as that symbol is not present.

So with newer CMake we use find_package to provide positive information
to the cargo build about where Qt is, and consequently this patch
provides negative information to disable Qt support if CMake could not
find Qt -- or it was deliberately disabled for example using
`-DCMAKE_DISABLE_FIND_PACKAGE_Qt5=1`.

cc #232
2021-05-20 20:33:07 +02:00
Olivier Goffart
0034a3e67d Fix restarting the event loop with the GL backend
We must reset the proxy to a queue so one can restart it with pending events
2021-05-11 17:48:56 +02:00
Olivier Goffart
aabd320e83 C++ Api to run a functor from a thread 2021-05-11 16:42:59 +02:00
Olivier Goffart
ba1aff84d0 Layout refactoring: C++ part 2021-05-11 14:59:57 +02:00
Olivier Goffart
720001a223 Remove the solve_layout from the component vtable
no longer required
2021-05-11 14:59:57 +02:00
Olivier Goffart
988c2b0b9d Use the testing backend for the C++ integration tests 2021-05-11 11:40:26 +02:00
Simon Hausmann
b30aaf2c06 Fix Qt detection in C++ build when qmake is not in PATH but CMAKE_PREFIX_PATH is set
find_package(Qt5) may do a better job at finding qmake, especially if the build is invoked
through Qt Creator, which may make sure that CMAKE_PREFIX_PATH is set.

Forward the qmake path therefore the the rust build.
2021-05-11 10:55:15 +02:00