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.
Files changed (35) hide show
  1. touchy_pad-0.2.1/PKG-INFO +113 -0
  2. touchy_pad-0.2.1/README.md +76 -0
  3. touchy_pad-0.2.1/pyproject.toml +130 -0
  4. touchy_pad-0.2.1/src/touchy_pad/__init__.py +21 -0
  5. touchy_pad-0.2.1/src/touchy_pad/_proto/.gitignore +2 -0
  6. touchy_pad-0.2.1/src/touchy_pad/_proto/__init__.py +74 -0
  7. touchy_pad-0.2.1/src/touchy_pad/_proto/preferences_pb2.py +40 -0
  8. touchy_pad-0.2.1/src/touchy_pad/_proto/touchy_pb2.py +72 -0
  9. touchy_pad-0.2.1/src/touchy_pad/_proto/widgets_pb2.py +114 -0
  10. touchy_pad-0.2.1/src/touchy_pad/api/__init__.py +242 -0
  11. touchy_pad-0.2.1/src/touchy_pad/api/device.py +333 -0
  12. touchy_pad-0.2.1/src/touchy_pad/api/hid_keys.py +138 -0
  13. touchy_pad-0.2.1/src/touchy_pad/api/images.py +25 -0
  14. touchy_pad-0.2.1/src/touchy_pad/api/lvgl_image.py +193 -0
  15. touchy_pad-0.2.1/src/touchy_pad/api/macros.py +116 -0
  16. touchy_pad-0.2.1/src/touchy_pad/api/protobuf.py +24 -0
  17. touchy_pad-0.2.1/src/touchy_pad/api/screens.py +1325 -0
  18. touchy_pad-0.2.1/src/touchy_pad/api/sim_registry.py +94 -0
  19. touchy_pad-0.2.1/src/touchy_pad/assets/__init__.py +8 -0
  20. touchy_pad-0.2.1/src/touchy_pad/assets/smiley.png +0 -0
  21. touchy_pad-0.2.1/src/touchy_pad/cli.py +487 -0
  22. touchy_pad-0.2.1/src/touchy_pad/client.py +168 -0
  23. touchy_pad-0.2.1/src/touchy_pad/sim/__init__.py +43 -0
  24. touchy_pad-0.2.1/src/touchy_pad/sim/device.py +267 -0
  25. touchy_pad-0.2.1/src/touchy_pad/sim/fs.py +109 -0
  26. touchy_pad-0.2.1/src/touchy_pad/sim/transport.py +148 -0
  27. touchy_pad-0.2.1/src/touchy_pad/sim/widgets.py +344 -0
  28. touchy_pad-0.2.1/src/touchy_pad/sim/window.py +295 -0
  29. touchy_pad-0.2.1/src/touchy_pad/touchydeck/__init__.py +37 -0
  30. touchy_pad-0.2.1/src/touchy_pad/touchydeck/deck.py +347 -0
  31. touchy_pad-0.2.1/src/touchy_pad/touchydeck/discovery.py +129 -0
  32. touchy_pad-0.2.1/src/touchy_pad/touchydeck/layout.py +92 -0
  33. touchy_pad-0.2.1/src/touchy_pad/transport.py +441 -0
  34. touchy_pad-0.2.1/src/touchy_pad/update.py +367 -0
  35. 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,2 @@
1
+ *_pb2.py
2
+ *_pb2.pyi
@@ -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)