Commit Graph

38 Commits

Author SHA1 Message Date
4903f3d1a0 layout: Keep content purpose around
This allows to add proper CSS style classes based on that
2021-12-05 17:31:12 +01:00
M33
e49de34d0e Revert "Update tests/meson.build"
This reverts commit 27cd8964d02e957fdecd00bfebc0a03e4b24ffe4
2021-04-01 15:17:53 +00:00
c6cc58fd8e ffi: Eliminate squeek_button and squeek_row 2020-12-04 17:34:53 +00:00
9522d4e302 renderer: Bring button drawing closer to Rust 2020-12-04 15:35:02 +00:00
db298b0fb8 keymaps: Use multiple key maps, each within the limit of what Xorg can accept.
Key maps are switched on key press whenever needed.
2020-10-12 14:14:17 +00:00
0466a520f2 Merge branch 'predictoin_ui' into 'master'
Cleanups to make EekGtkKeyboard more standalone

See merge request Librem5/squeekboard!336
2020-03-12 10:46:14 +00:00
61e1ab5c5a layout: Split out choice to a struct on its own 2020-03-07 10:26:52 +00:00
92e9d994fe modifiers: Support Control and Alt
Control and Alt are special in that they aren't expected to switch levels, and so don't need to change what characters are output.

Use in layouts by adding `modifier: Control` or `modifier: Alt` in place of `text: "foo"`.

The latching of the modifier will force the keyboard to emit raw key presses and prevent it from outputting text.
2020-02-28 11:21:07 +00:00
326bb9319f submission: Take over virtual_keyboard handling 2020-01-13 13:53:54 +00:00
bafd1e6eb3 popover: Install emoji layout
In order to do that, an additional piece of state (layout switcher) was exposed to the event handlers, a separation between squeekboard-only and system layouts was introduced, along with a Translation structure to prevent mixing up strings.
2019-12-24 10:41:02 +00:00
dd21bfed8d positioning: Calculate sizes instead of storing, move position out of widgets
Sizes of widgets can be derived, so storing them was only for C compatibility. Similar with storing position inside of widgets.

Some layout margin and scaling changes could be introduced, meaning a possibility of visual differences.
2019-12-07 21:20:21 +00:00
1c4d027af5 cleanup: Remove references to squeek_view 2019-12-07 15:42:54 +00:00
f77db1bb73 renderer: Render whole keyboard the same way as pressed buttons
Removed window size dependent surface.
2019-12-07 14:33:49 +00:00
f9fbd3fb2d rendering: Simplify Cairo context usage, remove unneeded calls.
Moved Cairo context usage to Rust, and rearranged ctx setup (position) to happen in one place.

Removed render calls that were overwritten on each draw call anyway.
2019-12-07 12:47:47 +00:00
83fea8cd31 Drop squeek_key 2019-12-01 15:01:08 +00:00
47c4119ab7 Add a popover menu to switch languages 2019-11-05 13:10:55 +00:00
c917a1f818 layout: Keep kind metadata in loaded layouts
It will come useful for applying per-kind styling later without having to give each layout a new stylesheet
2019-10-29 13:27:54 +00:00
1b1fbed7de layouts: Change type based on shape 2019-10-29 13:21:46 +00:00
c99efc430c presses: Move press handling to Rust
This fixes some rendering things which would happen with multiple state-sharing buttons. It also removes some interfaces exposing rows, views, layouts, and buttons, bringing the code closer to removing them from the FFI entirely.
2019-10-23 15:11:16 +00:00
e513cb9b54 style: Use outline name as CSS class 2019-09-26 13:28:31 +00:00
0ed66e0eab locked: Use keys instead of buttons 2019-09-09 13:54:55 +00:00
6523275b6a views: Change based on layout file 2019-09-09 13:25:03 +00:00
26d1a6047c Merge branch 'fixes' into reparse 2019-09-04 10:18:53 +00:00
b84c402c4a WIP
WIP

WIP: keymap generation test passes

meta: Update features and version

WiP: cargo.lock

WIP: don't crash

WIP: no outlines

parsing: New tests

WIP: base level works

WIP: remove old keyboard

symbols correctly input

WIP: lodaing files

WIP: fallback works

Valid fallback
2019-09-04 09:44:31 +00:00
baabcb1400 layout: Remove unused C functions 2019-09-01 11:42:02 +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
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
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
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