Simon Hausmann
c394a10a85
Remove trailing spaces
2020-08-13 13:51:00 +02:00
Simon Hausmann
d650cadc02
Release graphics resources of items when deleting components in C++
2020-08-13 13:31:52 +02:00
Simon Hausmann
b96b627a4f
Release graphics resources of items when destroying components
...
This is only implemented for Rust at the moment.
2020-08-13 13:31:29 +02:00
Olivier Goffart
2ddfe76840
Fix bug with mouse input and dynamic models
2020-08-13 10:59:45 +02:00
Olivier Goffart
7e1af72a2e
Implement minimum/maximum width/height properties
2020-08-12 14:00:51 +02:00
Olivier Goffart
092411ccef
Attempt to merge the layout code between rust and C++
...
This does not actually merge so much but it is better than nothing.
I was not able to merge the code from the interpreter because of the life time issues
2020-08-12 11:53:39 +02:00
Simon Hausmann
b21aa4f9e7
Rename PropertyListenerScope to PropertyTracker
2020-08-12 11:31:33 +02:00
Simon Hausmann
aafb96cb93
Get rid of abi::datastructures::WindowProperties
...
Instead, pass a reference to the root item when mapping the window,
at which point we can downcast to the new Window item. If we have one,
then we'll read its width/height (for initial values) and install
bindings to keep them up-to-date.
2020-08-12 09:44:42 +02:00
Simon Hausmann
9fd7d35b0d
Remove stray scale_factor properties
2020-08-11 15:10:43 +02:00
Simon Hausmann
c1f91e38ca
Move the window scale factor into GraphicsWindow
2020-08-11 13:42:51 +02:00
Simon Hausmann
f2eec61968
Add a window to the top-level component
...
This means that we always have a window and for the C++
API we don't require this ComponentWindow use anymore.
2020-08-11 13:38:38 +02:00
Simon Hausmann
0fb6eef939
Fix build with Apple clang
...
The compiler complains that intptr_t is not the same type as "long long".
The "long long" originates from "pub struct VisitChildrenResult(i64);"
and I suppose the compiler is right for potential 32-bit architectures. So
let's use int64_t as counter-part to i64.
2020-08-11 10:16:37 +02:00
Olivier Goffart
9af5c0b69d
Slider in Qt style
2020-08-10 16:01:06 +02:00
Olivier Goffart
35cb14b2e6
Slider
2020-08-10 14:58:13 +02:00
Olivier Goffart
f4cce26d51
Test the mouse click
2020-08-10 12:54:29 +02:00
Olivier Goffart
36243ccdf7
Traverse item front to back for input events
2020-08-10 10:45:02 +02:00
Olivier Goffart
cc5d5cc92b
C++: Fix input event within repeater
2020-08-10 08:55:42 +02:00
Olivier Goffart
5de801d023
C++: grabbed mouse input
2020-08-07 16:06:49 +02:00
Olivier Goffart
b4684cc1f5
C++: put thre item_tree in a separate function.
...
We'll need that for the input event
2020-08-07 16:06:49 +02:00
Olivier Goffart
1ee313c643
C++: separate the declaration and the definition of functions
...
We already did it manually for some functions. But more functions are
about to require the full definition of the other classes
2020-08-07 16:06:49 +02:00
Olivier Goffart
0a56912d0f
Mouse grab in rust
2020-08-07 16:06:49 +02:00
Olivier Goffart
5aa7ee86fe
Use a newtype for VisitChildrenResult instead of just isize
...
Makes the code easier to unserstand
2020-08-07 16:06:49 +02:00
Olivier Goffart
55ec533c40
WIP input events
...
Compile and passes tests. But the mouse event are currently not working
2020-08-07 16:06:49 +02:00
Simon Hausmann
829990f9b1
WIP
...
Co-authored-by: Olivier Goffart <ogoffart@woboq.com>
2020-08-07 16:06:49 +02:00
Simon Hausmann
5b9c41b76b
Add referenced image resources to the dependencies for the rust build
2020-08-07 13:35:44 +02:00
Simon Hausmann
fcc819e395
Add support for enums to the compiler
...
This replaces the duplicated text alignment enums
2020-08-07 13:15:43 +02:00
Simon Hausmann
aecf6a8878
Center text in buttons in the demo and gallery
...
This adds horizontal_alignment/vertical_alignment properties, along with
width/height to Text.
This still uses a hard-coded enumeration in the compiler, which is meant
to go away in favor of general enum support.
2020-08-07 10:02:52 +02:00
Olivier Goffart
479173c22f
Implement spacing in GridLayout
2020-08-05 15:42:38 +02:00
Simon Hausmann
5dfb9aa875
Fix initialize size of printer demo
...
Map it to 800x600 logical pixels for a better initial look.
This implements respecting the initial values for width/height and tries
to apply them to the window begin created.
The PinnedOptionalProp wrapper is needed because while cbindgen mapped
the previous Option<&...> to a raw pointer, the new Option<Pin<&...>> is
not detected as a pointer.
2020-08-05 13:22:53 +02:00
Olivier Goffart
2dd3cecc5a
Add a SpinBox
2020-08-05 12:56:13 +02:00
Olivier Goffart
6d0591a6f2
Add a helper function to add native types
2020-08-05 11:26:15 +02:00
Olivier Goffart
38cd9158ac
Report the error while building the Document node
...
Instead of panicking in later phase.
Use the same function in the syntax_tests that the one we use in the different
compiler frontend so that the problems would also be shown in the tests
2020-08-05 10:54:59 +02:00
Olivier Goffart
2518af41b1
Fix for
in a declared component
2020-08-04 18:51:39 +02:00
Olivier Goffart
0199b70cea
if
statements
2020-08-04 17:36:20 +02:00
Simon Hausmann
685a3fb8ab
Rename Text::font_pixel_size to just font_size
...
Since length are resolution independent, it doesn't make sense anymore
to have the pixel infix.
2020-08-04 16:56:42 +02:00
Simon Hausmann
254df328d0
Add support for images (resources) in models
...
This also allows replacing the emojis (not working due to lack of fallback) with images
2020-08-04 16:09:33 +02:00
Olivier Goffart
283387bc44
Add the self and parent implicit id
2020-08-04 15:58:40 +02:00
Simon Hausmann
ee3765e115
Print out the type we failed to convert to rust if it happens
2020-08-04 15:10:58 +02:00
Simon Hausmann
7277d15394
Provide a better error message when failing to convert a type to C++
2020-08-04 15:04:18 +02:00
Simon Hausmann
2d255380c7
Don't crash when trying to report internal errors
2020-08-04 15:01:42 +02:00
Olivier Goffart
52cf481dc4
Fix states in repeated elements
...
This create reference to new property that needs to be adjusted
2020-08-04 14:02:18 +02:00
Simon Hausmann
41671e3efb
Represent the window scale factor conversions in the IR
...
That means less code in the generators and easier to extend in the
future with more built-in functions.
2020-08-04 12:49:37 +02:00
Olivier Goffart
2b9e529af7
Fix unicode in strings in C++
2020-08-04 11:52:47 +02:00
Simon Hausmann
4f0bf0b982
Rename dpi to (window) scale_factor
2020-08-04 09:01:30 +02:00
Olivier Goffart
d7bb993d7b
Fix clang warnings
2020-08-03 18:46:11 +02:00
Olivier Goffart
da11b33e9b
Version check
...
Compilation error when the compiler and the runtime are not on the same version
2020-08-03 18:44:36 +02:00
Olivier Goffart
b259a09338
Rename the types float32 and int32 to float and int
2020-08-03 16:15:41 +02:00
Olivier Goffart
1bfd708784
Change the field_offsets() function to a FIELD_OFFSETS associated const
2020-08-03 16:04:55 +02:00
Olivier Goffart
de188e0a54
Add the as_weak to rust generated component
2020-08-03 15:36:54 +02:00
Olivier Goffart
5f38f03a1b
Test setting signal handler and a few fix to make it work
...
We were not parsing CodeBlock node from the signal handler correctly,
we wer eonly taking the first expression instead of the whole codeblock
In JS, emitting signal before the show() did not update the GLOBAL_CONTEXT
needed to emit signals defined in JS
2020-08-03 15:01:10 +02:00