Commit graph

54 commits

Author SHA1 Message Date
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
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
Simon Hausmann
70653ec7cd Add C++ API for ComponentDefinition::properties() 2021-03-31 08:42:54 +02:00
Olivier Goffart
d37856b754 Avoid strict aliasing warning 2021-03-30 18:06:06 +02:00
Simon Hausmann
10189a844c Make the C++ Value API a little less error prone
Yesterday I ended up accidentally constructing a Value with a string literal
and that turned into a boolean value, resulting in run-time panic.
A deleted `const void *` constructor prevents this by producing a compile error instead of
picking the boolean constructor.
2021-03-26 09:55:13 +01:00
Simon Hausmann
25a1e666d9 Clarify model handling in C++ interpreter slightly
* Remove `Value::to_model()` as it is not implemented
* Document that models can be passed to .60 array/object properties
* Add a test for the extraction  / setting behavior of arrays.
2021-03-25 16:57:09 +01:00
Olivier Goffart
0985318e3e Properly drop the refcount of the ComponentWindow
Otherwise the ComponentWindow is leak, and so the QWidget is not destroyed
when it should be
2021-03-24 09:26:42 +01:00
Simon Hausmann
b51549ab58 Fix Struct::iterator test to be order agnostic 2021-03-23 17:49:28 +01:00
Simon Hausmann
d5662c117f A few docs for ComponentInstance
There's more to do though
2021-03-23 17:32:19 +01:00
Simon Hausmann
8e05a15704 Polish the ComponentDefinition docs a little bit 2021-03-23 17:21:36 +01:00
Olivier Goffart
1dba04721a Add a qt_viewer example that uses QWidget 2021-03-23 17:13:41 +01:00
Simon Hausmann
90d3953d42 Polish the ComponentDefinition docs a little bit 2021-03-23 17:10:14 +01:00
Simon Hausmann
e3f1e51a7a Some basic class docs for Struct::iterator and two basic tests 2021-03-23 17:02:37 +01:00
Simon Hausmann
2a839134f4 More class docs for Value 2021-03-23 15:59:25 +01:00
Simon Hausmann
9e58b39317 Minor doc fix for Value 2021-03-23 14:07:46 +01:00
Simon Hausmann
ab99d9b19e Some class intro docs for Value
and hide the internal typedef
2021-03-23 13:45:53 +01:00
Simon Hausmann
81116607c1 Some class docs for C++ Struct
This also hides the internal constructor
2021-03-23 13:23:52 +01:00
Simon Hausmann
c06b0e10e1 Add/sync class summary docs for interpreter::Struct 2021-03-23 12:57:40 +01:00
Simon Hausmann
646ce85ea6 Fix doxygen error
It can't parse the std::enable_if bits in the range constructor of Struct,
so skip it.
2021-03-23 11:17:40 +01:00
Olivier Goffart
bd6cace54c Test and fix C++ invokation of callback 2021-03-22 14:30:00 +01:00
Simon Hausmann
e1f9347aaa Add a diagnostics getter to ComponentCompiler 2021-03-19 18:34:39 +01:00
Olivier Goffart
b645860e27 Fix bad conflict resolution 2021-03-19 18:30:16 +01:00
Olivier Goffart
f2ffc0ebf6 ComponentDefinition::create in C++
Note thate there is a hack so `ComponentHandle<ComponentInstance>` (which is
binary compatible with `VRc<ComponentVTable, ErasedComponentBox>` works
2021-03-19 18:10:38 +01:00
Simon Hausmann
9eecdefb35 Add ComponentCompiler::build_from_path 2021-03-19 17:26:19 +01:00
Simon Hausmann
fd9d154b27 Add getter/setter for the style 2021-03-19 17:17:57 +01:00
Simon Hausmann
59d6866b13 Remove the null state in ComponentDefinition
This isn't needed as it turns out and a cleaner API this way
2021-03-19 17:08:04 +01:00
Simon Hausmann
3588d6ffbe Start exposing ComponentDefinition to C++ 2021-03-19 16:50:12 +01:00
Simon Hausmann
3bb4b87bc7 Use a free-standing function for the string_view to slice conversion 2021-03-19 13:13:08 +01:00
Simon Hausmann
0c21008861 Add internal convenience API to construct a C++ slice from a string view 2021-03-19 12:54:22 +01:00
Simon Hausmann
591ae8557b Add include_paths setter/getter to ComponentCompiler 2021-03-19 09:56:46 +01:00
Simon Hausmann
318ee46d08 Fix build
Brown paper bag for me
2021-03-19 09:42:38 +01:00
Simon Hausmann
7af77839ad Add the skeleton for CompilerCompiler in C++ 2021-03-19 09:26:42 +01:00
Olivier Goffart
63460c1a24 ComponentInstance show/hide/run 2021-03-18 16:37:01 +01:00
Olivier Goffart
9cc69d73a1 C++ implementation of the ComponentInstance
still untested
2021-03-18 16:30:25 +01:00
Simon Hausmann
a734f7f63b Add type guards to the Struct range constructor
These provide much better error messages in case of a mismatch
2021-03-18 15:54:54 +01:00
Simon Hausmann
8916b7e13e Add a range and initializer list constructor to Struct 2021-03-18 15:28:02 +01:00
Olivier Goffart
09b7b92dbe Value comparison in C++ 2021-03-18 15:26:53 +01:00
Olivier Goffart
8a14c4fa25 Iterator over interpreter::Struct 2021-03-18 15:07:38 +01:00
Olivier Goffart
a3d0f3155d Fix double delete of the Value in Struct::get_field 2021-03-18 14:20:30 +01:00
Simon Hausmann
c6740fe592 Move field accessors from Value to Struct in C++ 2021-03-18 13:33:50 +01:00
Olivier Goffart
3335ff8da5 C++ API to put a model in the interpreter::Value 2021-03-18 12:17:01 +01:00
Simon Hausmann
02c1150fa7 Add the boilerplate for Struct in C++ 2021-03-18 12:12:48 +01:00
Simon Hausmann
533b7f05ce Remove the Value(Type) C++ constructor again
This theoretically makes sense for types that have default values, but
for example Value::Model requires a pointer Rc. But since we provide concrete constructors this
should not be needed.
2021-03-17 17:36:55 +01:00
Simon Hausmann
e539d03007 Add C++ Value Brush support 2021-03-17 17:22:57 +01:00
Olivier Goffart
d5823f2b42 Don't forget to destroy the previous value when assigning a new one 2021-03-17 17:11:23 +01:00
Simon Hausmann
79612d7354 Add C++ Value Array construction/extraction 2021-03-17 16:52:30 +01:00