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
Olivier Goffart
3335ff8da5
C++ API to put a model in the interpreter::Value
2021-03-18 12:17:01 +01:00
Olivier Goffart
8d47b298b3
Make sure everything in the vtable crate is documented
2020-12-04 13:06:50 +01:00
Olivier Goffart
d85df00126
Fix cargo clippy warning on the vtable crate
2020-12-04 13:04:14 +01:00
Simon Hausmann
b94054855f
Remove as_ptr member function from VRef
...
This reverts that part of commit
e5dfb3a4c0
since:
* it's apparently not needed anymore
* bad API for a type that also implements deref
2020-11-19 15:57:13 +01:00
Olivier Goffart
8dbd0828a4
Make the vtable test pass with cargo miri
2020-11-16 14:33:19 +01:00
Simon Hausmann
79bfa080c6
Fix crash of the online editor
...
Component's get_item_ref has a life time attached to it, and in the
interpreter we're having two vtable implementations, one for
ErasedComponentBox and another generated one. The approach with
as_pin_ref to transfer the lifetime to a reference to the trait object
for the other vtable isn't working because as_pin_ref consumes the VRef
and then takes the address of a temporary on the stack.
Short of a cleaner solution, this patch circumvents the second vtable
indirection and calls our extern "C" function directly.
2020-11-12 14:35:01 +01:00
Olivier Goffart
7f66ca9584
Add a function in the ComponentVTable to get an ItemRef from an index
...
Needed to adjust vtable so it can work if the return type has a reference
2020-11-11 14:29:44 +01:00
Olivier Goffart
f852b0bb6a
vtable: new VRc and VWeak pointer
2020-11-06 10:11:44 +01:00
Simon Hausmann
e5dfb3a4c0
Implement basic focus handling
...
Similar to the mouse_grabber, we use a VisitChildrenResult field to
track the focus item within a component. Unlike the mouse grabber
however, it is set/cleared using dedicated focus events.
The key event now routes the key event directly to the focus item.
The focus can be requested via set_focus_item on a window, which the
TextItem does.
2020-09-25 10:43:47 +02:00
Olivier Goffart
58cdaeb8dd
Update license header to mention that commertial option are available
2020-08-26 13:23:42 +02:00
Simon Hausmann
46911f60ee
Minor doc fixes to the vtable crate
2020-08-25 16:22:07 +02:00
Olivier Goffart
697aa61a0c
Some doc polish
2020-08-25 15:33:15 +02:00
Olivier Goffart
cbeb982684
Use the FieldOffset struct from the upstream create
2020-08-24 11:20:38 +02:00
Simon Hausmann
2823f32692
Apply license headers to all non-binary/non-json sources
2020-08-17 17:55:20 +02:00
Olivier Goffart
681f304768
Add a few Debug impl
2020-08-10 17:25:15 +02:00
Olivier Goffart
0a56912d0f
Mouse grab in rust
2020-08-07 16:06:49 +02:00
Olivier Goffart
1b748792ad
Visit the item as Pin
...
A preparation to have Property::get to take Pin<Self>
2020-06-25 18:50:20 +02:00
Simon Hausmann
c18861125d
Small typo fix :-)
2020-06-25 14:22:10 +02:00
Olivier Goffart
f50a705e00
Add the #[pin] attribute to be able to project to the pinned item
2020-06-25 12:18:09 +02:00
Olivier Goffart
caca0d0ba4
Put the component in a Pin<>
...
Removed the drop and create from the ComponentVTable:
since we are not using VBox<ComponentVTable>, this simplifies a bit
the code of the interpreter and everything else.
But there is still a lot of changes everywhere to support that the Component
is pinned.
This is just for the component. Which would be required if later we want
to access the properties as Pin<Property<_>>. But we have not yet ability
to do projections
2020-06-24 14:13:27 +02:00
Olivier Goffart
30b201d946
Reduce the use of unsafe in corelib and in the rust backend
2020-06-12 19:03:15 +02:00
Olivier Goffart
bbb2b487b9
Implement a way to create a VRef for non static vtable
2020-06-12 17:09:51 +02:00
Olivier Goffart
34931e58c0
Polishing of the documentation
2020-06-08 17:57:18 +02:00
Olivier Goffart
0a48252702
Interpreter: implement the ComponentVTable properly
...
with the drop and construct function
2020-06-03 17:33:26 +02:00
Olivier Goffart
5f01ec30ee
Fix the viewer using generated rtti from a macro
...
One thing that needed to change is that we needed the vtable to be unique
2020-05-30 15:08:51 +02:00
Olivier Goffart
8c39ada671
Add downcast method to VRef and VRefMut
2020-05-28 09:18:28 +02:00
Olivier Goffart
bf3a0878b5
Add documentation for the vtable crate
2020-05-22 11:17:45 +02:00
Olivier Goffart
07942da4bb
vtable: introduce VOffset
2020-05-18 11:06:44 +02:00
Olivier Goffart
1addcad615
vtable: Fix the repr
2020-05-18 11:06:44 +02:00
Olivier Goffart
5a9cbaae66
vtable add support for field offset in the vtable
2020-05-18 11:06:44 +02:00
Olivier Goffart
aff3d7e14b
vtable: add safe way to construct references
2020-05-18 11:06:44 +02:00
Olivier Goffart
810a3905a7
Add VBox::new
2020-05-18 11:06:44 +02:00
Olivier Goffart
b745c616f7
Add a trait to get the vtable for a type
2020-05-18 11:06:44 +02:00
Olivier Goffart
4ca45ca4da
vtable crate: Some refactoring and simplifications
2020-05-18 11:06:44 +02:00
Olivier Goffart
903fc513de
vtable: make sure one cannot call the function with the wrong type
2020-05-18 11:06:44 +02:00
Olivier Goffart
f74cfe73cd
Use the vtable crate for the ItemVTable
2020-05-18 11:06:44 +02:00
Olivier Goffart
49fc23224e
vtable: Remove the TraitType wrapper, and allow Option<fn>
2020-05-18 11:06:44 +02:00
Olivier Goffart
62010be72e
vtable: support associated consts
2020-05-18 11:06:44 +02:00
Olivier Goffart
4988fcb543
More fix to use vtable for component. All rust code compiles
2020-05-18 11:06:31 +02:00
Olivier Goffart
686f4c9591
More work on the vtable macro to adapt the Component
...
This does not work yet
2020-05-18 11:04:54 +02:00
Olivier Goffart
1ced4224b5
More work on the vtable crate
2020-05-18 11:04:54 +02:00
Olivier Goffart
aa27fceb8c
vtable: move the macro in its own macro crate so we can have a runtime
2020-05-18 11:04:54 +02:00
Olivier Goffart
fb691e0808
Implement Component using vtable
...
(the C++ part not yet ported)
2020-05-18 11:04:54 +02:00
Olivier Goffart
4b19818f6c
WIP: port Component to vtable
2020-05-18 11:04:54 +02:00
Olivier Goffart
5c5df6b8e3
Macro to generate trait and safe abstraction for a vtable
2020-05-13 23:07:59 +02:00