Simon Hausmann
aadb755fd7
Join separated documentation for some interpreter C++ API types
...
The docs were living in the public header file while the enums/structs were defined in Rust.
With the infrastructure of the parent commits we can join them together.
2022-01-05 16:32:55 +01:00
Tobias Hunger
6d69c343dc
Revert "Deduplicate use of ptr_eq for Models"
...
This was not intended to get uploaded without review!
This reverts commit d678f4b1da
.
2022-01-03 17:10:27 +01:00
Tobias Hunger
d678f4b1da
Deduplicate use of ptr_eq for Models
2022-01-03 16:22:32 +01:00
Tobias Hunger
bfca0e3573
Mass update copyright messages to be more REUSE compliant
2021-12-22 10:06:12 +01:00
Lukas Jung
f0a47ff154
Add mouse-cursor property to TouchArea
2021-12-07 22:41:24 +01:00
Olivier Goffart
73e753f091
sixtyfps-interpreter test: use the fluent style
...
because the native style can't run in tests because it cannot draw from
different threads
2021-11-17 14:09:55 +01:00
Olivier Goffart
2bf3e00a35
Make sure sixtyfps-interpreter tests are run with the testing backend
...
Because the Qt backend don't support being run in threads and the tests are
in threads and in parallel
2021-11-17 09:55:18 +01:00
Olivier Goffart
ae3e1b4680
Allow normal Element to be in the Dialog's button row with dialog-button-role
2021-10-05 09:46:20 +02:00
Olivier Goffart
2716e4b4dd
TouchArea: add the pointer-event
callback
...
... instead of `pressed-changed`
This allows to see what mouse button was pressed.
Closes #535
2021-10-04 14:39:49 +02:00
Olivier Goffart
671df0f24f
New widget: StandardButton
2021-09-29 16:25:44 +02:00
Olivier Goffart
730cbf1ef9
Interpreter: add type checking for declared properties
...
issue #512
2021-09-23 19:17:17 +02:00
Simon Hausmann
a855d868fc
Add support for introspecting globals in the interpreter Rust API
...
Add three straight-forward functions:
* pub fn globals(&self) -> impl Iterator<Item = String> + '_
* pub fn global_properties( &self,
global_name: &str,
) -> Option<impl Iterator<Item = (String, ValueType)> + '_>
* pub fn global_callbacks(&self, global_name: &str
) -> Option<impl Iterator<Item = String> + '_>
Implementation wise this requires passing along a way to get the
non-normalized (original) export name, as globals() should return the
names as the developer/designer specified them, and
global_properties()/global_callbacks() normalizes.
2021-09-15 07:56:28 +02:00
Olivier Goffart
fe015a8086
Allow the sixtyfps-compiler and sixtyfps-viewer to read from stdin
...
By specifing `-` as a path
2021-09-09 15:30:52 +02:00
Olivier Goffart
4aeb9bcd08
Interpreter: fix comparison of enums
...
We need to normalize native enum to use dashes
2021-09-06 12:22:24 +02:00
Ryan Van Gilder
4d1d0e73a4
Rename image-scaling to image-rendering to align with CSS
2021-09-06 10:03:51 +02:00
Ryan Van Gilder
a03a27ae0d
Add image-scaling property to Images to control how they are scaled
...
Like CSS image-rendering it has "smooth" and "pixelated" options.
Only OpenGL has been tested right now, have not tested WASM or Qt.
Right now the first instance of a @image-url() will set the scaling
for that specific image. The same image used from memory on the otherhand
can all have a different scaling property.
2021-09-06 10:03:51 +02:00
Olivier Goffart
4f1eacd6d8
LineEdit is now able to scroll to keep the cursor visible
2021-09-02 17:20:44 +02:00
Simon Hausmann
0d19e2d9b9
Add support for global aliases
...
When exporting an global multiple times under different names, make sure
that they alias in the generated code.
As a consequence, the compiler maintains the original unique name and in
Rust and C++ makes only the exported names public. In the interpreter
the internal name is theoretically still accessible from the outside.
2021-08-31 17:09:11 +02:00
Simon Hausmann
4b8259017b
Doc fixes
...
Try to use the term "global singleton" consistently. That's also the
term we use in the language reference.
2021-08-27 13:46:44 +02:00
Olivier Goffart
00cc8ec693
Add invoke_global_callback to the interpreter API
2021-08-27 13:36:48 +02:00
Olivier Goffart
a294ab4200
Interpreter: add set_global_callback
2021-08-27 13:36:48 +02:00
Olivier Goffart
a1803ec3a0
Interpreter: return a proper error from set_property instead of panic
2021-08-27 13:36:48 +02:00
Olivier Goffart
5f8cea5926
WIP interpreter API to access globals
2021-08-27 13:36:48 +02:00
Olivier Goffart
a39dd6ac4f
Interpreter API: preserve the dashes and underscore when listing properties
2021-08-17 18:47:41 +02:00
Olivier Goffart
4e254445d9
Fix interpreter test
2021-08-10 22:21:01 +02:00
Olivier Goffart
532827b646
Fix the C++ interpreter API compatibility after the change from _ to -
...
Property name with _ should still be supported by set_property/get_property
2021-08-10 22:21:01 +02:00
Olivier Goffart
c25538c982
Normalize identifiers to -
instead of _
...
As a result
- The error messages will now show the error with `-` instead of `_`
- The LSP will auto-complete with -
- The interpreter's list of properties will list the property with '-'
(but we made the change so that set_property, get_property, and so on
work also if passed a '-')
2021-08-10 22:21:01 +02:00
Olivier Goffart
c33e4d76aa
Use proper rustdoc link.
...
Its ``[`...`]`` not ``[[..]]``
2021-08-07 17:07:41 +02:00
Tobias Hunger
24a2021226
Janitor: Fix clippy::needless_borrow
2021-08-04 22:50:35 +02:00
Tobias Hunger
3c9451f94c
Janitor: Fix clippy::needless_question_mark
2021-08-04 22:50:35 +02:00
Simon Hausmann
29f5853332
Provide sixtyfps::Window
by reference in the Rust API
...
This also removes Clone from the Window again, to avoid having to face
the question: Does cloning a window duplicate it on the screen?
2021-08-03 10:32:04 +02:00
Simon Hausmann
66891a299c
Start a new sixtyfps::Window API for Rust, C++, the interpreters and JS
...
The generated component now provides access to a Window type
via the window() accessor function.
This is part of #333
2021-08-03 10:32:04 +02:00
Olivier Goffart
07bf0974d7
C++: Expose conversion betwen Value
and Image
...
Closes #350
2021-07-26 14:12:32 +02:00
Tobias Hunger
9539a53480
Janitor: Fix clippy::redundant_clone
2021-07-23 13:48:52 +02:00
Tobias Hunger
3e0534afea
Janitor: Fix clippy::needless_lifetimes
2021-07-23 13:48:52 +02:00
Simon Hausmann
1c285694d7
internal cleanup: Remove the use of ComponentWindow in the interpreter
2021-07-21 17:41:12 +02:00
Simon Hausmann
ef184f7f1a
internal cleanup: Remove the rest of the ComponentWindow API
...
Now it just remains a wrapper around the Rc, and it can soon be moved to
the API crate hopefully.
2021-07-21 17:41:12 +02:00
Simon Hausmann
6e12b00b3f
Re-add new
constructor functions for ComponentCompiler and CompilerConfiguration
...
Amends commit dc51d4ccda
As discussed in #310
2021-07-12 13:26:17 +02:00
Tobias Hunger
dc51d4ccda
Use impl Default
instead of new()
constructors
2021-07-12 13:22:25 +02:00
Olivier Goffart
13bd828b96
Update license date
2021-07-02 15:55:54 +02:00
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
Simon Hausmann
f377b5db6c
C++: Document sixtyfps::interpreter::Value::Type
2021-06-21 15:50:58 +02:00
Olivier Goffart
deaa0fddb0
WIP layout: split vertical and horizontal cache
...
Split the vertical and horizontal pass into different property cache
This will allow to implement "height for with"
This patch does not port the Rust or C++ binding yet
2021-06-16 15:14:07 +02:00
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
Olivier Goffart
0b3fecf300
WIP: API to expose image loading from C++ and Rust
2021-05-28 17:05:16 +02:00
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
8b16509422
Fix wasm build
2021-05-21 16:41:51 +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
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