Simon Hausmann
d5e72b255a
Fix build when structures contain models
...
The generated code for structs includes #[derive(Debug)],
which requires Debug for all fields. When the field is a ModelHandle
it's up to us to provide an implementation.
2021-01-25 14:20:13 +01:00
Simon Hausmann
f502be9299
Fix nested structures
...
When the nested structure was only referenced indirectly, we weren't collecting it for code generation.
2021-01-25 14:12:24 +01:00
Simon Hausmann
a69ce3a397
Remove the 'align-' prefix from TextHorizontal/TextVerticalAlignment
2021-01-25 10:59:18 +01:00
Simon Hausmann
2801e82658
Changed the KeyEvent in .60 to be an object
...
This exposes the text as well as the keyboard modifiers and is a little
more extensible.
2021-01-22 18:05:34 +01:00
Simon Hausmann
ae1178dd55
Make the modifiers simple booleans in the key event
...
This will give a nicer API to expose to .60. If the struct weren't
repr(C) then the booleans would be nicely packed, but alas that's not
happening. On the other hand we're not keeping many instances of them
around.
2021-01-22 13:47:52 +01:00
Olivier Goffart
f483f2ff6f
Don't generate the KeyEvent enum because the destructor is deleted
...
If we wanted to generate it, we would need to also generate a constructor
and destructor like we do for Resource, for example
2021-01-22 13:23:05 +01:00
Simon Hausmann
9ca87ab312
Simplify KeyEvent
...
Fold CharacterInput into KeyPressed/KeyReleased and store the "key" as a string.
Also, instead of exposing the KeyCode we're encoding special characters
into the string.
2021-01-22 10:15:05 +01:00
Simon Hausmann
1bf5a56c39
Rename initial-focus
to forward-focus
2021-01-20 15:52:58 +01:00
Simon Hausmann
f7ea2a9dce
Forward focus() calls on items that have initial-focus
defined
...
This also makes the focus() method available as a member function on any
item, but the resolve_element_reference_in_set_focus_calls() pass will
check if the elements are valid.
The check for `has-focus` to determine a focusable item was replaced
with an annotation on the built-in elements, so that `has-focus` can
later be implemented as a built-in function through the run-time,
without the need for a boolean property.
2021-01-20 14:31:01 +01:00
Olivier Goffart
4af4924567
C++: Fix cbindgen so it can process callback with arguments
2021-01-20 10:25:15 +01:00
Olivier Goffart
094287697a
Add a FocusScope
...
C++ part not working because the Callback with arguments are not yet supported with C++
2021-01-20 10:00:19 +01:00
Olivier Goffart
f454c5cd8e
C++: properly escape non-printable characters
2021-01-20 09:53:55 +01:00
Olivier Goffart
78484a75e0
Add string tests I forgot to git add previously
2021-01-19 19:39:42 +01:00
Simon Hausmann
5f265ffc09
Split up ComponentWindow::run() into show(), hide() and sixtyfps::run_event_loop()
...
This allows creating multiple windows for example, and it will allow for
showing windows in those tests that require a mapped window.
As a bonus, the run() function on generated components is not consuming
anymore.
2021-01-19 09:50:22 +01:00
Olivier Goffart
8dc79699de
String template concatenation
...
Currently not supported in the sixtyfps macro
2021-01-18 16:09:58 +01:00
Olivier Goffart
ba6ff5736c
String Escaping
2021-01-18 13:36:23 +01:00
Simon Hausmann
58768bf70a
Add default bindings for width/height for Image and Text to their implicit size
2021-01-15 17:58:32 +01:00
Olivier Goffart
a93fd00ef0
Fix the rust test.
...
The path need to be relative to the generated .rs file
2021-01-14 18:12:39 +01:00
Olivier Goffart
9741b56e30
Start implementing path with the Qt backend
...
(WIP)
2021-01-14 13:22:53 +01:00
Olivier Goffart
090039094f
C++: rename component_type to static_vtable
...
Then there is no reference to "component" in vtable.h
2021-01-14 09:39:21 +01:00
Olivier Goffart
56f27878b8
Fix cbindgen
2021-01-14 08:53:13 +01:00
Olivier Goffart
dfa25b96f7
Rename SharedArray to SharedVector
2020-12-18 10:26:07 +01:00
Olivier Goffart
0d2d48be4f
Rename "signal" to "callback"
2020-12-18 09:51:01 +01:00
Simon Hausmann
625978fe1a
WIP: Add an image-fit property to Image/ClippedImage
2020-12-15 10:26:54 +01:00
Olivier Goffart
63a0d9308b
Bump version
2020-12-14 08:49:54 +01:00
Simon Hausmann
5f9f1ce047
Fix the build
...
Fix the remaining CompilerConfiguration uses that I missed :(
2020-12-10 16:13:17 +01:00
Olivier Goffart
125ec13f24
Bump version numbers
...
Note: this does not update the documentation yet
2020-12-07 15:41:29 +01:00
Olivier Goffart
a37a287a17
Limit the conversion from percentage to lenght for the width and height property
2020-12-04 11:20:09 +01:00
Olivier Goffart
dee75987cc
Fix warning about unused import
2020-12-04 10:06:15 +01:00
Simon Hausmann
23d54b1b89
Improve similarity of testing APIs between C++ and Rust
...
Let send_mouse_click also take a component reference, like in C++.
2020-12-03 13:35:10 +01:00
Simon Hausmann
4670854500
Remove as_ref from the public API of the generated Rust component
...
This was only needed in our tests.
2020-12-03 13:31:58 +01:00
Simon Hausmann
866ad62ef2
Cleanup in the rust generator
...
Have only one implementation of the public property/signal interface
again
2020-12-03 09:05:23 +01:00
Simon Hausmann
7047856d4e
Replace FooRc with Foo and without ComponentHandle in examples and tests
2020-12-03 08:13:24 +01:00
Olivier Goffart
f3f18259ae
Some items default size is the parent size
...
Fixes #122
2020-12-02 18:36:23 +01:00
Olivier Goffart
3818e4433b
Make a link from 7gui directory to the test case so that the .60 files are tested
...
even if there is no rust code for them
2020-12-02 12:00:05 +01:00
Olivier Goffart
8075958f88
Move the 7gui tests to the example folder
2020-12-02 09:21:17 +01:00
Olivier Goffart
bff55d4f1b
Return value for signal
2020-12-01 18:52:51 +01:00
Olivier Goffart
276e11a101
More work on signals with return value
2020-12-01 18:47:49 +01:00
Simon Hausmann
6fba6aca56
Consistency fix for transitions API
...
Use "in" and "out" instead of "to" and "out".
2020-12-01 11:18:47 +01:00
Simon Hausmann
133823ca4c
Apply the object literal type merging also to the binary comparison operator
2020-12-01 10:57:47 +01:00
Simon Hausmann
798b08f2b1
Use smarter common-type determination code also for conditional expressions
...
This requires two changes to the function:
(1) When we can't convert to one type to the other, try the reverse.
(2) When merging fields, apply the algorithm recursively for common fields.
2020-12-01 10:57:47 +01:00
Simon Hausmann
9360fc3c5a
Don't silently drop fields in object literals inside arrays
...
This patch tries to improve the ability to convert different kinds of
object literals in an array into a common type. We used to take the
first entry as the "shape" of all elements, which meant that if the
first element was missing a field it would be silently dropped from all
future fields.
Instead, this patch merges the fields.
2020-12-01 10:57:47 +01:00
Olivier Goffart
564d6a0744
Fix Popup in C++
2020-12-01 10:24:37 +01:00
Olivier Goffart
a973791676
Fix move property inside a popup
2020-11-30 18:39:41 +01:00
Olivier Goffart
f3d6ce1695
Fix visit_all_named_references once more
...
We must visit the layout of every component we see, including the ones
for the popups
2020-11-30 15:20:51 +01:00
Olivier Goffart
957867d72a
More work on popup
2020-11-30 15:20:51 +01:00
Olivier Goffart
4fc2880b98
Fix inlining::fixup_element_references
...
We need to recurse in the expression
2020-11-27 15:01:51 +01:00
Olivier Goffart
8a64f10e84
Remove ComponentVtable::input_event
...
And the custom handling of the mouse grabber
2020-11-24 16:23:37 +01:00
Simon Hausmann
3d85e45ec3
Add support for source clipping to the Image element
...
This allows rendering only a sub-rectangle of the original image, which
we can use right away in the sliding puzzle demo.
2020-11-23 15:46:59 +01:00
Olivier Goffart
df318d9104
Fix states in the root of other components
2020-11-20 17:14:04 +01:00