touchy-pad 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- touchy_pad-0.2.1/PKG-INFO +113 -0
- touchy_pad-0.2.1/README.md +76 -0
- touchy_pad-0.2.1/pyproject.toml +130 -0
- touchy_pad-0.2.1/src/touchy_pad/__init__.py +21 -0
- touchy_pad-0.2.1/src/touchy_pad/_proto/.gitignore +2 -0
- touchy_pad-0.2.1/src/touchy_pad/_proto/__init__.py +74 -0
- touchy_pad-0.2.1/src/touchy_pad/_proto/preferences_pb2.py +40 -0
- touchy_pad-0.2.1/src/touchy_pad/_proto/touchy_pb2.py +72 -0
- touchy_pad-0.2.1/src/touchy_pad/_proto/widgets_pb2.py +114 -0
- touchy_pad-0.2.1/src/touchy_pad/api/__init__.py +242 -0
- touchy_pad-0.2.1/src/touchy_pad/api/device.py +333 -0
- touchy_pad-0.2.1/src/touchy_pad/api/hid_keys.py +138 -0
- touchy_pad-0.2.1/src/touchy_pad/api/images.py +25 -0
- touchy_pad-0.2.1/src/touchy_pad/api/lvgl_image.py +193 -0
- touchy_pad-0.2.1/src/touchy_pad/api/macros.py +116 -0
- touchy_pad-0.2.1/src/touchy_pad/api/protobuf.py +24 -0
- touchy_pad-0.2.1/src/touchy_pad/api/screens.py +1325 -0
- touchy_pad-0.2.1/src/touchy_pad/api/sim_registry.py +94 -0
- touchy_pad-0.2.1/src/touchy_pad/assets/__init__.py +8 -0
- touchy_pad-0.2.1/src/touchy_pad/assets/smiley.png +0 -0
- touchy_pad-0.2.1/src/touchy_pad/cli.py +487 -0
- touchy_pad-0.2.1/src/touchy_pad/client.py +168 -0
- touchy_pad-0.2.1/src/touchy_pad/sim/__init__.py +43 -0
- touchy_pad-0.2.1/src/touchy_pad/sim/device.py +267 -0
- touchy_pad-0.2.1/src/touchy_pad/sim/fs.py +109 -0
- touchy_pad-0.2.1/src/touchy_pad/sim/transport.py +148 -0
- touchy_pad-0.2.1/src/touchy_pad/sim/widgets.py +344 -0
- touchy_pad-0.2.1/src/touchy_pad/sim/window.py +295 -0
- touchy_pad-0.2.1/src/touchy_pad/touchydeck/__init__.py +37 -0
- touchy_pad-0.2.1/src/touchy_pad/touchydeck/deck.py +347 -0
- touchy_pad-0.2.1/src/touchy_pad/touchydeck/discovery.py +129 -0
- touchy_pad-0.2.1/src/touchy_pad/touchydeck/layout.py +92 -0
- touchy_pad-0.2.1/src/touchy_pad/transport.py +441 -0
- touchy_pad-0.2.1/src/touchy_pad/update.py +367 -0
- touchy_pad-0.2.1/src/touchy_pad/usb_ids.py +18 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: touchy-pad
|
|
3
|
+
Version: 0.2.1
|
|
4
|
+
Summary: Host library and CLI for the Touchy-Pad USB multitouch device.
|
|
5
|
+
License-Expression: GPL-3.0-or-later
|
|
6
|
+
Keywords: touchpad,usb,esp32,lvgl,hid
|
|
7
|
+
Author: Touchy-Pad contributors
|
|
8
|
+
Requires-Python: >=3.11,<3.15
|
|
9
|
+
Classifier: Development Status :: 3 - Alpha
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
12
|
+
Classifier: Operating System :: MacOS
|
|
13
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Topic :: System :: Hardware :: Hardware Drivers
|
|
18
|
+
Provides-Extra: sim
|
|
19
|
+
Provides-Extra: streamdeck
|
|
20
|
+
Requires-Dist: PySide6 (>=6.6,<7) ; extra == "sim"
|
|
21
|
+
Requires-Dist: click (>=8.1,<9)
|
|
22
|
+
Requires-Dist: esptool (>=4.8,<6)
|
|
23
|
+
Requires-Dist: pillow (>=12.2.0,<13)
|
|
24
|
+
Requires-Dist: platformdirs (>=4) ; extra == "sim"
|
|
25
|
+
Requires-Dist: protobuf (>=4.25,<7)
|
|
26
|
+
Requires-Dist: pyusb (>=1.2,<2)
|
|
27
|
+
Requires-Dist: requests (>=2.32,<3)
|
|
28
|
+
Requires-Dist: rich (>=13.7,<15)
|
|
29
|
+
Requires-Dist: streamcontroller-streamdeck (>=0.1.5,<1) ; extra == "streamdeck"
|
|
30
|
+
Project-URL: Changelog, https://github.com/geeksville/touchy-pad/releases
|
|
31
|
+
Project-URL: Documentation, https://github.com/geeksville/touchy-pad/tree/main/docs
|
|
32
|
+
Project-URL: Homepage, https://github.com/geeksville/touchy-pad
|
|
33
|
+
Project-URL: Issues, https://github.com/geeksville/touchy-pad/issues
|
|
34
|
+
Project-URL: Repository, https://github.com/geeksville/touchy-pad
|
|
35
|
+
Description-Content-Type: text/markdown
|
|
36
|
+
|
|
37
|
+
# touchy-pad
|
|
38
|
+
|
|
39
|
+
Host-side Python library and CLI for the [Touchy-Pad](../README.md) USB
|
|
40
|
+
multitouch device.
|
|
41
|
+
|
|
42
|
+
## Install
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
pip install touchy-pad
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
You will also need a working `libusb-1.0` runtime on your host:
|
|
49
|
+
|
|
50
|
+
| Platform | Command |
|
|
51
|
+
|----------|--------------------------------------------------|
|
|
52
|
+
| Debian | `sudo apt install libusb-1.0-0` |
|
|
53
|
+
| macOS | `brew install libusb` |
|
|
54
|
+
| Windows | bundle `libusb-1.0.dll` next to your interpreter |
|
|
55
|
+
|
|
56
|
+
On Linux you also need a udev rule so non-root users can open the device.
|
|
57
|
+
A starter rule is shipped at [`../bin/99-touchy-pad.rules`](../bin/99-touchy-pad.rules).
|
|
58
|
+
|
|
59
|
+
## CLI
|
|
60
|
+
|
|
61
|
+
```sh
|
|
62
|
+
touchy --help # list subcommands
|
|
63
|
+
touchy board-info # query device board, firmware, protocol version
|
|
64
|
+
touchy screen-wake # turn the backlight on
|
|
65
|
+
touchy events # live-tail events from the device
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Library
|
|
69
|
+
|
|
70
|
+
The supported entry point is `touchy_pad.api`:
|
|
71
|
+
|
|
72
|
+
```python
|
|
73
|
+
from touchy_pad.api import touchy_open
|
|
74
|
+
|
|
75
|
+
with touchy_open() as pad:
|
|
76
|
+
print("firmware:", pad.client.sys_version_get().firmware_version_str)
|
|
77
|
+
|
|
78
|
+
pad.on_host_event(0x100, lambda e: print("event", e))
|
|
79
|
+
# ...do work; events arrive on a background thread...
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
See [`docs/python-api.md`](../docs/python-api.md) for the full guide
|
|
83
|
+
and [`docs/python-api/`](../docs/python-api/) for auto-generated
|
|
84
|
+
reference docs (built with `just build-docs`).
|
|
85
|
+
|
|
86
|
+
### Uploading images
|
|
87
|
+
|
|
88
|
+
`Touchy.file_save` accepts any Pillow-readable image (BMP, PNG,
|
|
89
|
+
JPEG, GIF, WebP) and transparently converts it to LVGL's native `.bin`
|
|
90
|
+
format before uploading, so the firmware (which only ships LVGL's
|
|
91
|
+
built-in bin decoder) can render it without extra config:
|
|
92
|
+
|
|
93
|
+
```python
|
|
94
|
+
with touchy_open() as pad:
|
|
95
|
+
with open("avatar.png", "rb") as f:
|
|
96
|
+
pad.file_save("images/avatar.png", f.read()) # auto-converted
|
|
97
|
+
|
|
98
|
+
# Already-converted `.bin` payload, or any non-image bytes, pass
|
|
99
|
+
# through unchanged.
|
|
100
|
+
pad.file_save("screens/home.pb", screen.to_bytes())
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Refer to the asset by its upload path (`asset="images/avatar.png"`)
|
|
104
|
+
when constructing `image(...)` / `image_button(...)` widgets — both
|
|
105
|
+
support `scale=` and `rotation=` for runtime transforms, and
|
|
106
|
+
`image_button` also takes `pressed_asset` / `pressed_scale` /
|
|
107
|
+
`pressed_rotation` for a distinct pressed-state look.
|
|
108
|
+
|
|
109
|
+
## Development
|
|
110
|
+
|
|
111
|
+
See [docs/development.md](../docs/development.md) for full setup instructions
|
|
112
|
+
(dev container or manual), day-to-day `just` recipes, and git hook details.
|
|
113
|
+
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# touchy-pad
|
|
2
|
+
|
|
3
|
+
Host-side Python library and CLI for the [Touchy-Pad](../README.md) USB
|
|
4
|
+
multitouch device.
|
|
5
|
+
|
|
6
|
+
## Install
|
|
7
|
+
|
|
8
|
+
```sh
|
|
9
|
+
pip install touchy-pad
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
You will also need a working `libusb-1.0` runtime on your host:
|
|
13
|
+
|
|
14
|
+
| Platform | Command |
|
|
15
|
+
|----------|--------------------------------------------------|
|
|
16
|
+
| Debian | `sudo apt install libusb-1.0-0` |
|
|
17
|
+
| macOS | `brew install libusb` |
|
|
18
|
+
| Windows | bundle `libusb-1.0.dll` next to your interpreter |
|
|
19
|
+
|
|
20
|
+
On Linux you also need a udev rule so non-root users can open the device.
|
|
21
|
+
A starter rule is shipped at [`../bin/99-touchy-pad.rules`](../bin/99-touchy-pad.rules).
|
|
22
|
+
|
|
23
|
+
## CLI
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
touchy --help # list subcommands
|
|
27
|
+
touchy board-info # query device board, firmware, protocol version
|
|
28
|
+
touchy screen-wake # turn the backlight on
|
|
29
|
+
touchy events # live-tail events from the device
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Library
|
|
33
|
+
|
|
34
|
+
The supported entry point is `touchy_pad.api`:
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
from touchy_pad.api import touchy_open
|
|
38
|
+
|
|
39
|
+
with touchy_open() as pad:
|
|
40
|
+
print("firmware:", pad.client.sys_version_get().firmware_version_str)
|
|
41
|
+
|
|
42
|
+
pad.on_host_event(0x100, lambda e: print("event", e))
|
|
43
|
+
# ...do work; events arrive on a background thread...
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
See [`docs/python-api.md`](../docs/python-api.md) for the full guide
|
|
47
|
+
and [`docs/python-api/`](../docs/python-api/) for auto-generated
|
|
48
|
+
reference docs (built with `just build-docs`).
|
|
49
|
+
|
|
50
|
+
### Uploading images
|
|
51
|
+
|
|
52
|
+
`Touchy.file_save` accepts any Pillow-readable image (BMP, PNG,
|
|
53
|
+
JPEG, GIF, WebP) and transparently converts it to LVGL's native `.bin`
|
|
54
|
+
format before uploading, so the firmware (which only ships LVGL's
|
|
55
|
+
built-in bin decoder) can render it without extra config:
|
|
56
|
+
|
|
57
|
+
```python
|
|
58
|
+
with touchy_open() as pad:
|
|
59
|
+
with open("avatar.png", "rb") as f:
|
|
60
|
+
pad.file_save("images/avatar.png", f.read()) # auto-converted
|
|
61
|
+
|
|
62
|
+
# Already-converted `.bin` payload, or any non-image bytes, pass
|
|
63
|
+
# through unchanged.
|
|
64
|
+
pad.file_save("screens/home.pb", screen.to_bytes())
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Refer to the asset by its upload path (`asset="images/avatar.png"`)
|
|
68
|
+
when constructing `image(...)` / `image_button(...)` widgets — both
|
|
69
|
+
support `scale=` and `rotation=` for runtime transforms, and
|
|
70
|
+
`image_button` also takes `pressed_asset` / `pressed_scale` /
|
|
71
|
+
`pressed_rotation` for a distinct pressed-state look.
|
|
72
|
+
|
|
73
|
+
## Development
|
|
74
|
+
|
|
75
|
+
See [docs/development.md](../docs/development.md) for full setup instructions
|
|
76
|
+
(dev container or manual), day-to-day `just` recipes, and git hook details.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "touchy-pad"
|
|
3
|
+
# Kept in sync with the repo-root VERSION file by `just bump-version`.
|
|
4
|
+
# Do not edit manually — run `just bump-version` to release a new version.
|
|
5
|
+
version = "0.2.1"
|
|
6
|
+
description = "Host library and CLI for the Touchy-Pad USB multitouch device."
|
|
7
|
+
authors = [{ name = "Touchy-Pad contributors" }]
|
|
8
|
+
license = "GPL-3.0-or-later"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
keywords = ["touchpad", "usb", "esp32", "lvgl", "hid"]
|
|
11
|
+
classifiers = [
|
|
12
|
+
"Development Status :: 3 - Alpha",
|
|
13
|
+
"Intended Audience :: Developers",
|
|
14
|
+
"Operating System :: POSIX :: Linux",
|
|
15
|
+
"Operating System :: MacOS",
|
|
16
|
+
"Operating System :: Microsoft :: Windows",
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3.11",
|
|
19
|
+
"Programming Language :: Python :: 3.12",
|
|
20
|
+
"Topic :: System :: Hardware :: Hardware Drivers",
|
|
21
|
+
]
|
|
22
|
+
requires-python = ">=3.11,<3.15"
|
|
23
|
+
dependencies = [
|
|
24
|
+
# Wire protocol bindings — generated from /proto/touchy.proto and committed
|
|
25
|
+
# under src/touchy_pad/_proto/.
|
|
26
|
+
"protobuf>=4.25,<7",
|
|
27
|
+
# Cross-platform raw-USB I/O against the device's custom vendor interface.
|
|
28
|
+
# pyusb wraps libusb1; users must have a working libusb runtime on the host.
|
|
29
|
+
"pyusb>=1.2,<2",
|
|
30
|
+
# CLI framework.
|
|
31
|
+
"click>=8.1,<9",
|
|
32
|
+
# Pillow handles BMP/PNG/JPEG/GIF/WebP decoding; `TouchyClient.file_save`
|
|
33
|
+
# transparently converts uploaded images to LVGL's native `.bin` format
|
|
34
|
+
# so the firmware only needs its always-on built-in image decoder.
|
|
35
|
+
"pillow>=12.2.0,<13",
|
|
36
|
+
# `touchy update` flashes firmware over USB via esptool's Python API,
|
|
37
|
+
# downloads release assets over HTTPS, and renders progress/status
|
|
38
|
+
# output with rich.
|
|
39
|
+
"esptool>=4.8,<6",
|
|
40
|
+
"requests>=2.32,<3",
|
|
41
|
+
"rich>=13.7,<15",
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
[project.optional-dependencies]
|
|
45
|
+
# Optional Python device simulator with a PySide6 (Qt6) GUI window.
|
|
46
|
+
# Install with: pip install 'touchy-pad[sim]'
|
|
47
|
+
#
|
|
48
|
+
# Used by `touchy sim` to render screens locally without USB hardware,
|
|
49
|
+
# typically while iterating on screen layouts. Headless sim runs
|
|
50
|
+
# (touchy --sim-headless) do NOT need this extra.
|
|
51
|
+
sim = [
|
|
52
|
+
"PySide6>=6.6,<7",
|
|
53
|
+
"platformdirs>=4",
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
# Optional StreamController/StreamDeck compatibility shim. Install with:
|
|
57
|
+
# pip install 'touchy-pad[streamdeck]'
|
|
58
|
+
# Pulls in the upstream Python library that the `touchy_pad.touchydeck`
|
|
59
|
+
# package subclasses; without it `TouchyDeck` raises at construction time.
|
|
60
|
+
streamdeck = [
|
|
61
|
+
"streamcontroller-streamdeck>=0.1.5,<1",
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
[project.urls]
|
|
65
|
+
Homepage = "https://github.com/geeksville/touchy-pad"
|
|
66
|
+
Repository = "https://github.com/geeksville/touchy-pad"
|
|
67
|
+
Issues = "https://github.com/geeksville/touchy-pad/issues"
|
|
68
|
+
Documentation = "https://github.com/geeksville/touchy-pad/tree/main/docs"
|
|
69
|
+
Changelog = "https://github.com/geeksville/touchy-pad/releases"
|
|
70
|
+
|
|
71
|
+
[project.scripts]
|
|
72
|
+
touchy = "touchy_pad.cli:main"
|
|
73
|
+
|
|
74
|
+
[tool.poetry]
|
|
75
|
+
packages = [{ include = "touchy_pad", from = "src" }]
|
|
76
|
+
# Binary resources (e.g. demo PNG image) must be explicitly listed so they
|
|
77
|
+
# end up in both the wheel and the sdist published to PyPI.
|
|
78
|
+
# Proto-generated Python files are gitignored in the source tree but must
|
|
79
|
+
# be present in distributions, so they're explicitly included here.
|
|
80
|
+
include = [
|
|
81
|
+
{ path = "src/touchy_pad/assets/*.png", format = ["sdist", "wheel"] },
|
|
82
|
+
{ path = "src/touchy_pad/_proto/*_pb2.py", format = ["sdist", "wheel"] },
|
|
83
|
+
]
|
|
84
|
+
|
|
85
|
+
[tool.poetry.dependencies]
|
|
86
|
+
python = ">=3.11,<3.15"
|
|
87
|
+
|
|
88
|
+
[tool.poetry.group.dev.dependencies]
|
|
89
|
+
pytest = ">=8,<10"
|
|
90
|
+
pytest-cov = "^5.0"
|
|
91
|
+
ruff = "^0.7"
|
|
92
|
+
mypy = "^1.10"
|
|
93
|
+
grpcio-tools = "^1.60" # used by `just build-proto` to regenerate bindings
|
|
94
|
+
pre-commit = "^4.0"
|
|
95
|
+
|
|
96
|
+
[tool.poetry.group.docs]
|
|
97
|
+
optional = true
|
|
98
|
+
|
|
99
|
+
[tool.poetry.group.docs.dependencies]
|
|
100
|
+
mkdocs = "^1.6"
|
|
101
|
+
mkdocs-material = "^9.5"
|
|
102
|
+
mkdocstrings = { extras = ["python"], version = "^0.27" }
|
|
103
|
+
|
|
104
|
+
[build-system]
|
|
105
|
+
requires = ["poetry-core>=1.8"]
|
|
106
|
+
build-backend = "poetry.core.masonry.api"
|
|
107
|
+
|
|
108
|
+
[tool.pytest.ini_options]
|
|
109
|
+
testpaths = ["tests"]
|
|
110
|
+
addopts = "-ra --strict-markers"
|
|
111
|
+
|
|
112
|
+
[tool.ruff]
|
|
113
|
+
line-length = 100
|
|
114
|
+
target-version = "py310"
|
|
115
|
+
# Generated by protoc — don't lint, formatting is upstream-controlled.
|
|
116
|
+
extend-exclude = [
|
|
117
|
+
"src/touchy_pad/_proto/touchy_pb2.py",
|
|
118
|
+
"src/touchy_pad/_proto/touchy_pb2.pyi",
|
|
119
|
+
"src/touchy_pad/_proto/widgets_pb2.py",
|
|
120
|
+
"src/touchy_pad/_proto/widgets_pb2.pyi",
|
|
121
|
+
]
|
|
122
|
+
|
|
123
|
+
[tool.ruff.lint]
|
|
124
|
+
select = ["E", "F", "I", "W", "B", "UP"]
|
|
125
|
+
ignore = ["E501"] # let formatter handle line length
|
|
126
|
+
|
|
127
|
+
[tool.mypy]
|
|
128
|
+
python_version = "3.10"
|
|
129
|
+
strict = false
|
|
130
|
+
ignore_missing_imports = true
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""Host library and CLI for the Touchy-Pad USB multitouch device.
|
|
2
|
+
|
|
3
|
+
Public API lives under :mod:`touchy_pad.api` — use that for application
|
|
4
|
+
code::
|
|
5
|
+
|
|
6
|
+
from touchy_pad.api import touchy_open, Screen, button
|
|
7
|
+
|
|
8
|
+
The top-level :class:`TouchyClient` / :class:`UsbTransport` exports
|
|
9
|
+
below remain available but are considered internal building blocks; new
|
|
10
|
+
code should prefer the :mod:`touchy_pad.api` facade.
|
|
11
|
+
|
|
12
|
+
See ``proto/touchy.proto`` in the repository root for the wire format.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
|
|
17
|
+
from .client import TouchyClient
|
|
18
|
+
from .transport import Transport, UsbTransport
|
|
19
|
+
|
|
20
|
+
__all__ = ["TouchyClient", "Transport", "UsbTransport"]
|
|
21
|
+
__version__ = "0.1.0"
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"""Re-exports from the generated protobuf modules.
|
|
2
|
+
|
|
3
|
+
The actual ``touchy_pb2`` and ``widgets_pb2`` modules are generated from
|
|
4
|
+
``proto/touchy.proto`` and ``proto/widgets.proto`` by ``just build-proto``
|
|
5
|
+
(or ``just build-proto-py``) and committed under ``touchy_pad/_proto/`` so
|
|
6
|
+
the package is installable from PyPI without protoc.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
from .touchy_pb2 import ( # noqa: F401 (re-exported)
|
|
12
|
+
Command,
|
|
13
|
+
Event,
|
|
14
|
+
EventConsumeCmd,
|
|
15
|
+
EventConsumeResponse,
|
|
16
|
+
FileResetCmd,
|
|
17
|
+
FileSaveCmd,
|
|
18
|
+
LvEvent,
|
|
19
|
+
Response,
|
|
20
|
+
ResultCode,
|
|
21
|
+
ScreenLoadCmd,
|
|
22
|
+
ScreenSleepTimeoutCmd,
|
|
23
|
+
ScreenWakeCmd,
|
|
24
|
+
StreamEventsCmd,
|
|
25
|
+
SysBoardInfoGetCmd,
|
|
26
|
+
SysBoardInfoResponse,
|
|
27
|
+
SysRebootBootloaderCmd,
|
|
28
|
+
)
|
|
29
|
+
from .widgets_pb2 import ( # noqa: F401 (re-exported)
|
|
30
|
+
Action,
|
|
31
|
+
ActionDevice,
|
|
32
|
+
ActionHost,
|
|
33
|
+
ActionMacro,
|
|
34
|
+
ActionSwitchScreen,
|
|
35
|
+
AnimPath,
|
|
36
|
+
Arc,
|
|
37
|
+
Button,
|
|
38
|
+
Checkbox,
|
|
39
|
+
ForceRender,
|
|
40
|
+
Fps,
|
|
41
|
+
GridCell,
|
|
42
|
+
Image,
|
|
43
|
+
KeyEvent,
|
|
44
|
+
Label,
|
|
45
|
+
LayoutAbsolute,
|
|
46
|
+
LayoutFlex,
|
|
47
|
+
LayoutGrid,
|
|
48
|
+
LogLine,
|
|
49
|
+
LvState,
|
|
50
|
+
MacroStep,
|
|
51
|
+
MouseMove,
|
|
52
|
+
Rect,
|
|
53
|
+
RippleAnimation,
|
|
54
|
+
Screen,
|
|
55
|
+
Slider,
|
|
56
|
+
Spacer,
|
|
57
|
+
Style,
|
|
58
|
+
StyleProp,
|
|
59
|
+
Switch,
|
|
60
|
+
TextAlign,
|
|
61
|
+
Trackpad,
|
|
62
|
+
Transition,
|
|
63
|
+
Widget,
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
# Convenience aliases so callers can write `_proto.RESULT_OK` without poking
|
|
67
|
+
# into the enum descriptor.
|
|
68
|
+
RESULT_OK = ResultCode.Value("RESULT_OK")
|
|
69
|
+
RESULT_UNKNOWN_ERROR = ResultCode.Value("RESULT_UNKNOWN_ERROR")
|
|
70
|
+
RESULT_INVALID_ARG = ResultCode.Value("RESULT_INVALID_ARG")
|
|
71
|
+
RESULT_NOT_FOUND = ResultCode.Value("RESULT_NOT_FOUND")
|
|
72
|
+
RESULT_NO_SPACE = ResultCode.Value("RESULT_NO_SPACE")
|
|
73
|
+
RESULT_IO_ERROR = ResultCode.Value("RESULT_IO_ERROR")
|
|
74
|
+
RESULT_NOT_SUPPORTED = ResultCode.Value("RESULT_NOT_SUPPORTED")
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: preferences.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'preferences.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11preferences.proto\x12\x06touchy\"\xb8\x01\n\x0fPreferencesFile\x12\x35\n\x0c\x66ile_version\x18\x01 \x01(\x0e\x32\x1f.touchy.PreferencesFile.Version\x12\x19\n\x11screen_timeout_ms\x18\x02 \x01(\r\x12\x16\n\x0e\x63urrent_screen\x18\x03 \x01(\t\";\n\x07Version\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x06\n\x02V1\x10\x01\x12\x06\n\x02V2\x10\x02\x12\x0b\n\x07\x43URRENT\x10\x02\x1a\x02\x10\x01\x62\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'preferences_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_PREFERENCESFILE_VERSION']._loaded_options = None
|
|
35
|
+
_globals['_PREFERENCESFILE_VERSION']._serialized_options = b'\020\001'
|
|
36
|
+
_globals['_PREFERENCESFILE']._serialized_start=30
|
|
37
|
+
_globals['_PREFERENCESFILE']._serialized_end=214
|
|
38
|
+
_globals['_PREFERENCESFILE_VERSION']._serialized_start=155
|
|
39
|
+
_globals['_PREFERENCESFILE_VERSION']._serialized_end=214
|
|
40
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: touchy.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'touchy.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0ctouchy.proto\x12\x06touchy\"\x0e\n\x0c\x46ileResetCmd\")\n\x0b\x46ileSaveCmd\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x1d\n\rScreenLoadCmd\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x0f\n\rScreenWakeCmd\"+\n\x15ScreenSleepTimeoutCmd\x12\x12\n\ntimeout_ms\x18\x01 \x01(\r\"\x11\n\x0f\x45ventConsumeCmd\"\x18\n\x16SysRebootBootloaderCmd\"\x14\n\x12SysBoardInfoGetCmd\"\xae\x03\n\x07\x43ommand\x12*\n\nfile_reset\x18\x01 \x01(\x0b\x32\x14.touchy.FileResetCmdH\x00\x12(\n\tfile_save\x18\x02 \x01(\x0b\x32\x13.touchy.FileSaveCmdH\x00\x12,\n\x0bscreen_load\x18\x03 \x01(\x0b\x32\x15.touchy.ScreenLoadCmdH\x00\x12,\n\x0bscreen_wake\x18\x04 \x01(\x0b\x32\x15.touchy.ScreenWakeCmdH\x00\x12=\n\x14screen_sleep_timeout\x18\x05 \x01(\x0b\x32\x1d.touchy.ScreenSleepTimeoutCmdH\x00\x12\x30\n\revent_consume\x18\x06 \x01(\x0b\x32\x17.touchy.EventConsumeCmdH\x00\x12?\n\x15sys_reboot_bootloader\x18\t \x01(\x0b\x32\x1e.touchy.SysRebootBootloaderCmdH\x00\x12\x38\n\x12sys_board_info_get\x18\n \x01(\x0b\x32\x1a.touchy.SysBoardInfoGetCmdH\x00\x42\x05\n\x03\x63md\"\xef\x01\n\x14SysBoardInfoResponse\x12\x46\n\x10protocol_version\x18\x01 \x01(\x0e\x32,.touchy.SysBoardInfoResponse.ProtocolVersion\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\r\x12\x1c\n\x14\x66irmware_version_str\x18\x03 \x01(\t\x12\x12\n\nboard_name\x18\x04 \x01(\t\"C\n\x0fProtocolVersion\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x06\n\x02V1\x10\x01\x12\x06\n\x02V2\x10\x02\x12\x0b\n\x07\x43URRENT\x10\x02\x1a\x02\x10\x01\"6\n\x14\x45ventConsumeResponse\x12\x1e\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0f.touchy.LvEvent\"\xa6\x01\n\x08Response\x12 \n\x04\x63ode\x18\x01 \x01(\x0e\x32\x12.touchy.ResultCode\x12\x36\n\x0esys_board_info\x18\x02 \x01(\x0b\x32\x1c.touchy.SysBoardInfoResponseH\x00\x12\x35\n\revent_consume\x18\x03 \x01(\x0b\x32\x1c.touchy.EventConsumeResponseH\x00\x42\t\n\x07payload\"j\n\x07LvEvent\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x11\n\tuser_data\x18\x02 \x01(\t\x12\x0f\n\x05value\x18\x03 \x01(\x05H\x00\x12\x11\n\x07\x63hecked\x18\x05 \x01(\x08H\x00\x12\x11\n\thost_code\x18\x04 \x01(\rB\x07\n\x05state\"%\n\x05\x45vent\x12\x15\n\x0b\x65vent_ready\x18\x01 \x01(\x08H\x00\x42\x05\n\x03\x65vt\"\x11\n\x0fStreamEventsCmd*\xa7\x01\n\nResultCode\x12\r\n\tRESULT_OK\x10\x00\x12\x18\n\x14RESULT_UNKNOWN_ERROR\x10\x01\x12\x16\n\x12RESULT_INVALID_ARG\x10\x02\x12\x14\n\x10RESULT_NOT_FOUND\x10\x03\x12\x13\n\x0fRESULT_NO_SPACE\x10\x04\x12\x13\n\x0fRESULT_IO_ERROR\x10\x05\x12\x18\n\x14RESULT_NOT_SUPPORTED\x10\x06\x32\xa4\x04\n\x06Touchy\x12\x33\n\tFileReset\x12\x14.touchy.FileResetCmd\x1a\x10.touchy.Response\x12\x31\n\x08\x46ileSave\x12\x13.touchy.FileSaveCmd\x1a\x10.touchy.Response\x12\x35\n\nScreenLoad\x12\x15.touchy.ScreenLoadCmd\x1a\x10.touchy.Response\x12\x35\n\nScreenWake\x12\x15.touchy.ScreenWakeCmd\x1a\x10.touchy.Response\x12\x45\n\x12ScreenSleepTimeout\x12\x1d.touchy.ScreenSleepTimeoutCmd\x1a\x10.touchy.Response\x12G\n\x13SysRebootBootloader\x12\x1e.touchy.SysRebootBootloaderCmd\x1a\x10.touchy.Response\x12?\n\x0fSysBoardInfoGet\x12\x1a.touchy.SysBoardInfoGetCmd\x1a\x10.touchy.Response\x12\x39\n\x0c\x45ventConsume\x12\x17.touchy.EventConsumeCmd\x1a\x10.touchy.Response\x12\x38\n\x0cStreamEvents\x12\x17.touchy.StreamEventsCmd\x1a\r.touchy.Event0\x01\x62\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'touchy_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_SYSBOARDINFORESPONSE_PROTOCOLVERSION']._loaded_options = None
|
|
35
|
+
_globals['_SYSBOARDINFORESPONSE_PROTOCOLVERSION']._serialized_options = b'\020\001'
|
|
36
|
+
_globals['_RESULTCODE']._serialized_start=1310
|
|
37
|
+
_globals['_RESULTCODE']._serialized_end=1477
|
|
38
|
+
_globals['_FILERESETCMD']._serialized_start=24
|
|
39
|
+
_globals['_FILERESETCMD']._serialized_end=38
|
|
40
|
+
_globals['_FILESAVECMD']._serialized_start=40
|
|
41
|
+
_globals['_FILESAVECMD']._serialized_end=81
|
|
42
|
+
_globals['_SCREENLOADCMD']._serialized_start=83
|
|
43
|
+
_globals['_SCREENLOADCMD']._serialized_end=112
|
|
44
|
+
_globals['_SCREENWAKECMD']._serialized_start=114
|
|
45
|
+
_globals['_SCREENWAKECMD']._serialized_end=129
|
|
46
|
+
_globals['_SCREENSLEEPTIMEOUTCMD']._serialized_start=131
|
|
47
|
+
_globals['_SCREENSLEEPTIMEOUTCMD']._serialized_end=174
|
|
48
|
+
_globals['_EVENTCONSUMECMD']._serialized_start=176
|
|
49
|
+
_globals['_EVENTCONSUMECMD']._serialized_end=193
|
|
50
|
+
_globals['_SYSREBOOTBOOTLOADERCMD']._serialized_start=195
|
|
51
|
+
_globals['_SYSREBOOTBOOTLOADERCMD']._serialized_end=219
|
|
52
|
+
_globals['_SYSBOARDINFOGETCMD']._serialized_start=221
|
|
53
|
+
_globals['_SYSBOARDINFOGETCMD']._serialized_end=241
|
|
54
|
+
_globals['_COMMAND']._serialized_start=244
|
|
55
|
+
_globals['_COMMAND']._serialized_end=674
|
|
56
|
+
_globals['_SYSBOARDINFORESPONSE']._serialized_start=677
|
|
57
|
+
_globals['_SYSBOARDINFORESPONSE']._serialized_end=916
|
|
58
|
+
_globals['_SYSBOARDINFORESPONSE_PROTOCOLVERSION']._serialized_start=849
|
|
59
|
+
_globals['_SYSBOARDINFORESPONSE_PROTOCOLVERSION']._serialized_end=916
|
|
60
|
+
_globals['_EVENTCONSUMERESPONSE']._serialized_start=918
|
|
61
|
+
_globals['_EVENTCONSUMERESPONSE']._serialized_end=972
|
|
62
|
+
_globals['_RESPONSE']._serialized_start=975
|
|
63
|
+
_globals['_RESPONSE']._serialized_end=1141
|
|
64
|
+
_globals['_LVEVENT']._serialized_start=1143
|
|
65
|
+
_globals['_LVEVENT']._serialized_end=1249
|
|
66
|
+
_globals['_EVENT']._serialized_start=1251
|
|
67
|
+
_globals['_EVENT']._serialized_end=1288
|
|
68
|
+
_globals['_STREAMEVENTSCMD']._serialized_start=1290
|
|
69
|
+
_globals['_STREAMEVENTSCMD']._serialized_end=1307
|
|
70
|
+
_globals['_TOUCHY']._serialized_start=1480
|
|
71
|
+
_globals['_TOUCHY']._serialized_end=2028
|
|
72
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: widgets.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'widgets.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rwidgets.proto\x12\x06touchy\"2\n\x04Rect\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\x12\t\n\x01w\x18\x03 \x01(\x05\x12\t\n\x01h\x18\x04 \x01(\x05\"u\n\nTransition\x12 \n\x05props\x18\x01 \x03(\x0e\x32\x11.touchy.StyleProp\x12\x1e\n\x04path\x18\x02 \x01(\x0e\x32\x10.touchy.AnimPath\x12\x13\n\x0b\x64uration_ms\x18\x03 \x01(\r\x12\x10\n\x08\x64\x65lay_ms\x18\x04 \x01(\r\"\xfe\x02\n\x05Style\x12\x15\n\x08\x62g_color\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06radius\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\x08\x62order_w\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x10\n\x03pad\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x17\n\ntext_color\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x11\n\tfor_state\x18\x06 \x01(\r\x12\x14\n\x07recolor\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0brecolor_opa\x18\x08 \x01(\rH\x06\x88\x01\x01\x12\x1c\n\x0ftransform_width\x18\t \x01(\x05H\x07\x88\x01\x01\x12+\n\ntransition\x18\n \x01(\x0b\x32\x12.touchy.TransitionH\x08\x88\x01\x01\x42\x0b\n\t_bg_colorB\t\n\x07_radiusB\x0b\n\t_border_wB\x06\n\x04_padB\r\n\x0b_text_colorB\n\n\x08_recolorB\x0e\n\x0c_recolor_opaB\x12\n\x10_transform_widthB\r\n\x0b_transition\".\n\x08KeyEvent\x12\x0f\n\x07keycode\x18\x01 \x01(\r\x12\x11\n\tmodifiers\x18\x02 \x01(\r\"2\n\tMouseMove\x12\n\n\x02\x64x\x18\x01 \x01(\x05\x12\n\n\x02\x64y\x18\x02 \x01(\x05\x12\r\n\x05wheel\x18\x03 \x01(\x05\"\xa6\x02\n\tMacroStep\x12$\n\x08key_down\x18\x01 \x01(\x0b\x32\x10.touchy.KeyEventH\x00\x12\"\n\x06key_up\x18\x02 \x01(\x0b\x32\x10.touchy.KeyEventH\x00\x12#\n\x07key_tap\x18\x03 \x01(\x0b\x32\x10.touchy.KeyEventH\x00\x12\x1b\n\x11mouse_button_down\x18\x04 \x01(\rH\x00\x12\x19\n\x0fmouse_button_up\x18\x05 \x01(\rH\x00\x12\x15\n\x0bmouse_click\x18\x06 \x01(\rH\x00\x12\'\n\nmouse_move\x18\x07 \x01(\x0b\x32\x11.touchy.MouseMoveH\x00\x12\x16\n\x0cset_delay_ms\x18\x08 \x01(\rH\x00\x12\x12\n\x08\x64\x65lay_ms\x18\t \x01(\rH\x00\x42\x06\n\x04step\"/\n\x0b\x41\x63tionMacro\x12 \n\x05steps\x18\x01 \x03(\x0b\x32\x11.touchy.MacroStep\"\x1a\n\nActionHost\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\"K\n\x0c\x41\x63tionDevice\x12\x33\n\rswitch_screen\x18\x01 \x01(\x0b\x32\x1a.touchy.ActionSwitchScreenH\x00\x42\x06\n\x04kind\"\x8a\x01\n\x12\x41\x63tionSwitchScreen\x12\x35\n\x08\x62\x65havior\x18\x01 \x01(\x0e\x32#.touchy.ActionSwitchScreen.Behavior\x12\x0c\n\x04name\x18\x02 \x01(\t\"/\n\x08\x42\x65havior\x12\x0b\n\x07\x42Y_NAME\x10\x00\x12\x08\n\x04NEXT\x10\x01\x12\x0c\n\x08PREVIOUS\x10\x02\"\x82\x01\n\x06\x41\x63tion\x12\"\n\x04host\x18\x01 \x01(\x0b\x32\x12.touchy.ActionHostH\x00\x12$\n\x05macro\x18\x02 \x01(\x0b\x32\x13.touchy.ActionMacroH\x00\x12&\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x14.touchy.ActionDeviceH\x00\x42\x06\n\x04kind\"0\n\x0eLayoutAbsolute\x12\x1e\n\x06layout\x18\x01 \x01(\x0b\x32\x0e.touchy.Layout\"\xf1\x01\n\nLayoutFlex\x12%\n\x04\x66low\x18\x01 \x01(\x0e\x32\x17.touchy.LayoutFlex.Flow\x12\x0b\n\x03gap\x18\x02 \x01(\r\x12\x1e\n\x06layout\x18\x03 \x01(\x0b\x32\x0e.touchy.Layout\"\x8e\x01\n\x04\x46low\x12\x07\n\x03ROW\x10\x00\x12\n\n\x06\x43OLUMN\x10\x01\x12\x0c\n\x08ROW_WRAP\x10\x02\x12\x0f\n\x0bROW_REVERSE\x10\x03\x12\x14\n\x10ROW_WRAP_REVERSE\x10\x04\x12\x0f\n\x0b\x43OLUMN_WRAP\x10\x05\x12\x12\n\x0e\x43OLUMN_REVERSE\x10\x06\x12\x17\n\x13\x43OLUMN_WRAP_REVERSE\x10\x07\"U\n\nLayoutGrid\x12\x0c\n\x04\x63ols\x18\x01 \x01(\r\x12\x0c\n\x04rows\x18\x02 \x01(\r\x12\x0b\n\x03gap\x18\x03 \x01(\r\x12\x1e\n\x06layout\x18\x04 \x01(\x0b\x32\x0e.touchy.Layout\"*\n\x06Layout\x12 \n\x08\x63hildren\x18\x01 \x03(\x0b\x32\x0e.touchy.Widget\"l\n\x08GridCell\x12\x0b\n\x03\x63ol\x18\x01 \x01(\r\x12\x0b\n\x03row\x18\x02 \x01(\r\x12\x15\n\x08\x63ol_span\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x15\n\x08row_span\x18\x04 \x01(\rH\x01\x88\x01\x01\x42\x0b\n\t_col_spanB\x0b\n\t_row_span\"~\n\x06\x42utton\x12\x0c\n\x04text\x18\x01 \x01(\t\x12 \n\x08on_click\x18\x02 \x03(\x0b\x32\x0e.touchy.Action\x12 \n\x08on_press\x18\x03 \x03(\x0b\x32\x0e.touchy.Action\x12\"\n\non_release\x18\x04 \x03(\x0b\x32\x0e.touchy.Action\"O\n\x05Label\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x11\n\tfont_size\x18\x02 \x01(\x05\x12%\n\ntext_align\x18\x03 \x01(\x0e\x32\x11.touchy.TextAlign\"T\n\x06Slider\x12\x0b\n\x03min\x18\x01 \x01(\x05\x12\x0b\n\x03max\x18\x02 \x01(\x05\x12\r\n\x05value\x18\x03 \x01(\x05\x12!\n\ton_change\x18\x04 \x03(\x0b\x32\x0e.touchy.Action\"7\n\x06Switch\x12\n\n\x02on\x18\x01 \x01(\x08\x12!\n\ton_change\x18\x02 \x03(\x0b\x32\x0e.touchy.Action\"L\n\x08\x43heckbox\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x0f\n\x07\x63hecked\x18\x02 \x01(\x08\x12!\n\ton_change\x18\x03 \x03(\x0b\x32\x0e.touchy.Action\"X\n\x05Image\x12\r\n\x05\x61sset\x18\x01 \x01(\t\x12\x12\n\x05scale\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x15\n\x08rotation\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\x08\n\x06_scaleB\x0b\n\t_rotation\"\xc7\x01\n\x0bImageButton\x12\x1f\n\x08released\x18\x01 \x01(\x0b\x32\r.touchy.Image\x12#\n\x07pressed\x18\x02 \x01(\x0b\x32\r.touchy.ImageH\x00\x88\x01\x01\x12 \n\x08on_click\x18\x03 \x03(\x0b\x32\x0e.touchy.Action\x12 \n\x08on_press\x18\x04 \x03(\x0b\x32\x0e.touchy.Action\x12\"\n\non_release\x18\x05 \x03(\x0b\x32\x0e.touchy.ActionB\n\n\x08_pressed\".\n\x03\x41rc\x12\x0b\n\x03min\x18\x01 \x01(\x05\x12\x0b\n\x03max\x18\x02 \x01(\x05\x12\r\n\x05value\x18\x03 \x01(\x05\"\x08\n\x06Spacer\"\xbe\x03\n\x08Trackpad\x12\x17\n\x0fscroll_invert_y\x18\x01 \x01(\x08\x12\x17\n\x0fscroll_invert_x\x18\x02 \x01(\x08\x12\x1d\n\x10left_touch_color\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11right_touch_color\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12middle_touch_color\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x32\n\x0ctouch_ripple\x18\x06 \x01(\x0b\x32\x17.touchy.RippleAnimationH\x03\x88\x01\x01\x12\x30\n\ntap_ripple\x18\x07 \x01(\x0b\x32\x17.touchy.RippleAnimationH\x04\x88\x01\x01\x12\x1c\n\x0fscrollbar_color\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x17\n\ntap_max_ms\x18\t \x01(\rH\x06\x88\x01\x01\x42\x13\n\x11_left_touch_colorB\x14\n\x12_right_touch_colorB\x15\n\x13_middle_touch_colorB\x0f\n\r_touch_rippleB\r\n\x0b_tap_rippleB\x12\n\x10_scrollbar_colorB\r\n\x0b_tap_max_ms\"\xd5\x01\n\x0fRippleAnimation\x12\x16\n\tstart_opa\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nmax_radius\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x64uration_ms\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1e\n\x04path\x18\x04 \x01(\x0e\x32\x10.touchy.AnimPath\x12\x19\n\x0c\x62order_width\x18\x05 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_start_opaB\r\n\x0b_max_radiusB\x0e\n\x0c_duration_msB\x0f\n\r_border_width\"\t\n\x07LogLine\"\x05\n\x03\x46ps\"\r\n\x0b\x46orceRender\"\xe9\x05\n\x06Widget\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1d\n\x06styles\x18\x03 \x03(\x0b\x32\r.touchy.Style\x12\x10\n\x08\x63\x65ntered\x18\x05 \x01(\x08\x12\x1c\n\x04rect\x18\x02 \x01(\x0b\x32\x0c.touchy.RectH\x00\x12 \n\x04\x63\x65ll\x18\x04 \x01(\x0b\x32\x10.touchy.GridCellH\x00\x12 \n\x06\x62utton\x18\n \x01(\x0b\x32\x0e.touchy.ButtonH\x01\x12\x1e\n\x05label\x18\x0b \x01(\x0b\x32\r.touchy.LabelH\x01\x12 \n\x06slider\x18\x0c \x01(\x0b\x32\x0e.touchy.SliderH\x01\x12 \n\x06toggle\x18\r \x01(\x0b\x32\x0e.touchy.SwitchH\x01\x12\x1e\n\x05image\x18\x0e \x01(\x0b\x32\r.touchy.ImageH\x01\x12\x1a\n\x03\x61rc\x18\x0f \x01(\x0b\x32\x0b.touchy.ArcH\x01\x12 \n\x06spacer\x18\x10 \x01(\x0b\x32\x0e.touchy.SpacerH\x01\x12$\n\x08\x63heckbox\x18\x11 \x01(\x0b\x32\x10.touchy.CheckboxH\x01\x12$\n\x08trackpad\x18\x12 \x01(\x0b\x32\x10.touchy.TrackpadH\x01\x12\x1e\n\x03log\x18\x13 \x01(\x0b\x32\x0f.touchy.LogLineH\x01\x12+\n\x0cimage_button\x18\x14 \x01(\x0b\x32\x13.touchy.ImageButtonH\x01\x12\x1a\n\x03\x66ps\x18\x15 \x01(\x0b\x32\x0b.touchy.FpsH\x01\x12+\n\x0c\x66orce_render\x18\x16 \x01(\x0b\x32\x13.touchy.ForceRenderH\x01\x12\x31\n\x0flayout_absolute\x18\x1e \x01(\x0b\x32\x16.touchy.LayoutAbsoluteH\x01\x12)\n\x0blayout_flex\x18\x1f \x01(\x0b\x32\x12.touchy.LayoutFlexH\x01\x12)\n\x0blayout_grid\x18 \x01(\x0b\x32\x12.touchy.LayoutGridH\x01\x42\x0b\n\tplacementB\x06\n\x04kind\"\x90\x02\n\x06Screen\x12\'\n\x07version\x18\x06 \x01(\x0e\x32\x16.touchy.Screen.Version\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1e\n\x06\x61\x63tive\x18\x07 \x01(\x0b\x32\x0e.touchy.Widget\x12 \n\x03top\x18\x08 \x01(\x0b\x32\x0e.touchy.WidgetH\x00\x88\x01\x01\x12 \n\x03sys\x18\t \x01(\x0b\x32\x0e.touchy.WidgetH\x01\x88\x01\x01\x12#\n\x06\x62ottom\x18\n \x01(\x0b\x32\x0e.touchy.WidgetH\x02\x88\x01\x01\"+\n\x07Version\x12\x13\n\x0fVERSION_UNKNOWN\x10\x00\x12\x0b\n\x07\x43URRENT\x10\x0c\x42\x06\n\x04_topB\x06\n\x04_sysB\t\n\x07_bottom*\x85\x03\n\x07LvState\x12\x14\n\x10LV_STATE_DEFAULT\x10\x00\x12\x14\n\x10LV_STATE_CHECKED\x10\x01\x12\x14\n\x10LV_STATE_FOCUSED\x10\x02\x12\x16\n\x12LV_STATE_FOCUS_KEY\x10\x04\x12\x13\n\x0fLV_STATE_EDITED\x10\x08\x12\x14\n\x10LV_STATE_HOVERED\x10\x10\x12\x14\n\x10LV_STATE_PRESSED\x10 \x12\x15\n\x11LV_STATE_SCROLLED\x10@\x12\x16\n\x11LV_STATE_DISABLED\x10\x80\x01\x12\x10\n\x0cLV_PART_MAIN\x10\x00\x12\x17\n\x11LV_PART_SCROLLBAR\x10\x80\x80\x04\x12\x17\n\x11LV_PART_INDICATOR\x10\x80\x80\x08\x12\x12\n\x0cLV_PART_KNOB\x10\x80\x80\x0c\x12\x16\n\x10LV_PART_SELECTED\x10\x80\x80\x10\x12\x13\n\rLV_PART_ITEMS\x10\x80\x80\x14\x12\x14\n\x0eLV_PART_CURSOR\x10\x80\x80\x18\x12\x11\n\x0bLV_PART_ANY\x10\x80\x80<\x1a\x02\x10\x01*\xa4\x03\n\tStyleProp\x12\x14\n\x10STYLE_PROP_UNSET\x10\x00\x12\x17\n\x13STYLE_PROP_BG_COLOR\x10\x01\x12\x15\n\x11STYLE_PROP_BG_OPA\x10\x02\x12\x15\n\x11STYLE_PROP_RADIUS\x10\x03\x12\x1b\n\x17STYLE_PROP_BORDER_WIDTH\x10\x04\x12\x1b\n\x17STYLE_PROP_BORDER_COLOR\x10\x05\x12\x16\n\x12STYLE_PROP_PAD_TOP\x10\x06\x12\x19\n\x15STYLE_PROP_TEXT_COLOR\x10\x07\x12\x1c\n\x18STYLE_PROP_IMAGE_RECOLOR\x10\x08\x12 \n\x1cSTYLE_PROP_IMAGE_RECOLOR_OPA\x10\t\x12\x1e\n\x1aSTYLE_PROP_TRANSFORM_WIDTH\x10\n\x12\x1f\n\x1bSTYLE_PROP_TRANSFORM_HEIGHT\x10\x0b\x12\x19\n\x15STYLE_PROP_PAD_BOTTOM\x10\x0c\x12\x17\n\x13STYLE_PROP_PAD_LEFT\x10\r\x12\x18\n\x14STYLE_PROP_PAD_RIGHT\x10\x0e*\xad\x01\n\x08\x41nimPath\x12\x14\n\x10\x41NIM_PATH_LINEAR\x10\x00\x12\x15\n\x11\x41NIM_PATH_EASE_IN\x10\x01\x12\x16\n\x12\x41NIM_PATH_EASE_OUT\x10\x02\x12\x19\n\x15\x41NIM_PATH_EASE_IN_OUT\x10\x03\x12\x17\n\x13\x41NIM_PATH_OVERSHOOT\x10\x04\x12\x14\n\x10\x41NIM_PATH_BOUNCE\x10\x05\x12\x12\n\x0e\x41NIM_PATH_STEP\x10\x06*b\n\tTextAlign\x12\x13\n\x0fTEXT_ALIGN_AUTO\x10\x00\x12\x13\n\x0fTEXT_ALIGN_LEFT\x10\x01\x12\x15\n\x11TEXT_ALIGN_CENTER\x10\x02\x12\x14\n\x10TEXT_ALIGN_RIGHT\x10\x03\x62\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'widgets_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_LVSTATE']._loaded_options = None
|
|
35
|
+
_globals['_LVSTATE']._serialized_options = b'\020\001'
|
|
36
|
+
_globals['_LVSTATE']._serialized_start=4443
|
|
37
|
+
_globals['_LVSTATE']._serialized_end=4832
|
|
38
|
+
_globals['_STYLEPROP']._serialized_start=4835
|
|
39
|
+
_globals['_STYLEPROP']._serialized_end=5255
|
|
40
|
+
_globals['_ANIMPATH']._serialized_start=5258
|
|
41
|
+
_globals['_ANIMPATH']._serialized_end=5431
|
|
42
|
+
_globals['_TEXTALIGN']._serialized_start=5433
|
|
43
|
+
_globals['_TEXTALIGN']._serialized_end=5531
|
|
44
|
+
_globals['_RECT']._serialized_start=25
|
|
45
|
+
_globals['_RECT']._serialized_end=75
|
|
46
|
+
_globals['_TRANSITION']._serialized_start=77
|
|
47
|
+
_globals['_TRANSITION']._serialized_end=194
|
|
48
|
+
_globals['_STYLE']._serialized_start=197
|
|
49
|
+
_globals['_STYLE']._serialized_end=579
|
|
50
|
+
_globals['_KEYEVENT']._serialized_start=581
|
|
51
|
+
_globals['_KEYEVENT']._serialized_end=627
|
|
52
|
+
_globals['_MOUSEMOVE']._serialized_start=629
|
|
53
|
+
_globals['_MOUSEMOVE']._serialized_end=679
|
|
54
|
+
_globals['_MACROSTEP']._serialized_start=682
|
|
55
|
+
_globals['_MACROSTEP']._serialized_end=976
|
|
56
|
+
_globals['_ACTIONMACRO']._serialized_start=978
|
|
57
|
+
_globals['_ACTIONMACRO']._serialized_end=1025
|
|
58
|
+
_globals['_ACTIONHOST']._serialized_start=1027
|
|
59
|
+
_globals['_ACTIONHOST']._serialized_end=1053
|
|
60
|
+
_globals['_ACTIONDEVICE']._serialized_start=1055
|
|
61
|
+
_globals['_ACTIONDEVICE']._serialized_end=1130
|
|
62
|
+
_globals['_ACTIONSWITCHSCREEN']._serialized_start=1133
|
|
63
|
+
_globals['_ACTIONSWITCHSCREEN']._serialized_end=1271
|
|
64
|
+
_globals['_ACTIONSWITCHSCREEN_BEHAVIOR']._serialized_start=1224
|
|
65
|
+
_globals['_ACTIONSWITCHSCREEN_BEHAVIOR']._serialized_end=1271
|
|
66
|
+
_globals['_ACTION']._serialized_start=1274
|
|
67
|
+
_globals['_ACTION']._serialized_end=1404
|
|
68
|
+
_globals['_LAYOUTABSOLUTE']._serialized_start=1406
|
|
69
|
+
_globals['_LAYOUTABSOLUTE']._serialized_end=1454
|
|
70
|
+
_globals['_LAYOUTFLEX']._serialized_start=1457
|
|
71
|
+
_globals['_LAYOUTFLEX']._serialized_end=1698
|
|
72
|
+
_globals['_LAYOUTFLEX_FLOW']._serialized_start=1556
|
|
73
|
+
_globals['_LAYOUTFLEX_FLOW']._serialized_end=1698
|
|
74
|
+
_globals['_LAYOUTGRID']._serialized_start=1700
|
|
75
|
+
_globals['_LAYOUTGRID']._serialized_end=1785
|
|
76
|
+
_globals['_LAYOUT']._serialized_start=1787
|
|
77
|
+
_globals['_LAYOUT']._serialized_end=1829
|
|
78
|
+
_globals['_GRIDCELL']._serialized_start=1831
|
|
79
|
+
_globals['_GRIDCELL']._serialized_end=1939
|
|
80
|
+
_globals['_BUTTON']._serialized_start=1941
|
|
81
|
+
_globals['_BUTTON']._serialized_end=2067
|
|
82
|
+
_globals['_LABEL']._serialized_start=2069
|
|
83
|
+
_globals['_LABEL']._serialized_end=2148
|
|
84
|
+
_globals['_SLIDER']._serialized_start=2150
|
|
85
|
+
_globals['_SLIDER']._serialized_end=2234
|
|
86
|
+
_globals['_SWITCH']._serialized_start=2236
|
|
87
|
+
_globals['_SWITCH']._serialized_end=2291
|
|
88
|
+
_globals['_CHECKBOX']._serialized_start=2293
|
|
89
|
+
_globals['_CHECKBOX']._serialized_end=2369
|
|
90
|
+
_globals['_IMAGE']._serialized_start=2371
|
|
91
|
+
_globals['_IMAGE']._serialized_end=2459
|
|
92
|
+
_globals['_IMAGEBUTTON']._serialized_start=2462
|
|
93
|
+
_globals['_IMAGEBUTTON']._serialized_end=2661
|
|
94
|
+
_globals['_ARC']._serialized_start=2663
|
|
95
|
+
_globals['_ARC']._serialized_end=2709
|
|
96
|
+
_globals['_SPACER']._serialized_start=2711
|
|
97
|
+
_globals['_SPACER']._serialized_end=2719
|
|
98
|
+
_globals['_TRACKPAD']._serialized_start=2722
|
|
99
|
+
_globals['_TRACKPAD']._serialized_end=3168
|
|
100
|
+
_globals['_RIPPLEANIMATION']._serialized_start=3171
|
|
101
|
+
_globals['_RIPPLEANIMATION']._serialized_end=3384
|
|
102
|
+
_globals['_LOGLINE']._serialized_start=3386
|
|
103
|
+
_globals['_LOGLINE']._serialized_end=3395
|
|
104
|
+
_globals['_FPS']._serialized_start=3397
|
|
105
|
+
_globals['_FPS']._serialized_end=3402
|
|
106
|
+
_globals['_FORCERENDER']._serialized_start=3404
|
|
107
|
+
_globals['_FORCERENDER']._serialized_end=3417
|
|
108
|
+
_globals['_WIDGET']._serialized_start=3420
|
|
109
|
+
_globals['_WIDGET']._serialized_end=4165
|
|
110
|
+
_globals['_SCREEN']._serialized_start=4168
|
|
111
|
+
_globals['_SCREEN']._serialized_end=4440
|
|
112
|
+
_globals['_SCREEN_VERSION']._serialized_start=4370
|
|
113
|
+
_globals['_SCREEN_VERSION']._serialized_end=4413
|
|
114
|
+
# @@protoc_insertion_point(module_scope)
|