toga-iOS 0.5.2__tar.gz → 0.5.3__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.
- {toga_ios-0.5.2 → toga_ios-0.5.3}/CONTRIBUTING.md +1 -1
- toga_ios-0.5.3/PKG-INFO +65 -0
- toga_ios-0.5.3/README.md +29 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/pyproject.toml +6 -6
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/app.py +1 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/factory.py +1 -1
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/libs/webkit.py +5 -1
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/activityindicator.py +7 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/dateinput.py +10 -2
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/scrollcontainer.py +14 -1
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/timeinput.py +3 -2
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/webview.py +98 -3
- toga_ios-0.5.3/src/toga_iOS.egg-info/PKG-INFO +65 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS.egg-info/SOURCES.txt +1 -1
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS.egg-info/requires.txt +1 -1
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/app.py +2 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/activityindicator.py +1 -1
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/base.py +1 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/scrollcontainer.py +14 -2
- toga_ios-0.5.2/PKG-INFO +0 -94
- toga_ios-0.5.2/README.rst +0 -58
- toga_ios-0.5.2/src/toga_iOS.egg-info/PKG-INFO +0 -94
- {toga_ios-0.5.2 → toga_ios-0.5.3}/LICENSE +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/setup.cfg +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/__init__.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/colors.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/command.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/constraints.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/container.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/dialogs.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/fonts.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/hardware/__init__.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/hardware/camera.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/hardware/location.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/icons.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/images.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/libs/__init__.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/libs/av_foundation.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/libs/core_graphics.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/libs/core_location.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/libs/core_text.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/libs/foundation.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/libs/mapkit.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/libs/uikit.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/paths.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/resources/optioncontainer-tab.png +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/resources/toga.icns +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/screens.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/statusicons.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/__init__.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/base.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/box.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/button.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/canvas.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/detailedlist.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/divider.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/imageview.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/label.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/mapview.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/multilinetextinput.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/numberinput.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/optioncontainer.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/passwordinput.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/progressbar.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/selection.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/slider.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/switch.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/widgets/textinput.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS/window.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS.egg-info/dependency_links.txt +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS.egg-info/entry_points.txt +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/src/toga_iOS.egg-info/top_level.txt +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/__init__.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/dialogs.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/fonts.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/hardware/__init__.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/hardware/camera.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/hardware/location.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/icons.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/images.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/probe.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/screens.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/__init__.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/box.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/button.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/canvas.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/dateinput.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/detailedlist.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/divider.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/imageview.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/label.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/mapview.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/multilinetextinput.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/numberinput.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/optioncontainer.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/passwordinput.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/progressbar.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/properties.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/selection.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/slider.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/switch.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/textinput.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/timeinput.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/widgets/webview.py +0 -0
- {toga_ios-0.5.2 → toga_ios-0.5.3}/tests_backend/window.py +0 -0
|
@@ -6,6 +6,6 @@ Please be aware that BeeWare operates under a [Code of
|
|
|
6
6
|
Conduct](https://beeware.org/community/behavior/code-of-conduct/).
|
|
7
7
|
|
|
8
8
|
If you'd like to contribute to Toga development, our [contribution
|
|
9
|
-
guide](https://toga.
|
|
9
|
+
guide](https://toga.beeware.org/en/latest/how-to/contribute/) details how
|
|
10
10
|
to set up a development environment, and other requirements we have as part of our
|
|
11
11
|
contribution process.
|
toga_ios-0.5.3/PKG-INFO
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: toga-iOS
|
|
3
|
+
Version: 0.5.3
|
|
4
|
+
Summary: An iOS backend for the Toga widget toolkit.
|
|
5
|
+
Author-email: Russell Keith-Magee <russell@keith-magee.com>
|
|
6
|
+
Maintainer-email: BeeWare Team <team@beeware.org>
|
|
7
|
+
License-Expression: BSD-3-Clause
|
|
8
|
+
Project-URL: Homepage, https://beeware.org/project/projects/libraries/toga/
|
|
9
|
+
Project-URL: Funding, https://beeware.org/contributing/membership/
|
|
10
|
+
Project-URL: Documentation, https://toga.beeware.org/
|
|
11
|
+
Project-URL: Tracker, https://github.com/beeware/toga/issues
|
|
12
|
+
Project-URL: Source, https://github.com/beeware/toga
|
|
13
|
+
Project-URL: Changelog, https://toga.beeware.org/en/stable/background/project/releases
|
|
14
|
+
Keywords: gui,widget,cross-platform,toga,mobile,iOS
|
|
15
|
+
Classifier: Development Status :: 4 - Beta
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
25
|
+
Classifier: Topic :: Software Development
|
|
26
|
+
Classifier: Topic :: Software Development :: User Interfaces
|
|
27
|
+
Classifier: Topic :: Software Development :: Widget Sets
|
|
28
|
+
Requires-Python: >=3.10
|
|
29
|
+
Description-Content-Type: text/markdown
|
|
30
|
+
License-File: LICENSE
|
|
31
|
+
Requires-Dist: fonttools<5.0.0,>=4.42.1
|
|
32
|
+
Requires-Dist: rubicon-objc<0.6.0,>=0.5.1
|
|
33
|
+
Requires-Dist: toga-core==0.5.3
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
Dynamic: requires-dist
|
|
36
|
+
|
|
37
|
+
# toga-iOS
|
|
38
|
+
|
|
39
|
+
[](https://pypi.python.org/pypi/toga-ios)
|
|
40
|
+
[](https://github.com/beeware/toga-ios/blob/main/LICENSE)
|
|
41
|
+
[](https://pypi.python.org/pypi/toga-ios)
|
|
42
|
+
|
|
43
|
+
An iOS backend for the [Toga widget toolkit](https://beeware.org/toga).
|
|
44
|
+
|
|
45
|
+
This package isn't much use by itself; it needs to be combined with [the core Toga library](https://pypi.python.org/pypi/toga-core).
|
|
46
|
+
|
|
47
|
+
For platform requirements, see the [iOS platform documentation](https://toga.beeware.org/en/latest/reference/platforms/iOS#prerequisites).
|
|
48
|
+
|
|
49
|
+
For more details, see [Toga's documentation](https://toga.beeware.org), or the [Toga project on GitHub](https://github.com/beeware/toga).
|
|
50
|
+
|
|
51
|
+
## Community
|
|
52
|
+
|
|
53
|
+
Toga is part of the [BeeWare suite](https://beeware.org). You can talk to the community through:
|
|
54
|
+
|
|
55
|
+
- [@beeware@fosstodon.org on Mastodon](https://fosstodon.org/@beeware)
|
|
56
|
+
- [Discord](https://beeware.org/bee/chat/)
|
|
57
|
+
- The Toga [GitHub Discussions forum](https://github.com/beeware/toga/discussions)
|
|
58
|
+
|
|
59
|
+
We foster a welcoming and respectful community as described in our [BeeWare Community Code of Conduct](https://beeware.org/community/behavior/).
|
|
60
|
+
|
|
61
|
+
## Contributing
|
|
62
|
+
|
|
63
|
+
If you experience problems with Toga, [log them on GitHub](https://github.com/beeware/toga/issues).
|
|
64
|
+
|
|
65
|
+
If you'd like to contribute to Toga development, our [contribution guide](https://toga.beeware.org/en/latest/how-to/contribute/) details how to set up a development environment, and other requirements we have as part of our contribution process.
|
toga_ios-0.5.3/README.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# toga-iOS
|
|
2
|
+
|
|
3
|
+
[](https://pypi.python.org/pypi/toga-ios)
|
|
4
|
+
[](https://github.com/beeware/toga-ios/blob/main/LICENSE)
|
|
5
|
+
[](https://pypi.python.org/pypi/toga-ios)
|
|
6
|
+
|
|
7
|
+
An iOS backend for the [Toga widget toolkit](https://beeware.org/toga).
|
|
8
|
+
|
|
9
|
+
This package isn't much use by itself; it needs to be combined with [the core Toga library](https://pypi.python.org/pypi/toga-core).
|
|
10
|
+
|
|
11
|
+
For platform requirements, see the [iOS platform documentation](https://toga.beeware.org/en/latest/reference/platforms/iOS#prerequisites).
|
|
12
|
+
|
|
13
|
+
For more details, see [Toga's documentation](https://toga.beeware.org), or the [Toga project on GitHub](https://github.com/beeware/toga).
|
|
14
|
+
|
|
15
|
+
## Community
|
|
16
|
+
|
|
17
|
+
Toga is part of the [BeeWare suite](https://beeware.org). You can talk to the community through:
|
|
18
|
+
|
|
19
|
+
- [@beeware@fosstodon.org on Mastodon](https://fosstodon.org/@beeware)
|
|
20
|
+
- [Discord](https://beeware.org/bee/chat/)
|
|
21
|
+
- The Toga [GitHub Discussions forum](https://github.com/beeware/toga/discussions)
|
|
22
|
+
|
|
23
|
+
We foster a welcoming and respectful community as described in our [BeeWare Community Code of Conduct](https://beeware.org/community/behavior/).
|
|
24
|
+
|
|
25
|
+
## Contributing
|
|
26
|
+
|
|
27
|
+
If you experience problems with Toga, [log them on GitHub](https://github.com/beeware/toga/issues).
|
|
28
|
+
|
|
29
|
+
If you'd like to contribute to Toga development, our [contribution guide](https://toga.beeware.org/en/latest/how-to/contribute/) details how to set up a development environment, and other requirements we have as part of our contribution process.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[build-system]
|
|
2
2
|
requires = [
|
|
3
3
|
"setuptools==80.9.0",
|
|
4
|
-
"setuptools_scm==
|
|
4
|
+
"setuptools_scm==9.2.2",
|
|
5
5
|
"setuptools_dynamic_dependencies==1.0.0",
|
|
6
6
|
]
|
|
7
7
|
build-backend = "setuptools.build_meta"
|
|
@@ -10,8 +10,8 @@ build-backend = "setuptools.build_meta"
|
|
|
10
10
|
dynamic = ["version", "dependencies"]
|
|
11
11
|
name = "toga-iOS"
|
|
12
12
|
description = "An iOS backend for the Toga widget toolkit."
|
|
13
|
-
readme = "README.
|
|
14
|
-
requires-python = ">= 3.
|
|
13
|
+
readme = "README.md"
|
|
14
|
+
requires-python = ">= 3.10"
|
|
15
15
|
license = "BSD-3-Clause"
|
|
16
16
|
license-files = [
|
|
17
17
|
"LICENSE"
|
|
@@ -35,11 +35,11 @@ classifiers = [
|
|
|
35
35
|
"Intended Audience :: Developers",
|
|
36
36
|
"Operating System :: OS Independent",
|
|
37
37
|
"Programming Language :: Python :: 3",
|
|
38
|
-
"Programming Language :: Python :: 3.9",
|
|
39
38
|
"Programming Language :: Python :: 3.10",
|
|
40
39
|
"Programming Language :: Python :: 3.11",
|
|
41
40
|
"Programming Language :: Python :: 3.12",
|
|
42
41
|
"Programming Language :: Python :: 3.13",
|
|
42
|
+
"Programming Language :: Python :: 3.14",
|
|
43
43
|
"Programming Language :: Python :: 3 :: Only",
|
|
44
44
|
"Topic :: Software Development",
|
|
45
45
|
"Topic :: Software Development :: User Interfaces",
|
|
@@ -49,10 +49,10 @@ classifiers = [
|
|
|
49
49
|
[project.urls]
|
|
50
50
|
Homepage = "https://beeware.org/project/projects/libraries/toga/"
|
|
51
51
|
Funding = "https://beeware.org/contributing/membership/"
|
|
52
|
-
Documentation = "https://toga.
|
|
52
|
+
Documentation = "https://toga.beeware.org/"
|
|
53
53
|
Tracker = "https://github.com/beeware/toga/issues"
|
|
54
54
|
Source = "https://github.com/beeware/toga"
|
|
55
|
-
Changelog = "https://toga.
|
|
55
|
+
Changelog = "https://toga.beeware.org/en/stable/background/project/releases"
|
|
56
56
|
|
|
57
57
|
[project.entry-points."toga.backends"]
|
|
58
58
|
iOS = "toga_iOS"
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
##########################################################################
|
|
4
4
|
from ctypes import cdll, util
|
|
5
5
|
|
|
6
|
-
from rubicon.objc import ObjCClass
|
|
6
|
+
from rubicon.objc import ObjCClass, ObjCProtocol
|
|
7
7
|
|
|
8
8
|
######################################################################
|
|
9
9
|
webkit = cdll.LoadLibrary(util.find_library("WebKit"))
|
|
@@ -12,3 +12,7 @@ webkit = cdll.LoadLibrary(util.find_library("WebKit"))
|
|
|
12
12
|
######################################################################
|
|
13
13
|
# WKWebView.h
|
|
14
14
|
WKWebView = ObjCClass("WKWebView")
|
|
15
|
+
|
|
16
|
+
######################################################################
|
|
17
|
+
# WKFrameInfo.h
|
|
18
|
+
WKUIDelegate = ObjCProtocol("WKUIDelegate")
|
|
@@ -15,15 +15,22 @@ class ActivityIndicator(Widget):
|
|
|
15
15
|
|
|
16
16
|
def set_hidden(self, hidden):
|
|
17
17
|
self.native.setHidden((not self.is_running()) or hidden)
|
|
18
|
+
self._hidden = hidden
|
|
18
19
|
|
|
19
20
|
def is_running(self):
|
|
20
21
|
return self.native.isAnimating()
|
|
21
22
|
|
|
22
23
|
def start(self):
|
|
23
24
|
self.native.startAnimating()
|
|
25
|
+
# The above due to using hidesWhenStopped actually shows the
|
|
26
|
+
# indicator even if hidden! So we work around that by explicitly
|
|
27
|
+
# correcting visibility after we start animation.
|
|
28
|
+
self.native.setHidden(self._hidden)
|
|
24
29
|
|
|
25
30
|
def stop(self):
|
|
26
31
|
self.native.stopAnimating()
|
|
32
|
+
# Even if hidden the above command hides it, so it's at most redundant
|
|
33
|
+
# No other action needed here
|
|
27
34
|
|
|
28
35
|
def rehint(self):
|
|
29
36
|
fitting_size = self.native.systemLayoutSizeFittingSize(CGSize(0, 0))
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import datetime
|
|
2
|
+
from math import ceil
|
|
2
3
|
|
|
3
4
|
from rubicon.objc import SEL, CGSize, objc_method, objc_property
|
|
4
5
|
from travertino.size import at_least
|
|
@@ -24,6 +25,13 @@ class TogaDatePicker(UIDatePicker):
|
|
|
24
25
|
@objc_method
|
|
25
26
|
def dateInputDidChange_(self, dateInput) -> None:
|
|
26
27
|
self.interface.on_change()
|
|
28
|
+
# The width of the widget is dependent on the date being displayed. If the value
|
|
29
|
+
# changes, we also need to force the iOS widget to lay itself out again to
|
|
30
|
+
# ensure minimum size hints are accurate, and then trigger a Toga refresh to
|
|
31
|
+
# apply the new hints.
|
|
32
|
+
self.setNeedsLayout()
|
|
33
|
+
self.layoutIfNeeded()
|
|
34
|
+
self.interface.refresh()
|
|
27
35
|
|
|
28
36
|
|
|
29
37
|
def py_date(native_date):
|
|
@@ -77,11 +85,11 @@ class DateInput(Widget):
|
|
|
77
85
|
|
|
78
86
|
def set_value(self, value):
|
|
79
87
|
self.native.date = native_date(value)
|
|
80
|
-
self.
|
|
88
|
+
self.native.sendActionsForControlEvents(UIControlEventValueChanged)
|
|
81
89
|
|
|
82
90
|
def rehint(self):
|
|
83
91
|
fitting_size = self.native.systemLayoutSizeFittingSize(CGSize(0, 0))
|
|
84
|
-
self.interface.intrinsic.width = at_least(
|
|
92
|
+
self.interface.intrinsic.width = at_least(ceil(fitting_size.width))
|
|
85
93
|
self.interface.intrinsic.height = fitting_size.height
|
|
86
94
|
|
|
87
95
|
def get_min_date(self):
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
from rubicon.objc import
|
|
1
|
+
from rubicon.objc import (
|
|
2
|
+
SEL,
|
|
3
|
+
CGRectMake,
|
|
4
|
+
NSMakePoint,
|
|
5
|
+
NSMakeSize,
|
|
6
|
+
objc_method,
|
|
7
|
+
objc_property,
|
|
8
|
+
)
|
|
2
9
|
from travertino.size import at_least
|
|
3
10
|
|
|
4
11
|
from toga_iOS.container import Container
|
|
@@ -68,6 +75,12 @@ class ScrollContainer(Widget):
|
|
|
68
75
|
|
|
69
76
|
self.native.contentSize = NSMakeSize(width, height)
|
|
70
77
|
|
|
78
|
+
# Update the document container frame to match the content size so that
|
|
79
|
+
# buttons outside the original scroll view frame can receive touch events.
|
|
80
|
+
# Without this, hit testing fails for views outside the original container
|
|
81
|
+
# bounds
|
|
82
|
+
self.document_container.native.frame = CGRectMake(0, 0, width, height)
|
|
83
|
+
|
|
71
84
|
def rehint(self):
|
|
72
85
|
self.interface.intrinsic.width = at_least(self.interface._MIN_WIDTH)
|
|
73
86
|
self.interface.intrinsic.height = at_least(self.interface._MIN_HEIGHT)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import datetime
|
|
2
|
+
from math import ceil
|
|
2
3
|
|
|
3
4
|
from rubicon.objc import SEL, CGSize
|
|
4
5
|
from travertino.size import at_least
|
|
@@ -67,11 +68,11 @@ class TimeInput(Widget):
|
|
|
67
68
|
|
|
68
69
|
def set_value(self, value):
|
|
69
70
|
self.native.date = native_time(value.replace(second=0, microsecond=0))
|
|
70
|
-
self.
|
|
71
|
+
self.native.sendActionsForControlEvents(UIControlEventValueChanged)
|
|
71
72
|
|
|
72
73
|
def rehint(self):
|
|
73
74
|
fitting_size = self.native.systemLayoutSizeFittingSize(CGSize(0, 0))
|
|
74
|
-
self.interface.intrinsic.width = at_least(
|
|
75
|
+
self.interface.intrinsic.width = at_least(ceil(fitting_size.width))
|
|
75
76
|
self.interface.intrinsic.height = fitting_size.height
|
|
76
77
|
|
|
77
78
|
def get_min_time(self):
|
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
from http.cookiejar import Cookie, CookieJar
|
|
2
2
|
|
|
3
|
-
from rubicon.objc import
|
|
3
|
+
from rubicon.objc import (
|
|
4
|
+
Block,
|
|
5
|
+
ObjCBlock,
|
|
6
|
+
objc_id,
|
|
7
|
+
objc_method,
|
|
8
|
+
objc_property,
|
|
9
|
+
py_from_ns,
|
|
10
|
+
)
|
|
4
11
|
from travertino.size import at_least
|
|
5
12
|
|
|
6
13
|
from toga.widgets.webview import CookiesResult, JavaScriptResult
|
|
7
|
-
from toga_iOS.libs import
|
|
14
|
+
from toga_iOS.libs import (
|
|
15
|
+
NSURL,
|
|
16
|
+
NSURLRequest,
|
|
17
|
+
UIAlertAction,
|
|
18
|
+
UIAlertActionStyle,
|
|
19
|
+
UIAlertController,
|
|
20
|
+
UIAlertControllerStyle,
|
|
21
|
+
WKUIDelegate,
|
|
22
|
+
WKWebView,
|
|
23
|
+
)
|
|
8
24
|
from toga_iOS.widgets.base import Widget
|
|
9
25
|
|
|
10
26
|
|
|
@@ -56,7 +72,7 @@ def cookies_completion_handler(result):
|
|
|
56
72
|
return _completion_handler
|
|
57
73
|
|
|
58
74
|
|
|
59
|
-
class TogaWebView(WKWebView):
|
|
75
|
+
class TogaWebView(WKWebView, protocols=[WKUIDelegate]):
|
|
60
76
|
interface = objc_property(object, weak=True)
|
|
61
77
|
impl = objc_property(object, weak=True)
|
|
62
78
|
|
|
@@ -73,6 +89,83 @@ class TogaWebView(WKWebView):
|
|
|
73
89
|
self.impl.loaded_future.set_result(None)
|
|
74
90
|
self.impl.loaded_future = None
|
|
75
91
|
|
|
92
|
+
# WKUIDelegate protocol methods required to display dialogs to the user.
|
|
93
|
+
# These are difficult to automatically test because they use
|
|
94
|
+
# completionHandler, which is a method utilized by the underlying WKWebView
|
|
95
|
+
# objective-C codebase. completionHandler cannot be created manually for
|
|
96
|
+
# testing because it is difficult to pull it up from the native codebase.
|
|
97
|
+
@objc_method
|
|
98
|
+
def webView_runJavaScriptAlertPanelWithMessage_initiatedByFrame_completionHandler_(
|
|
99
|
+
self, webView, message, frame, completionHandler
|
|
100
|
+
) -> None: # pragma: no cover
|
|
101
|
+
alert = UIAlertController.alertControllerWithTitle(
|
|
102
|
+
"Alert!",
|
|
103
|
+
message=message,
|
|
104
|
+
preferredStyle=UIAlertControllerStyle.Alert,
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
# Add OK button
|
|
108
|
+
def _ok(action: objc_id) -> None:
|
|
109
|
+
ObjCBlock(completionHandler, None)()
|
|
110
|
+
|
|
111
|
+
alert.addAction(
|
|
112
|
+
UIAlertAction.actionWithTitle(
|
|
113
|
+
"OK",
|
|
114
|
+
style=UIAlertActionStyle.Default,
|
|
115
|
+
handler=Block(_ok, None, objc_id),
|
|
116
|
+
)
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
# Display dialog
|
|
120
|
+
view_controller = self.interface.window._impl.native.rootViewController
|
|
121
|
+
view_controller.presentViewController(
|
|
122
|
+
alert,
|
|
123
|
+
animated=False,
|
|
124
|
+
completion=None,
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
@objc_method
|
|
128
|
+
def webView_runJavaScriptConfirmPanelWithMessage_initiatedByFrame_completionHandler_( # noqa: E501
|
|
129
|
+
self, webView, message, frame, completionHandler
|
|
130
|
+
) -> None: # pragma: no cover
|
|
131
|
+
alert = UIAlertController.alertControllerWithTitle(
|
|
132
|
+
"Confirm?",
|
|
133
|
+
message=message,
|
|
134
|
+
preferredStyle=UIAlertControllerStyle.Alert,
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
# Add OK button
|
|
138
|
+
def _ok(action: objc_id) -> None:
|
|
139
|
+
ObjCBlock(completionHandler, None, bool)(True)
|
|
140
|
+
|
|
141
|
+
alert.addAction(
|
|
142
|
+
UIAlertAction.actionWithTitle(
|
|
143
|
+
"OK",
|
|
144
|
+
style=UIAlertActionStyle.Default,
|
|
145
|
+
handler=Block(_ok, None, objc_id),
|
|
146
|
+
)
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
# Add cancel button
|
|
150
|
+
def _cancel(action: objc_id) -> None:
|
|
151
|
+
ObjCBlock(completionHandler, None, bool)(False)
|
|
152
|
+
|
|
153
|
+
alert.addAction(
|
|
154
|
+
UIAlertAction.actionWithTitle(
|
|
155
|
+
"Cancel",
|
|
156
|
+
style=UIAlertActionStyle.Default,
|
|
157
|
+
handler=Block(_cancel, None, objc_id),
|
|
158
|
+
)
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
# Display dialog
|
|
162
|
+
view_controller = self.interface.window._impl.native.rootViewController
|
|
163
|
+
view_controller.presentViewController(
|
|
164
|
+
alert,
|
|
165
|
+
animated=False,
|
|
166
|
+
completion=None,
|
|
167
|
+
)
|
|
168
|
+
|
|
76
169
|
|
|
77
170
|
class WebView(Widget):
|
|
78
171
|
def create(self):
|
|
@@ -84,6 +177,8 @@ class WebView(Widget):
|
|
|
84
177
|
# It is a no-op on earlier versions.
|
|
85
178
|
self.native.inspectable = True
|
|
86
179
|
self.native.navigationDelegate = self.native
|
|
180
|
+
# Set UIDelegate to self for file dialog support
|
|
181
|
+
self.native.UIDelegate = self.native
|
|
87
182
|
|
|
88
183
|
self.loaded_future = None
|
|
89
184
|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: toga-iOS
|
|
3
|
+
Version: 0.5.3
|
|
4
|
+
Summary: An iOS backend for the Toga widget toolkit.
|
|
5
|
+
Author-email: Russell Keith-Magee <russell@keith-magee.com>
|
|
6
|
+
Maintainer-email: BeeWare Team <team@beeware.org>
|
|
7
|
+
License-Expression: BSD-3-Clause
|
|
8
|
+
Project-URL: Homepage, https://beeware.org/project/projects/libraries/toga/
|
|
9
|
+
Project-URL: Funding, https://beeware.org/contributing/membership/
|
|
10
|
+
Project-URL: Documentation, https://toga.beeware.org/
|
|
11
|
+
Project-URL: Tracker, https://github.com/beeware/toga/issues
|
|
12
|
+
Project-URL: Source, https://github.com/beeware/toga
|
|
13
|
+
Project-URL: Changelog, https://toga.beeware.org/en/stable/background/project/releases
|
|
14
|
+
Keywords: gui,widget,cross-platform,toga,mobile,iOS
|
|
15
|
+
Classifier: Development Status :: 4 - Beta
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
25
|
+
Classifier: Topic :: Software Development
|
|
26
|
+
Classifier: Topic :: Software Development :: User Interfaces
|
|
27
|
+
Classifier: Topic :: Software Development :: Widget Sets
|
|
28
|
+
Requires-Python: >=3.10
|
|
29
|
+
Description-Content-Type: text/markdown
|
|
30
|
+
License-File: LICENSE
|
|
31
|
+
Requires-Dist: fonttools<5.0.0,>=4.42.1
|
|
32
|
+
Requires-Dist: rubicon-objc<0.6.0,>=0.5.1
|
|
33
|
+
Requires-Dist: toga-core==0.5.3
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
Dynamic: requires-dist
|
|
36
|
+
|
|
37
|
+
# toga-iOS
|
|
38
|
+
|
|
39
|
+
[](https://pypi.python.org/pypi/toga-ios)
|
|
40
|
+
[](https://github.com/beeware/toga-ios/blob/main/LICENSE)
|
|
41
|
+
[](https://pypi.python.org/pypi/toga-ios)
|
|
42
|
+
|
|
43
|
+
An iOS backend for the [Toga widget toolkit](https://beeware.org/toga).
|
|
44
|
+
|
|
45
|
+
This package isn't much use by itself; it needs to be combined with [the core Toga library](https://pypi.python.org/pypi/toga-core).
|
|
46
|
+
|
|
47
|
+
For platform requirements, see the [iOS platform documentation](https://toga.beeware.org/en/latest/reference/platforms/iOS#prerequisites).
|
|
48
|
+
|
|
49
|
+
For more details, see [Toga's documentation](https://toga.beeware.org), or the [Toga project on GitHub](https://github.com/beeware/toga).
|
|
50
|
+
|
|
51
|
+
## Community
|
|
52
|
+
|
|
53
|
+
Toga is part of the [BeeWare suite](https://beeware.org). You can talk to the community through:
|
|
54
|
+
|
|
55
|
+
- [@beeware@fosstodon.org on Mastodon](https://fosstodon.org/@beeware)
|
|
56
|
+
- [Discord](https://beeware.org/bee/chat/)
|
|
57
|
+
- The Toga [GitHub Discussions forum](https://github.com/beeware/toga/discussions)
|
|
58
|
+
|
|
59
|
+
We foster a welcoming and respectful community as described in our [BeeWare Community Code of Conduct](https://beeware.org/community/behavior/).
|
|
60
|
+
|
|
61
|
+
## Contributing
|
|
62
|
+
|
|
63
|
+
If you experience problems with Toga, [log them on GitHub](https://github.com/beeware/toga/issues).
|
|
64
|
+
|
|
65
|
+
If you'd like to contribute to Toga development, our [contribution guide](https://toga.beeware.org/en/latest/how-to/contribute/) details how to set up a development environment, and other requirements we have as part of our contribution process.
|
|
@@ -17,11 +17,23 @@ class ScrollContainerProbe(SimpleProbe):
|
|
|
17
17
|
|
|
18
18
|
@property
|
|
19
19
|
def document_height(self):
|
|
20
|
-
|
|
20
|
+
# Assert that the document container and the document itself have the same size.
|
|
21
|
+
# This is necessary to ensure that events propagate; see #2411.
|
|
22
|
+
assert self.impl.document_container.native.frame.size.height == (
|
|
23
|
+
content_height := self.native.contentSize.height
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
return content_height
|
|
21
27
|
|
|
22
28
|
@property
|
|
23
29
|
def document_width(self):
|
|
24
|
-
|
|
30
|
+
# Assert that the document container and the document itself have the same size.
|
|
31
|
+
# This is necessary to ensure that events propagate; see #2411.
|
|
32
|
+
assert self.impl.document_container.native.frame.size.width == (
|
|
33
|
+
content_width := self.native.contentSize.width
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
return content_width
|
|
25
37
|
|
|
26
38
|
async def scroll(self):
|
|
27
39
|
if self.document_height <= self.height:
|
toga_ios-0.5.2/PKG-INFO
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: toga-iOS
|
|
3
|
-
Version: 0.5.2
|
|
4
|
-
Summary: An iOS backend for the Toga widget toolkit.
|
|
5
|
-
Author-email: Russell Keith-Magee <russell@keith-magee.com>
|
|
6
|
-
Maintainer-email: BeeWare Team <team@beeware.org>
|
|
7
|
-
License-Expression: BSD-3-Clause
|
|
8
|
-
Project-URL: Homepage, https://beeware.org/project/projects/libraries/toga/
|
|
9
|
-
Project-URL: Funding, https://beeware.org/contributing/membership/
|
|
10
|
-
Project-URL: Documentation, https://toga.readthedocs.io/
|
|
11
|
-
Project-URL: Tracker, https://github.com/beeware/toga/issues
|
|
12
|
-
Project-URL: Source, https://github.com/beeware/toga
|
|
13
|
-
Project-URL: Changelog, https://toga.readthedocs.io/en/stable/background/project/releases.html
|
|
14
|
-
Keywords: gui,widget,cross-platform,toga,mobile,iOS
|
|
15
|
-
Classifier: Development Status :: 4 - Beta
|
|
16
|
-
Classifier: Intended Audience :: Developers
|
|
17
|
-
Classifier: Operating System :: OS Independent
|
|
18
|
-
Classifier: Programming Language :: Python :: 3
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
25
|
-
Classifier: Topic :: Software Development
|
|
26
|
-
Classifier: Topic :: Software Development :: User Interfaces
|
|
27
|
-
Classifier: Topic :: Software Development :: Widget Sets
|
|
28
|
-
Requires-Python: >=3.9
|
|
29
|
-
Description-Content-Type: text/x-rst
|
|
30
|
-
License-File: LICENSE
|
|
31
|
-
Requires-Dist: fonttools<5.0.0,>=4.42.1
|
|
32
|
-
Requires-Dist: rubicon-objc<0.6.0,>=0.5.1
|
|
33
|
-
Requires-Dist: toga-core==0.5.2
|
|
34
|
-
Dynamic: license-file
|
|
35
|
-
Dynamic: requires-dist
|
|
36
|
-
|
|
37
|
-
.. |pyversions| image:: https://img.shields.io/pypi/pyversions/toga-ios.svg
|
|
38
|
-
:target: https://pypi.python.org/pypi/toga-ios
|
|
39
|
-
:alt: Python Versions
|
|
40
|
-
|
|
41
|
-
.. |license| image:: https://img.shields.io/pypi/l/toga-ios.svg
|
|
42
|
-
:target: https://github.com/beeware/toga-ios/blob/main/LICENSE
|
|
43
|
-
:alt: BSD-3-Clause License
|
|
44
|
-
|
|
45
|
-
.. |maturity| image:: https://img.shields.io/pypi/status/toga-ios.svg
|
|
46
|
-
:target: https://pypi.python.org/pypi/toga-ios
|
|
47
|
-
:alt: Project status
|
|
48
|
-
|
|
49
|
-
toga-iOS
|
|
50
|
-
========
|
|
51
|
-
|
|
52
|
-
|pyversions| |license| |maturity|
|
|
53
|
-
|
|
54
|
-
An iOS backend for the `Toga widget toolkit`_.
|
|
55
|
-
|
|
56
|
-
This package isn't much use by itself; it needs to be combined with `the core Toga library`_.
|
|
57
|
-
|
|
58
|
-
For platform requirements, see the `iOS platform documentation
|
|
59
|
-
<https://toga.readthedocs.io/en/latest/reference/platforms/iOS.html#prerequisites>`__.
|
|
60
|
-
|
|
61
|
-
For more details, see the `Toga project on GitHub`_.
|
|
62
|
-
|
|
63
|
-
.. _Toga widget toolkit: https://beeware.org/toga
|
|
64
|
-
.. _the core Toga library: https://pypi.python.org/pypi/toga-core
|
|
65
|
-
.. _Toga project on GitHub: https://github.com/beeware/toga
|
|
66
|
-
|
|
67
|
-
Community
|
|
68
|
-
---------
|
|
69
|
-
|
|
70
|
-
Toga is part of the `BeeWare suite`_. You can talk to the community through:
|
|
71
|
-
|
|
72
|
-
* `@beeware@fosstodon.org on Mastodon`_
|
|
73
|
-
* `Discord`_
|
|
74
|
-
* The Toga `GitHub Discussions forum`_
|
|
75
|
-
|
|
76
|
-
We foster a welcoming and respectful community as described in our
|
|
77
|
-
`BeeWare Community Code of Conduct`_.
|
|
78
|
-
|
|
79
|
-
.. _BeeWare suite: https://beeware.org
|
|
80
|
-
.. _@beeware@fosstodon.org on Mastodon: https://fosstodon.org/@beeware
|
|
81
|
-
.. _Discord: https://beeware.org/bee/chat/
|
|
82
|
-
.. _GitHub Discussions forum: https://github.com/beeware/toga/discussions
|
|
83
|
-
.. _BeeWare Community Code of Conduct: https://beeware.org/community/behavior/
|
|
84
|
-
|
|
85
|
-
Contributing
|
|
86
|
-
------------
|
|
87
|
-
|
|
88
|
-
If you experience problems with Toga, `log them on GitHub
|
|
89
|
-
<https://github.com/beeware/toga/issues>`__.
|
|
90
|
-
|
|
91
|
-
If you'd like to contribute to Toga development, our `contribution guide
|
|
92
|
-
<https://toga.readthedocs.io/en/latest/how-to/contribute/index.html>`__
|
|
93
|
-
details how to set up a development environment, and other requirements we have
|
|
94
|
-
as part of our contribution process.
|
toga_ios-0.5.2/README.rst
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
.. |pyversions| image:: https://img.shields.io/pypi/pyversions/toga-ios.svg
|
|
2
|
-
:target: https://pypi.python.org/pypi/toga-ios
|
|
3
|
-
:alt: Python Versions
|
|
4
|
-
|
|
5
|
-
.. |license| image:: https://img.shields.io/pypi/l/toga-ios.svg
|
|
6
|
-
:target: https://github.com/beeware/toga-ios/blob/main/LICENSE
|
|
7
|
-
:alt: BSD-3-Clause License
|
|
8
|
-
|
|
9
|
-
.. |maturity| image:: https://img.shields.io/pypi/status/toga-ios.svg
|
|
10
|
-
:target: https://pypi.python.org/pypi/toga-ios
|
|
11
|
-
:alt: Project status
|
|
12
|
-
|
|
13
|
-
toga-iOS
|
|
14
|
-
========
|
|
15
|
-
|
|
16
|
-
|pyversions| |license| |maturity|
|
|
17
|
-
|
|
18
|
-
An iOS backend for the `Toga widget toolkit`_.
|
|
19
|
-
|
|
20
|
-
This package isn't much use by itself; it needs to be combined with `the core Toga library`_.
|
|
21
|
-
|
|
22
|
-
For platform requirements, see the `iOS platform documentation
|
|
23
|
-
<https://toga.readthedocs.io/en/latest/reference/platforms/iOS.html#prerequisites>`__.
|
|
24
|
-
|
|
25
|
-
For more details, see the `Toga project on GitHub`_.
|
|
26
|
-
|
|
27
|
-
.. _Toga widget toolkit: https://beeware.org/toga
|
|
28
|
-
.. _the core Toga library: https://pypi.python.org/pypi/toga-core
|
|
29
|
-
.. _Toga project on GitHub: https://github.com/beeware/toga
|
|
30
|
-
|
|
31
|
-
Community
|
|
32
|
-
---------
|
|
33
|
-
|
|
34
|
-
Toga is part of the `BeeWare suite`_. You can talk to the community through:
|
|
35
|
-
|
|
36
|
-
* `@beeware@fosstodon.org on Mastodon`_
|
|
37
|
-
* `Discord`_
|
|
38
|
-
* The Toga `GitHub Discussions forum`_
|
|
39
|
-
|
|
40
|
-
We foster a welcoming and respectful community as described in our
|
|
41
|
-
`BeeWare Community Code of Conduct`_.
|
|
42
|
-
|
|
43
|
-
.. _BeeWare suite: https://beeware.org
|
|
44
|
-
.. _@beeware@fosstodon.org on Mastodon: https://fosstodon.org/@beeware
|
|
45
|
-
.. _Discord: https://beeware.org/bee/chat/
|
|
46
|
-
.. _GitHub Discussions forum: https://github.com/beeware/toga/discussions
|
|
47
|
-
.. _BeeWare Community Code of Conduct: https://beeware.org/community/behavior/
|
|
48
|
-
|
|
49
|
-
Contributing
|
|
50
|
-
------------
|
|
51
|
-
|
|
52
|
-
If you experience problems with Toga, `log them on GitHub
|
|
53
|
-
<https://github.com/beeware/toga/issues>`__.
|
|
54
|
-
|
|
55
|
-
If you'd like to contribute to Toga development, our `contribution guide
|
|
56
|
-
<https://toga.readthedocs.io/en/latest/how-to/contribute/index.html>`__
|
|
57
|
-
details how to set up a development environment, and other requirements we have
|
|
58
|
-
as part of our contribution process.
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: toga-iOS
|
|
3
|
-
Version: 0.5.2
|
|
4
|
-
Summary: An iOS backend for the Toga widget toolkit.
|
|
5
|
-
Author-email: Russell Keith-Magee <russell@keith-magee.com>
|
|
6
|
-
Maintainer-email: BeeWare Team <team@beeware.org>
|
|
7
|
-
License-Expression: BSD-3-Clause
|
|
8
|
-
Project-URL: Homepage, https://beeware.org/project/projects/libraries/toga/
|
|
9
|
-
Project-URL: Funding, https://beeware.org/contributing/membership/
|
|
10
|
-
Project-URL: Documentation, https://toga.readthedocs.io/
|
|
11
|
-
Project-URL: Tracker, https://github.com/beeware/toga/issues
|
|
12
|
-
Project-URL: Source, https://github.com/beeware/toga
|
|
13
|
-
Project-URL: Changelog, https://toga.readthedocs.io/en/stable/background/project/releases.html
|
|
14
|
-
Keywords: gui,widget,cross-platform,toga,mobile,iOS
|
|
15
|
-
Classifier: Development Status :: 4 - Beta
|
|
16
|
-
Classifier: Intended Audience :: Developers
|
|
17
|
-
Classifier: Operating System :: OS Independent
|
|
18
|
-
Classifier: Programming Language :: Python :: 3
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
25
|
-
Classifier: Topic :: Software Development
|
|
26
|
-
Classifier: Topic :: Software Development :: User Interfaces
|
|
27
|
-
Classifier: Topic :: Software Development :: Widget Sets
|
|
28
|
-
Requires-Python: >=3.9
|
|
29
|
-
Description-Content-Type: text/x-rst
|
|
30
|
-
License-File: LICENSE
|
|
31
|
-
Requires-Dist: fonttools<5.0.0,>=4.42.1
|
|
32
|
-
Requires-Dist: rubicon-objc<0.6.0,>=0.5.1
|
|
33
|
-
Requires-Dist: toga-core==0.5.2
|
|
34
|
-
Dynamic: license-file
|
|
35
|
-
Dynamic: requires-dist
|
|
36
|
-
|
|
37
|
-
.. |pyversions| image:: https://img.shields.io/pypi/pyversions/toga-ios.svg
|
|
38
|
-
:target: https://pypi.python.org/pypi/toga-ios
|
|
39
|
-
:alt: Python Versions
|
|
40
|
-
|
|
41
|
-
.. |license| image:: https://img.shields.io/pypi/l/toga-ios.svg
|
|
42
|
-
:target: https://github.com/beeware/toga-ios/blob/main/LICENSE
|
|
43
|
-
:alt: BSD-3-Clause License
|
|
44
|
-
|
|
45
|
-
.. |maturity| image:: https://img.shields.io/pypi/status/toga-ios.svg
|
|
46
|
-
:target: https://pypi.python.org/pypi/toga-ios
|
|
47
|
-
:alt: Project status
|
|
48
|
-
|
|
49
|
-
toga-iOS
|
|
50
|
-
========
|
|
51
|
-
|
|
52
|
-
|pyversions| |license| |maturity|
|
|
53
|
-
|
|
54
|
-
An iOS backend for the `Toga widget toolkit`_.
|
|
55
|
-
|
|
56
|
-
This package isn't much use by itself; it needs to be combined with `the core Toga library`_.
|
|
57
|
-
|
|
58
|
-
For platform requirements, see the `iOS platform documentation
|
|
59
|
-
<https://toga.readthedocs.io/en/latest/reference/platforms/iOS.html#prerequisites>`__.
|
|
60
|
-
|
|
61
|
-
For more details, see the `Toga project on GitHub`_.
|
|
62
|
-
|
|
63
|
-
.. _Toga widget toolkit: https://beeware.org/toga
|
|
64
|
-
.. _the core Toga library: https://pypi.python.org/pypi/toga-core
|
|
65
|
-
.. _Toga project on GitHub: https://github.com/beeware/toga
|
|
66
|
-
|
|
67
|
-
Community
|
|
68
|
-
---------
|
|
69
|
-
|
|
70
|
-
Toga is part of the `BeeWare suite`_. You can talk to the community through:
|
|
71
|
-
|
|
72
|
-
* `@beeware@fosstodon.org on Mastodon`_
|
|
73
|
-
* `Discord`_
|
|
74
|
-
* The Toga `GitHub Discussions forum`_
|
|
75
|
-
|
|
76
|
-
We foster a welcoming and respectful community as described in our
|
|
77
|
-
`BeeWare Community Code of Conduct`_.
|
|
78
|
-
|
|
79
|
-
.. _BeeWare suite: https://beeware.org
|
|
80
|
-
.. _@beeware@fosstodon.org on Mastodon: https://fosstodon.org/@beeware
|
|
81
|
-
.. _Discord: https://beeware.org/bee/chat/
|
|
82
|
-
.. _GitHub Discussions forum: https://github.com/beeware/toga/discussions
|
|
83
|
-
.. _BeeWare Community Code of Conduct: https://beeware.org/community/behavior/
|
|
84
|
-
|
|
85
|
-
Contributing
|
|
86
|
-
------------
|
|
87
|
-
|
|
88
|
-
If you experience problems with Toga, `log them on GitHub
|
|
89
|
-
<https://github.com/beeware/toga/issues>`__.
|
|
90
|
-
|
|
91
|
-
If you'd like to contribute to Toga development, our `contribution guide
|
|
92
|
-
<https://toga.readthedocs.io/en/latest/how-to/contribute/index.html>`__
|
|
93
|
-
details how to set up a development environment, and other requirements we have
|
|
94
|
-
as part of our contribution process.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|