789e8b6bff
Merge branch 'buttonlists' into 'master'
...
Buttonlists
See merge request Librem5/squeekboard!145
2019-09-02 14:42:19 +00:00
baabcb1400
layout: Remove unused C functions
2019-09-01 11:42:02 +00:00
6c0a642abf
Store key instead of button in pressed lists
2019-08-31 11:30:51 +00:00
878b7ed18e
ffi: Use a generic wrapper for opaque Rust structs
2019-08-29 13:33:04 +00:00
75992ff13f
Check for button position more in Rust
...
The check against fitting inside the Layout was removed: as an optimization it is unneeded, as the actual search must be optimized to be quick. In addition, the view bounds don't correspond to anything physical as long as negative offsets are allowed.
2019-08-29 12:19:42 +00:00
4a61ab269b
layout: Place items using simple loops
...
The C version of looping over buttons and other items was weakly typed, causing runtime errors, and also C doesn't know how to iterate in abstract, so it was full of callbacks with user-defined data. Moving this to Rust, iteration is made of simple loops, and compile-time type-checked, at the cost of some more verbose code.
2019-08-28 09:41:33 +00:00
79b66f81ec
view: Move button finding to Rust
2019-08-18 13:22:18 +00:00
e1c57fa9f0
row: Add const
2019-08-18 13:22:18 +00:00
a64bff6aab
button: Add const qualifiers where needed
2019-08-18 13:22:18 +00:00
4e9a8e4afe
Move button finding to view
2019-08-18 13:22:18 +00:00
f479a36dbe
keyboard: Remove references
2019-08-18 13:22:18 +00:00
e56f1c6392
row: Move button find iteration into row
2019-08-18 13:22:18 +00:00
7caf2ef86d
row: Less dense placing of buttons
2019-08-18 13:22:18 +00:00
86b72d2723
row: Move generic functions out of the C ghetto
2019-08-18 13:22:18 +00:00
c4b3a0aaaa
row: Moved button sizing closer to row
2019-08-18 13:22:18 +00:00
524040cf00
Remove eek-container
2019-08-18 13:22:18 +00:00
77d4f45d13
section: Elininate references
2019-08-18 13:22:18 +00:00
0d33179727
section: Moved bounds to row
2019-08-18 13:22:18 +00:00
4f8de42598
section: Move properties into Row
2019-08-18 13:22:18 +00:00
3689727fc1
serializable: Remove completely
2019-08-18 13:22:18 +00:00
6fc351d2e8
eekkey: Dropped in favor of Button
...
Each Button has a KeyState, which may be shared with other buttons. The list of pressed and locked buttons is used as a list of keys, causing a search for the button in the current view.
2019-08-18 13:22:18 +00:00
b70afbe9eb
keystate: Wrap in refconuter
2019-08-18 13:20:43 +00:00
996f681e5c
keystate: Removed multiple symbols
2019-08-18 13:20:43 +00:00
725b36ba79
locking: Move to squeek_key
2019-08-18 13:20:43 +00:00
94a76eedfd
Remove marshalers
2019-08-18 13:20:43 +00:00
1cfec4de50
key: Share state between multiple keys
2019-08-08 20:04:38 +00:00
f371b14e89
levelkeyboard: Use a layer for managing keyboard views
2019-08-08 19:26:21 +00:00
0b6935e50c
keystate: Use keycode
2019-08-08 19:18:29 +00:00
fb93e25833
eekkey: Moved state to KeyState
2019-08-08 19:18:29 +00:00
ad86cb531a
symbol: Store symbols instead of pointers
2019-08-08 19:18:29 +00:00
53b89aae45
symbol: Remove remains
2019-08-08 19:18:29 +00:00
23d5f18d4a
symbols matrix: Remove in favor of a levels vector
2019-08-08 19:18:28 +00:00
38f81e45f4
Break out symbol handling into Rust
2019-08-08 12:51:15 +00:00
87dd9b4374
Remove references to the removed theme classes
2019-08-02 17:04:16 +02:00
778543c719
rust: Add a call to Rust test framework
2019-07-31 11:20:57 +00:00
18b8972029
bitflags: Use absolute imports
...
With relative import of the bitflags crate, the macros would try to fetch nonexistent paths, preventing tests form compiling.
2019-07-31 11:13:24 +00:00
fa31f8eee1
imservice: Check pointer validity
2019-07-31 10:43:39 +00:00
98a2e33d78
imservice: Use TryFrom for u32->enum conversions
2019-07-31 10:05:35 +00:00
58d01bf502
imservice: Use discriminants in enums
2019-07-31 10:05:35 +00:00
8326bd7016
rust: Create a root file for modules
...
The new `lib.rs` file is created to refer to all modules written in Rust. This way, only one `rustc` call is needed to compile an arbitrary amount of modules. It also converges with the way crates are structured.
2019-07-31 10:05:27 +00:00
4aee4915d9
Merge branch 'generate-xkb-files' into 'master'
...
Generate XKB keymaps from XML instead of using pre-made ones
See merge request Librem5/squeekboard!90
2019-07-30 17:38:06 +00:00
306aa89d06
Merge branch 'content_type' into 'master'
...
Finish up imservice state
See merge request Librem5/squeekboard!93
2019-07-30 11:44:19 +00:00
107399a531
Don't set the geometry of the window in normal use
...
Setting the geometry prevents the widget from getting the correct
allocation and prevents us from positioning it correctly in
landscape mode.
2019-07-26 22:26:02 +00:00
70895999c2
Generate XKB keymaps from XML instead of using pre-made ones
2019-07-25 22:25:29 +02:00
e9cf572a3c
Only recreate the widget when the keyboard layout changes
...
Avoid creating a widget before there is a window to put it in.
2019-07-25 18:07:29 +00:00
a9a6e1d2b5
Ensure that resources are built with the application
2019-07-24 01:22:58 +02:00
7e939c36cc
imservice: Call show/hide directly
2019-07-23 20:26:42 +00:00
c5d2d76ab1
imservice: Handle unavailable message
2019-07-23 20:26:42 +00:00
622ba6e38a
imservice: Handle text change cause
...
Nothing is being done with this information yet
2019-07-23 20:26:42 +00:00
fad06348a7
imservice: Make imservice opaque
...
The structure is defined in Rust, with the intention of evaluating using Rust in this area. It's specifically not defined as repr(C), in order to encourage that. Without the repr, it was unsafe to have its members exposed in C.
2019-07-23 20:26:42 +00:00