Olivier Goffart
07c4b6cb3d
CMake: Fix installation
2020-10-07 18:20:55 +02:00
Olivier Goffart
3040885c6d
Fixup C++ build
2020-10-07 11:48:22 +02:00
Olivier Goffart
8b02568b4b
Refactor the cmake C++ build
2020-10-07 11:40:34 +02:00
Simon Hausmann
a472ca7c28
Automatically embed resources when cross-compiling
...
Don't assume that the file system is the same
2020-10-06 23:00:17 +02:00
Olivier Goffart
1f50e8c85e
Highlight the error in the online editor
2020-10-06 11:33:44 +02:00
Olivier Goffart
58b176d10c
ListView in C++
...
This make sure the layout is correct, but does not implement the
optimization to only instentiate visible items
2020-10-05 11:32:43 +02:00
Olivier Goffart
1b506a1b03
Move ther model code from the rust API to the corelib
...
We will need it in the dynamic component
2020-10-02 18:11:35 +02:00
Olivier Goffart
c7e5b39973
Layout the items in the ListView
2020-10-02 18:07:39 +02:00
Olivier Goffart
f10c2bfd7c
More ListView WIP
2020-10-02 18:07:39 +02:00
Olivier Goffart
dec06be70c
WIP ListView
2020-10-02 18:07:39 +02:00
Olivier Goffart
6d9af3449a
C++ model for the todo example in C++
2020-09-30 18:30:19 +02:00
Olivier Goffart
f01977ca06
Fix removing from model in C++
2020-09-30 18:17:15 +02:00
Olivier Goffart
4cf61b5617
Make the "remove done items" button work in the Todo rust example
2020-09-30 17:57:19 +02:00
Simon Hausmann
6190d197dd
Fix formatting
2020-09-30 15:26:24 +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
2050f08f1e
Ability to make change to the model property
2020-09-30 15:04:32 +02:00
Olivier Goffart
f4f4775a19
Refactor the C++ Repeater to do the same as the Rust one
2020-09-29 14:20:43 +02:00
Olivier Goffart
2337eb097b
Refatoring of the rust Repeater so we can take track of which items are dirty
...
So we do not recreate items unless they were removed and re-added
2020-09-29 14:20:43 +02:00
Olivier Goffart
d9262373aa
Put RepeaterInner in a RefCell instead of having every field in a refcell
2020-09-29 14:20:43 +02:00
Olivier Goffart
6662e1ff00
Proper Scrollbar on the native style
2020-09-28 18:13:13 +02:00
Olivier Goffart
6dd0d178a0
Rename ScrollArea to ScrollView
2020-09-28 10:52:29 +02:00
Olivier Goffart
3b6679ed4b
Two ways binding works also work as three ways binding and more
...
A side effect is that the order of calling set_binding and link_two_ways is no longer relevant
2020-09-28 10:42:27 +02:00
Olivier Goffart
abe24e2e9e
C++ two way bindings
2020-09-25 15:21:37 +02:00
Simon Hausmann
e5dfb3a4c0
Implement basic focus handling
...
Similar to the mouse_grabber, we use a VisitChildrenResult field to
track the focus item within a component. Unlike the mouse grabber
however, it is set/cleared using dedicated focus events.
The key event now routes the key event directly to the focus item.
The focus can be requested via set_focus_item on a window, which the
TextItem does.
2020-09-25 10:43:47 +02:00
Simon Hausmann
aa5babffe1
Prepare for key event delivery to a specific focus item
...
Begin by routing key events through the component. In the future that
will direct the event to the focus item.
2020-09-25 10:06:15 +02:00
Simon Hausmann
2b76e9277a
Prepare for allowing an item mouse handler to request focus
...
In the future the TextInput will request focus on mouse click,for
example.
Pass the outer-most component through to ItemVTable's input_event.
For the purpose of disambiguating this component from any nested
component instantiated by a repeater or so, it's called the
app_component.
The ComponentVTable takes a reference to a ComponentRefPin instead of a
ComponentRefPin by value, as the vtable macro gets confused otherwise
and thinks it's a self argument.
2020-09-25 10:06:15 +02:00
Simon Hausmann
7ca66d62b9
Fix crash in TextInput when deleting a left-directed selection
...
When selecting to the left, the anchor remains to the right of the cursor.
When deleting such a selection, we fetch the cursor and anchor using a helper
method, which ensures that the anchor is to the left of the cursor.
Finally when setting the cursor then to the anchor, we need to also
set the anchor, since both were swapped.
This also add an automated test for this scenario.
2020-09-23 17:33:09 +02:00
Olivier Goffart
e3459f39d4
Parse two ways bindings
2020-09-23 14:06:08 +02:00
Olivier Goffart
315fd7a881
Start doing a ScrollArea element
...
Unfortunately something is wrong with the Qt style, it looks like the Qt style
does not respect the rect given for the sub components
Also Input is not handled yet.
2020-09-22 20:05:41 +02:00
Olivier Goffart
b36a9004ef
Move the RepeaterInner in a Rc and use that for the ModelPeer
2020-09-21 15:23:24 +02:00
Simon Hausmann
93a08c5207
Add a LineEdit widget to the ugly and native style
2020-09-18 18:54:37 +02:00
Simon Hausmann
2da84fee46
Add a boilerplate TextInput item
2020-09-18 16:34:24 +02:00
Simon Hausmann
7053aee0c8
Pass the ComponentWindow to ItemVTable::input_event
2020-09-18 16:18:48 +02:00
Olivier Goffart
cbd8c6aefc
Documentation for the newly added struct type
2020-09-17 13:14:01 +02:00
Olivier Goffart
8134fe5088
Support for named type as property
2020-09-17 13:14:01 +02:00
Simon Hausmann
3e8e357dec
Reformat sixtyfps_properties.h
...
Further changes coming up
2020-09-16 16:56:54 +02:00
Olivier Goffart
913d680333
Recactor rust Model after first round of API review
...
- Remove EmptyModel and use an Option
- Make ModelRc a type alias
- Rename ArrayModel into VecModel
2020-09-16 14:25:57 +02:00
Simon Hausmann
2150d1784e
Prospective MSVC build fix
...
Use the std type instead of uint, that seems to be not known to MSVC without additional includes?
2020-09-16 13:56:28 +02:00
Simon Hausmann
ad77896312
Change the way Text's default color is implemented
...
Instead of via an item constructor, implement support for default
bindings in the compiler.
2020-09-16 13:41:18 +02:00
Simon Hausmann
b99e4817cd
Reformat the file
...
(to reduce diff in further changes)
2020-09-16 08:56:29 +02:00
Simon Hausmann
625cb6c6b8
Add a constructor to Text and let the color default to black
...
We really shouldn't require specifying a color for every Text {} element just in order
to see *some* text.
For Rectangle OTOH transparent is a good default (and thus for Color), hence
this change just to Text.
Right now the constructor bit is also a bit repetitive, this could
perhaps be folded into BuiltinItem to generate the ffi, default impl and
forward to an init function if it exists.
2020-09-16 08:20:13 +02:00
Olivier Goffart
4da5f5eee6
C++: Make a model based on a SharedArray like in C++
...
And make the SharedArray editable
2020-09-15 15:01:33 +02:00
Olivier Goffart
2ae4f1757b
Rename model method to match the rust API
2020-09-15 14:10:07 +02:00
Olivier Goffart
4a0a65f113
C++ model that can be changed
2020-09-15 12:18:36 +02:00
Simon Hausmann
546818ee55
Add key event data structures and event function boiler plate
2020-09-15 11:16:55 +02:00
Olivier Goffart
b41e80b7db
C++ Tests add an assert_eq macro
...
More consistency with rusts tests
2020-09-15 10:19:22 +02:00
Olivier Goffart
0d8a38577d
Todo example: make the "add todo" button do something
2020-09-14 16:38:45 +02:00
Olivier Goffart
4de2e57175
Use a Model trait in the rust backend
2020-09-14 14:02:34 +02:00
Simon Hausmann
26ae1bfdb2
Add From<String> and Into<String> for SharedString
2020-09-14 08:49:41 +02:00
Simon Hausmann
0dc81895ed
Exclude SharedArray::SharedArrayHeader from the C++ docs
2020-09-11 18:35:27 +02:00