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
fc9374b35b
Prepare rtti to be able to handle Callback with argument
2021-01-20 10:00:19 +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
9050c29305
Don't use the window through the eventloop module
2021-01-14 08:53:13 +01:00
Olivier Goffart
16f5a03c14
Run cargo fmt
2020-12-18 10:29:15 +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
e73bbbcd10
More work on signal returning value
2020-12-01 18:47:49 +01:00
Olivier Goffart
7bfa998f00
Popup positioning
2020-11-30 18:39:41 +01:00
Olivier Goffart
124eec9960
Introfuce ItemRc and ItemWeak
...
Wrapper around ComponentRc and index
2020-11-24 13:42:34 +01:00
Simon Hausmann
fa95064363
Fix resource embedding across component boundaries
...
When referencing an image a repeated element and were targeting a
configuration that requires resource embedding, then that image would
not embedded.
This was due to the fact that we didn't recurse into sub-components in
the resource collection phase and the generators made a per-component
embedding decision. The field responsible for that was also not
propagated to sub-components.
This patch addresses these two bugs by cleaning up the entire mechanism:
The compiler first generates the new ResourceReference::AbsolutePath for
all img!"foo.png" expressions. If the compiler is configured to embed
resources, then the embed_resources pass will traverse all
sub-components and expressions in them to change them to
ResourceReference::EmbeddedData with a unique integer id. Simultaenously
all the resources to be embedded get also collected in the root
component, so that the build script as well as the generator can take
care of dependency handling and actual resource embedding.
2020-11-23 13:47:16 +01:00
Simon Hausmann
89e0b57627
Rework and simplify the focus handling
...
Instead of determining the focus item through item tree traversal and
pointer comparison and storing the intermediate indices in the
components in the tree, remember the focus item by a pair of
VWeak<ComponentVTable, Dyn> and item_index: usize.
This speeds up determining the focus item as well as delivering events,
which can now be done directly after retrieving an ItemRef with
get_item_ref.
This also fixes the duplicate line edit focus in the 7gui cells
test case.
2020-11-20 15:33:15 +01:00
Olivier Goffart
3cd84473e2
Transitions in the interpreter
2020-11-20 12:32:43 +01:00
Olivier Goffart
cfa9413861
More work on the state binding for transition:
...
When there is a transition, turn the state property into a property of StateInfo
Not yet implemented for C++
2020-11-19 12:43:28 +01:00
Simon Hausmann
04e1774b7e
Interpreter: Make the window a permanent field of each instance
...
Avoid the parent dance in the interpreter as well to get the window reference.
2020-11-17 11:43:08 +01:00
Olivier Goffart
dd4435fe5d
Add round/ceil/floor
2020-11-16 12:52:01 +01:00
Olivier Goffart
b45a14bd7a
modulo
2020-11-13 16:07:18 +01:00
Olivier Goffart
d499e86640
Implement cubic-bezier
2020-11-13 13:36:32 +01:00
Olivier Goffart
ec2f500f69
Use a combobox in the booker example
...
Also enable the button depending on the order of the string
2020-11-03 18:38:35 +01:00
Olivier Goffart
11e55dd8d2
String -> Float conversions
2020-11-03 15:19:58 +01:00
Olivier Goffart
4a182ef4d0
Layout alignment
2020-11-03 12:22:34 +01:00
Olivier Goffart
a82c23fc41
Add ability for the native style to export native Globals
2020-11-02 16:13:04 +01:00
Olivier Goffart
232d59bf24
Ensure that the repeater are updated when layouting box layout
2020-11-02 11:37:04 +01:00
Olivier Goffart
1479bc956e
Support for global in the interpreter
2020-10-29 11:01:04 +01:00
Olivier Goffart
9dc0d69cbb
Intepreter: refactor the eval function: put the component in the context
2020-10-29 11:01:04 +01:00
Olivier Goffart
0926413f90
eval: Actually print the expression value instead of its AST
2020-10-27 08:16:02 +01:00
Olivier Goffart
27a6ff1227
Move Type and related concepts in a different module
...
Leaving only the TypeRegister in the typeregister module
2020-10-23 11:17:14 +02:00
Olivier Goffart
4fb87f401e
Some fixes for the initializations of two way bindings within sub components
...
There are still more issues
2020-10-20 14:33:06 +02:00
Olivier Goffart
1de39e5769
String concatenation
2020-10-19 18:37:15 +02:00
Olivier Goffart
14198052ac
ArrayModel support in JS
2020-10-17 13:33:22 +02:00
Olivier Goffart
3bdd71b36f
Start working on the Native ListView
...
Currently only the interpret part
2020-10-08 15:51:33 +02:00
Olivier Goffart
518c4ccf3d
ListView in the interpreter
2020-10-02 21:27:10 +02:00
Olivier Goffart
c7e5b39973
Layout the items in the ListView
2020-10-02 18:07:39 +02:00
Simon Hausmann
7e0e7b43f0
Add support for calling focus() on TextInput elements
...
This allows activating text inputs in signal handlers connected for
example to buttons.
This implements parts of #55
2020-10-01 08:52:45 +02:00
Simon Hausmann
9ad8968529
Add support for the initial_focus synthetic property
...
Setting it will translate to a set_focus_item call in the constructor.
This implements parts of #55
2020-09-30 15:11:01 +02:00
Olivier Goffart
2d01b92c84
Ability to change part of objects from the .60 syntax
2020-09-30 11:33:36 +02:00
Olivier Goffart
2d4f3ff50b
Two way bindings in the interpreter
2020-09-25 16:21:48 +02:00
Olivier Goffart
0cb827a901
Two ways binding with optimized public property in the interpreter
2020-09-25 09:50:03 +02:00
Olivier Goffart
4981c3ca75
Some check for the two way bindings
2020-09-23 14:06:08 +02:00
Simon Hausmann
26ae1bfdb2
Add From<String> and Into<String> for SharedString
2020-09-14 08:49:41 +02:00
Olivier Goffart
8761ca80a3
Add SharedArray::push and adjust a bit the API
2020-09-09 18:47:15 +02:00
Olivier Goffart
42aa91e3eb
Support for signal with arguments in the interpreter
2020-09-09 11:27:58 +02:00
Olivier Goffart
e997dff094
Use a reference as a signal argument.
...
It will be easier to make that work with C++
2020-09-08 12:12:01 +02:00
Olivier Goffart
e10ed650ee
Lookup of signal argument within a signal handler
2020-09-08 12:12:01 +02:00
Olivier Goffart
9fbb40d91b
Start working on a debug statement
2020-09-03 19:10:07 +02:00
Simon Hausmann
3b971a2e2f
Remove Color::From<u32>
...
Instead make it clear on the call site what the encoding is (argb).
2020-09-03 11:17:40 +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
2823f32692
Apply license headers to all non-binary/non-json sources
2020-08-17 17:55:20 +02:00
Simon Hausmann
3a463fa104
Closes: Free GL resources when destroying items in the interpreter #12
2020-08-13 17:56:18 +02:00