Olivier Goffart
236011d17c
Make ComponentDefinition::properties only list the public properties as it should
...
Fixes #242
2021-05-25 15:48:22 +02:00
Olivier Goffart
edfa6319b2
Fix alias to globals with the interpreter
2021-05-21 16:03:57 +02:00
Olivier Goffart
896336c5c6
interpreter: Make GlobalComponent actual dynamic component
...
Will be required to fix the bug setting two way binding to global
poprerties
2021-05-21 15:25:56 +02:00
Olivier Goffart
2265dd04e4
interpreter: wrap ComponentDescription in a ErasedComponentDescription
...
I'll need that for globals
2021-05-21 12:25:37 +02:00
Olivier Goffart
2a1c7a9154
Mark aliased property of public api as set
...
So we don't optimize away binding that points to them
Fix the two_way_simple.60 test
2021-05-20 13:40:51 +02:00
Olivier Goffart
ff368db505
Interpreter: make sure that the properties are initialized in the right order
2021-05-20 13:40:51 +02:00
Olivier Goffart
fbdbe69fe7
Window: make hight and width fixed size, preferred-* property set the initial size
...
Issue #227
2021-05-18 10:23:06 +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
f6b71b36a7
Interpreter: fix layout_info for repeated component
...
We need to look at the layout_info_prop of the root element
2021-05-11 14:59:57 +02:00
Olivier Goffart
b463e3cca4
WIP refactor layout
...
This commit add support for the box layout
2021-05-11 14:59:57 +02:00
Olivier Goffart
21a80f4562
WIP: Layout refactoring
...
Instead of using a solve_layout function in the component, use property to hold
a layout cache.
This commit only implement the GridLayout and only the interpreter part
2021-05-11 14:59:57 +02:00
Olivier Goffart
91ed04a72c
Make length
(still the default for all property) be the logical length
...
And a new `physical_length` is now the physical_length unit
Note: this does not change the runtime part yet
2021-04-21 17:15:19 +02:00
Olivier Goffart
7ae850d564
Rename Type::Length -> Type::PhysicalLength
2021-04-21 17:15:19 +02:00
Olivier Goffart
ba2f2d5719
Add an Opacity element that does nothing
2021-04-15 10:17:52 +02:00
Olivier Goffart
a712f515fa
Make the viewport element of the flickable a real Element in the object_tree
2021-04-09 19:14:48 +02:00
Simon Hausmann
c448003e2f
Add test case for preferred size in boxes bug
...
Amends commit 7c1738eeea
This also adds the preferred-width/height fake properties to allow overriding.
2021-04-08 16:13:53 +02:00
Olivier Goffart
85986c39bd
Layouting: make the materialize fake layout property have an actual value
...
So that when we query it from the code, it has a value
2021-04-08 14:35:16 +02:00
Simon Hausmann
625eb733d3
Fix initial focus test failure
...
Commit 162944b8c9
changed `set_component` to
clear the weak focus item ref (correct), which made the test failure. That's because
the interpreter called set_component after running the setup code (wrong).
2021-04-06 13:36:11 +02:00
Olivier Goffart
162944b8c9
Add ability in the interpreter to re-use an existing window
2021-04-03 10:00:12 +02:00
Simon Hausmann
e6d165dfbb
Don't crash when instantiating .60 files with property <brush>
2021-03-31 08:42:54 +02:00
Simon Hausmann
9a6e9c3a53
Simplify internal interpreter property descriptor API
...
Return an iterator when querying the properties. This requires a
one-time copy of the property declarations out of the compiler data
structure, which is read-only.
2021-03-31 08:42:54 +02:00
Olivier Goffart
5dfa2549c8
Put the named reference in a Rc so it will be easier to compute the use count and suck
2021-03-29 15:16:41 +02:00
Olivier Goffart
3db3400951
Rename the Object type to Struct in the compiler
2021-03-16 12:38:53 +01:00
Olivier Goffart
48333370a6
Use the new interpreter API in things that depends on it
2021-03-15 17:29:27 +01:00
Simon Hausmann
8372d3f6d8
Rename call_*
to invoke_*
for callbacks
...
Fixes #187
2021-03-15 17:01:05 +01:00
Simon Hausmann
9034bd3d1a
Move the refined eval::Value
API to api::Value
...
This is the new public value representation for the interpreter
2021-03-15 15:12:34 +01:00
Olivier Goffart
730b1ccff2
Refactor diagnostic: Merge BuildDiagnostic and FileDiagnostic
2021-03-12 19:32:50 +01:00
Olivier Goffart
6f88d78303
Rename Resource
to ImageReference
in the runtime
2021-03-11 10:06:23 +01:00
Olivier Goffart
c840b046ae
Rename the "resource" type to "image"
2021-03-10 17:24:31 +01:00
Olivier Goffart
7584b571ea
Interpreter: refactor in preparation to expose a public API
2021-03-10 09:08:25 +01:00
Simon Hausmann
500919745e
Add an internal Rotate element
...
This is just a starting point, to be turned into a real Transform
element later, along with syntactic sugar to turn rotation, etc. into a
transform matrix in the generated output.
2021-02-12 17:31:06 +01:00
Olivier Goffart
68de483f30
Ensure that the repeater are updated when we compute the layouts
...
Fixes #167
2021-02-12 10:07:33 +01:00
Olivier Goffart
096f55e365
Change behavior of percent sice within the layout
...
So that size with percentages don't affect the maximum/minimum size
Fixes #117
2021-02-11 20:32:26 +01:00
Simon Hausmann
2dd5ea61bb
Add support for Path.fill-rule
...
For some reason it's not working with the Qt renderer though
2021-02-10 14:08:32 +01:00
Simon Hausmann
1f091cb1c0
Rename Rectangle.color to Rectangle.background
...
Add support for built-in property aliases and rename `color` to
`background` - in preparation for it also changing to type brush.
Right now the alias is silent, a deprecation and overall change
will come in a subsequent change.
2021-02-02 17:01:12 +01:00
Olivier Goffart
ad1e18764a
Make angle its own type
2021-02-01 14:49:25 +01:00
Olivier Goffart
e2db0e49dc
Fix explicit size in box layouts using for
...
Fixes #147
2021-01-29 16:35:59 +01:00
Olivier Goffart
647f7effcd
Add TextWrap and TextOverflow enum and corresponding property in Text
...
Although they ar enot working yet
2021-01-27 11:40:09 +01:00
Olivier Goffart
e0e3a1aaad
Fix parent_item()
...
We need to skip over the DynamicItem
2021-01-26 17:05:30 +01:00
Simon Hausmann
628e6fdb38
Add a BoxShadow element
...
This intends to provide a configurable rectangular "drop shadow". The
API is modeled after CSS/HTML5 Canvas where the element can be "bound"
to an existing rectangular shape (geometry and radius), the offset can
be used to place the shadow and color and blur configure the shadow.
The shadow's color fades into transparent.
TODO (in subsequent changes):
* Documentation
* Qt implementation
2021-01-26 13:56:12 +01:00
Olivier Goffart
a4abb86782
Don't return the ItemWeak by value
...
It is not working in C++ because ItemWeak has a destructor
2021-01-26 13:17:24 +01:00
Olivier Goffart
c2982d9ab3
Add ability to get the parent item from the vtable
...
(still untested)
2021-01-26 10:36:37 +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
fc9374b35b
Prepare rtti to be able to handle Callback with argument
2021-01-20 10:00:19 +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
547b2a7f6e
Introduce Backend trait
...
Such that the font are properly registered when the GL backend is chosen at runtime
2021-01-15 12:20: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
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