Commit graph

393 commits

Author SHA1 Message Date
Simon Hausmann
3ab287223c Silence exhale error
Doxygen would still generate xml for private_api::ArrayModel and would
try to resolve a reference to iself, which is not possible because we've
excluded the namespace:

```
   stderr: (!) Critical error while generating the file for [/home/vagrant/sixtyfps/target/cppdocs/api/classsixtyfps_1_1Model.rst].Traceback (most recent call last):
      File "/home/vagrant/.local/share/virtualenvs/docs-4wjFCyEr/lib/python3.8/site-packages/exhale/graph.py", line 2591, in generateSingleNodeRST
        gen_file.write("{0}\n".format(node.baseOrDerivedListString(
      File "/home/vagrant/.local/share/virtualenvs/docs-4wjFCyEr/lib/python3.8/site-packages/exhale/graph.py", line 393, in baseOrDerivedListString
        link=nodeByRefid[refid].link_name
    KeyError: 'classsixtyfps_1_1private__api_1_1ArrayModel'
    ```

Making the entire class as \private works around it.

Oddly, this isn't needed for IntModel, perhaps because it's not a template?
2021-06-28 14:18:45 +02:00
Olivier Goffart
640d178d9d Fix compilation of the C++ interpreter 2021-06-28 12:16:59 +02:00
Olivier Goffart
ae114cf79d C++: don't re-export private symbol in the public API
Use the cbindgen_private namespace dirrectly from the generated code
2021-06-28 12:03:49 +02:00
Olivier Goffart
16ba23ae47 Move StateInfo to the private namespace 2021-06-28 11:23:44 +02:00
Olivier Goffart
daff9e8e65 Move Callback and internal Models to the private_api namespace 2021-06-28 11:23:44 +02:00
Tobias Hunger
13d7f5e7bd Janitor: Fix typos in comments and user-facing strings
Also adapt tests for error messages containing the fixed strings.

No behavior change is intended!
2021-06-28 08:32:25 +02:00
Simon Hausmann
8a8ff6d2e9 Work around doxygen complaining about lack of override function 2021-06-26 09:42:56 +02:00
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
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
eef43bdf48 Fix typo 2021-06-24 11:10:55 +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
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
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
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
c6a4841cd4 Simplify item vtable retrieval in C++
Use a macro instead of a template function to make the getter vs. global
symbol choice.
2021-05-11 07:55:51 +02:00
Simon Hausmann
28701d2f90 Fix item vtable usage on Windows
The item tree is intended to be initialized with pointers to the item
vtables, which are implemented using data relocation records that
resolve to the symbols exported by the sixtyfps_cpp shared library.

On windows, according to

    https://docs.microsoft.com/en-us/cpp/c-language/rules-and-limitations-for-dllimport-dllexport?view=msvc-160

such data relocations are not supported, so this patch implements the
fallback through getter functions.
2021-05-10 22:54:06 +02:00
Simon Hausmann
4198513832 Add a dummy indirection in C++ for the item vtable access
This will allow for a compile-time decision in the future whether
to use the vtable symbol or getter function.
2021-05-10 22:54:06 +02:00
Simon Hausmann
98a91ec3e5 Generate item vtable symbol declarations via cbindgen xtask
... instead of declaring them by hand in sixtyfps.h

This will make it easier to introduce an indirection in one place.
2021-05-10 22:54:06 +02:00
Olivier Goffart
052ea15989 Extends the C++ API docs for the interpreter a bit 2021-05-06 10:03:27 +02:00
Simon Hausmann
1e089389e5 Remove the example code from the interpreter namespace docs again
I can't seem to convince sphinx/breathe/doxygen to include them like
they work in the class docs.

I tried the markdown quotes, spaces, \code/\endcode, \rst/\endrst but no luck yet.
2021-04-27 14:11:46 +02:00
Simon Hausmann
140de87351 Add a brief overview section to the C++ interpreter namespace
This mirrors the Rust module side.

Unfortunately the code examples aren't rendered correctly :(
2021-04-27 13:02:41 +02:00