spf1020 1.0.48__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 (98) hide show
  1. spf1020-1.0.48/EULA.txt +157 -0
  2. spf1020-1.0.48/LICENSE +29 -0
  3. spf1020-1.0.48/MANIFEST.in +3 -0
  4. spf1020-1.0.48/PKG-INFO +84 -0
  5. spf1020-1.0.48/README.md +60 -0
  6. spf1020-1.0.48/pyproject.toml +33 -0
  7. spf1020-1.0.48/setup.cfg +4 -0
  8. spf1020-1.0.48/spf1020/EULA.txt +157 -0
  9. spf1020-1.0.48/spf1020/__init__.py +231 -0
  10. spf1020-1.0.48/spf1020/__main__.py +22 -0
  11. spf1020-1.0.48/spf1020/actions.py +164 -0
  12. spf1020-1.0.48/spf1020/app.py +44 -0
  13. spf1020-1.0.48/spf1020/branding.py +59 -0
  14. spf1020-1.0.48/spf1020/clipboard.py +60 -0
  15. spf1020-1.0.48/spf1020/context_menu.py +59 -0
  16. spf1020-1.0.48/spf1020/context_menu_presets.py +106 -0
  17. spf1020-1.0.48/spf1020/cursor.py +38 -0
  18. spf1020-1.0.48/spf1020/dialogs/__init__.py +32 -0
  19. spf1020-1.0.48/spf1020/dialogs/about.py +32 -0
  20. spf1020-1.0.48/spf1020/dialogs/color_font.py +141 -0
  21. spf1020-1.0.48/spf1020/dialogs/eula_viewer.py +58 -0
  22. spf1020-1.0.48/spf1020/dialogs/file.py +231 -0
  23. spf1020-1.0.48/spf1020/dialogs/input.py +121 -0
  24. spf1020-1.0.48/spf1020/dialogs/message.py +47 -0
  25. spf1020-1.0.48/spf1020/dialogs/terms.py +105 -0
  26. spf1020-1.0.48/spf1020/event.py +68 -0
  27. spf1020-1.0.48/spf1020/file_drop.py +163 -0
  28. spf1020-1.0.48/spf1020/forms.py +179 -0
  29. spf1020-1.0.48/spf1020/help_menu.py +60 -0
  30. spf1020-1.0.48/spf1020/layout/__init__.py +13 -0
  31. spf1020-1.0.48/spf1020/layout/base.py +54 -0
  32. spf1020-1.0.48/spf1020/layout/grid.py +102 -0
  33. spf1020-1.0.48/spf1020/layout/panel.py +114 -0
  34. spf1020-1.0.48/spf1020/layout/split.py +290 -0
  35. spf1020-1.0.48/spf1020/layout/stack.py +292 -0
  36. spf1020-1.0.48/spf1020/layout/traverse.py +63 -0
  37. spf1020-1.0.48/spf1020/layout/view_switcher.py +60 -0
  38. spf1020-1.0.48/spf1020/legal.py +75 -0
  39. spf1020-1.0.48/spf1020/menubar.py +49 -0
  40. spf1020-1.0.48/spf1020/modal.py +56 -0
  41. spf1020-1.0.48/spf1020/native/__init__.py +4 -0
  42. spf1020-1.0.48/spf1020/native/comctl.py +62 -0
  43. spf1020-1.0.48/spf1020/native/gdi.py +323 -0
  44. spf1020-1.0.48/spf1020/native/gdiplus.py +143 -0
  45. spf1020-1.0.48/spf1020/native/uxtheme.py +19 -0
  46. spf1020-1.0.48/spf1020/native/win32.py +1051 -0
  47. spf1020-1.0.48/spf1020/settings.py +87 -0
  48. spf1020-1.0.48/spf1020/shell.py +47 -0
  49. spf1020-1.0.48/spf1020/splash.py +94 -0
  50. spf1020-1.0.48/spf1020/taskbar.py +230 -0
  51. spf1020-1.0.48/spf1020/theme/__init__.py +33 -0
  52. spf1020-1.0.48/spf1020/theme/apply.py +52 -0
  53. spf1020-1.0.48/spf1020/theme/colors.py +141 -0
  54. spf1020-1.0.48/spf1020/theme/switcher.py +153 -0
  55. spf1020-1.0.48/spf1020/tooltip.py +161 -0
  56. spf1020-1.0.48/spf1020/tray.py +236 -0
  57. spf1020-1.0.48/spf1020/ui_bridge.py +118 -0
  58. spf1020-1.0.48/spf1020/validation.py +52 -0
  59. spf1020-1.0.48/spf1020/widgets/__init__.py +73 -0
  60. spf1020-1.0.48/spf1020/widgets/app_header.py +171 -0
  61. spf1020-1.0.48/spf1020/widgets/base.py +125 -0
  62. spf1020-1.0.48/spf1020/widgets/button.py +105 -0
  63. spf1020-1.0.48/spf1020/widgets/card.py +18 -0
  64. spf1020-1.0.48/spf1020/widgets/checkbox.py +55 -0
  65. spf1020-1.0.48/spf1020/widgets/date_picker.py +108 -0
  66. spf1020-1.0.48/spf1020/widgets/divider.py +101 -0
  67. spf1020-1.0.48/spf1020/widgets/dropdown.py +82 -0
  68. spf1020-1.0.48/spf1020/widgets/float_field.py +48 -0
  69. spf1020-1.0.48/spf1020/widgets/groupbox.py +216 -0
  70. spf1020-1.0.48/spf1020/widgets/imageview.py +199 -0
  71. spf1020-1.0.48/spf1020/widgets/input_style.py +44 -0
  72. spf1020-1.0.48/spf1020/widgets/item_list.py +126 -0
  73. spf1020-1.0.48/spf1020/widgets/label.py +139 -0
  74. spf1020-1.0.48/spf1020/widgets/listbox.py +111 -0
  75. spf1020-1.0.48/spf1020/widgets/loading.py +55 -0
  76. spf1020-1.0.48/spf1020/widgets/logview.py +97 -0
  77. spf1020-1.0.48/spf1020/widgets/preview_pane.py +70 -0
  78. spf1020-1.0.48/spf1020/widgets/progress.py +123 -0
  79. spf1020-1.0.48/spf1020/widgets/radio.py +110 -0
  80. spf1020-1.0.48/spf1020/widgets/scroll_pane.py +383 -0
  81. spf1020-1.0.48/spf1020/widgets/segment_bar.py +75 -0
  82. spf1020-1.0.48/spf1020/widgets/slider.py +59 -0
  83. spf1020-1.0.48/spf1020/widgets/spin.py +163 -0
  84. spf1020-1.0.48/spf1020/widgets/statusline.py +42 -0
  85. spf1020-1.0.48/spf1020/widgets/tableview.py +839 -0
  86. spf1020-1.0.48/spf1020/widgets/tabs.py +157 -0
  87. spf1020-1.0.48/spf1020/widgets/textarea.py +59 -0
  88. spf1020-1.0.48/spf1020/widgets/textbox.py +46 -0
  89. spf1020-1.0.48/spf1020/widgets/thumbnail_grid.py +284 -0
  90. spf1020-1.0.48/spf1020/widgets/toolbar.py +71 -0
  91. spf1020-1.0.48/spf1020/widgets/treeview.py +145 -0
  92. spf1020-1.0.48/spf1020/window.py +827 -0
  93. spf1020-1.0.48/spf1020/window_chrome.py +172 -0
  94. spf1020-1.0.48/spf1020/window_state.py +47 -0
  95. spf1020-1.0.48/spf1020.egg-info/PKG-INFO +84 -0
  96. spf1020-1.0.48/spf1020.egg-info/SOURCES.txt +96 -0
  97. spf1020-1.0.48/spf1020.egg-info/dependency_links.txt +1 -0
  98. spf1020-1.0.48/spf1020.egg-info/top_level.txt +1 -0
@@ -0,0 +1,157 @@
1
+ SPF1020 — END USER LICENSE AGREEMENT (EULA)
2
+ Version 1.1 — October 2026
3
+
4
+ Copyright (c) 2026 Giakou Silverfall. All rights reserved.
5
+
6
+ This End User License Agreement ("Agreement") applies to SPF1020 (Windows UI
7
+ framework), including source code, binaries, documentation, examples, and
8
+ associated branding (collectively, the "Software").
9
+
10
+ BY USING, COPYING, OR DISTRIBUTING THE SOFTWARE, YOU AGREE TO THIS AGREEMENT.
11
+ IF YOU DO NOT AGREE, DO NOT USE OR DISTRIBUTE THE SOFTWARE.
12
+
13
+
14
+ 1. OWNERSHIP AND RESERVED RIGHTS
15
+
16
+ The Software is owned by Giakou Silverfall and is protected by copyright,
17
+ trademark, and other laws. Giakou Silverfall is the sole author and copyright
18
+ holder of SPF1020.
19
+
20
+ No ownership, copyright, patent, trademark, or other intellectual property
21
+ right in the Software is transferred to you. All rights not expressly granted
22
+ here are reserved by Giakou Silverfall.
23
+
24
+ The names "SPF1020", "Sofia's Python Framework", and related logos or branding
25
+ identify Giakou Silverfall's product. You may not use them in a way that
26
+ suggests you own or originated the Software.
27
+
28
+
29
+ 2. FREE USE (NO CHARGE)
30
+
31
+ Giakou Silverfall grants you a royalty-free license to use the Software as
32
+ described in this Agreement. You are not required to pay a fee to use or
33
+ redistribute unmodified copies in accordance with Section 3.
34
+
35
+ "Free to use" does not mean the Software is open source, public domain, or
36
+ owned by you or the community. It remains proprietary to Giakou Silverfall.
37
+
38
+
39
+ 3. PERMITTED USE
40
+
41
+ You may:
42
+
43
+ (a) Use the Software on any number of computers for any lawful purpose,
44
+ including building, selling, or giving away your own applications.
45
+
46
+ (b) Distribute unmodified copies of the Software (including via source
47
+ repositories, package indexes such as PyPI, or bundled with your
48
+ application), provided that each copy includes this Agreement (or a
49
+ clear reference and link to it), all copyright notices remain intact,
50
+ and recipients are informed that SPF1020 is owned by Giakou Silverfall.
51
+
52
+ (c) Bundle unmodified SPF1020 with an application you distribute, as long as
53
+ recipients are not misled about who owns SPF1020 and your application
54
+ is clearly identified as separate from SPF1020.
55
+
56
+ (d) Make changes to the Software solely for your private use on your own
57
+ systems, without distributing those changes, subject to Section 4.
58
+
59
+
60
+ 4. MODIFICATIONS AND DERIVATIVE WORKS OF SPF1020
61
+
62
+ If you modify the Software (including forks, patches, or combined works that
63
+ embed or adapt substantial parts of SPF1020):
64
+
65
+ (a) Giakou Silverfall retains all ownership of SPF1020 and the original
66
+ Software. Your changes do not make the Software, or SPF1020 as a whole,
67
+ yours.
68
+
69
+ (b) You may not claim that you created, authored, or own SPF1020, the
70
+ framework as a whole, or Giakou Silverfall's original code, even if you
71
+ modified some files.
72
+
73
+ (c) You may not distribute modified SPF1020 (or any part presented as a
74
+ framework, library, or substitute for SPF1020) under your name, your
75
+ brand, or a name that suggests you originated it.
76
+
77
+ (d) You may not relicense the Software (original or modified) under open
78
+ source terms (such as MIT, GPL, or Apache) or present it as open source
79
+ or public domain.
80
+
81
+ (e) You may not remove, hide, or alter copyright notices, this Agreement,
82
+ license text, version identifiers, or branding that identifies SPF1020
83
+ and Giakou Silverfall.
84
+
85
+ (f) You may not publish modified SPF1020 to package indexes, app stores, or
86
+ download sites under another package or product name in a manner that
87
+ could confuse users about authorship or ownership.
88
+
89
+
90
+ 5. PROHIBITED CONDUCT (MISREPRESENTATION AND "STEALING")
91
+
92
+ You may not:
93
+
94
+ (a) Pass off SPF1020, or substantially similar code derived from it, as your
95
+ own original work, product, or framework.
96
+
97
+ (b) Strip attribution and redistribute the Software or derivatives.
98
+
99
+ (c) Use SPF1020's name, reputation, or documentation to imply endorsement of
100
+ your derivative without permission.
101
+
102
+ (d) Grant sublicenses or rights in the Software that contradict this Agreement.
103
+
104
+ (e) Use the Software in violation of applicable law.
105
+
106
+
107
+ 6. YOUR APPLICATIONS (SEPARATE FROM SPF1020)
108
+
109
+ Software that you write yourself using SPF1020 (your "Application") remains
110
+ yours. You may license and distribute your Application on your own terms,
111
+ including for profit.
112
+
113
+ This Agreement does not claim ownership of your Application's original code,
114
+ assets, or branding. It only governs the SPF1020 components you use or bundle.
115
+
116
+ If you distribute your Application with SPF1020 included, the copy of SPF1020
117
+ must stay unmodified and must remain subject to this Agreement. Your About
118
+ dialog, documentation, or notices should not state or imply that you own
119
+ SPF1020; you may credit Giakou Silverfall and SPF1020 as the UI framework used.
120
+
121
+
122
+ 7. ATTRIBUTION
123
+
124
+ When you redistribute unmodified SPF1020 or bundle it with an Application, you
125
+ should include visible credit where reasonable (for example: About dialog,
126
+ README, or "Built with SPF1020 by Giakou Silverfall"). At minimum, copyright
127
+ notices and this Agreement must remain intact as required in Section 3.
128
+
129
+
130
+ 8. NO WARRANTY
131
+
132
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
133
+ IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS
134
+ FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
135
+
136
+
137
+ 9. LIMITATION OF LIABILITY
138
+
139
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE COPYRIGHT HOLDER SHALL NOT BE
140
+ LIABLE FOR ANY DAMAGES ARISING FROM USE OF THE SOFTWARE.
141
+
142
+
143
+ 10. TERMINATION
144
+
145
+ Your rights under this Agreement end automatically if you breach it. Sections
146
+ 1, 4, 5, 6 (as to SPF1020), 7, 8, 9, and 11 survive termination.
147
+
148
+
149
+ 11. GENERAL
150
+
151
+ This Agreement is the entire agreement regarding SPF1020. If a court finds any
152
+ part unenforceable, the rest remains in effect.
153
+
154
+ This Agreement is not legal advice. For commercial or legal questions, consult
155
+ a qualified attorney in your jurisdiction.
156
+
157
+ Questions about licensing: Giakou Silverfall — giakou_silverfall@hotmail.com
spf1020-1.0.48/LICENSE ADDED
@@ -0,0 +1,29 @@
1
+ SPF1020 — License summary (not a substitute for EULA.txt)
2
+
3
+ Copyright (c) 2026 Giakou Silverfall. All rights reserved.
4
+
5
+ FREE TO USE
6
+ You may use SPF1020 at no charge for any lawful purpose, including commercial
7
+ applications you build with it.
8
+
9
+ YOU MAY
10
+ • Use and redistribute unmodified SPF1020 with copyright and EULA intact
11
+ • Bundle unmodified SPF1020 with your application
12
+ • Own and license your own application code on your terms
13
+
14
+ YOU MAY NOT
15
+ • Claim that you created, authored, or own SPF1020
16
+ • Remove or alter copyright, license, or branding notices
17
+ • Distribute modified SPF1020 as your own framework, product, or replacement
18
+ • Relicense SPF1020 (original or modified) as open source or public domain
19
+ • Use the SPF1020 name or branding to imply you originated the framework
20
+
21
+ MODIFICATIONS
22
+ Private changes on your own machines are allowed; you still do not own SPF1020.
23
+ Public distribution of modified SPF1020 as a framework is not allowed.
24
+
25
+ Full legally binding terms: EULA.txt in this repository.
26
+
27
+ Licensing contact: Giakou Silverfall — giakou_silverfall@hotmail.com
28
+
29
+ Third-party components: see THIRD_PARTY_NOTICES.txt
@@ -0,0 +1,3 @@
1
+ include README.md
2
+ include LICENSE
3
+ include EULA.txt
@@ -0,0 +1,84 @@
1
+ Metadata-Version: 2.4
2
+ Name: spf1020
3
+ Version: 1.0.48
4
+ Summary: Sofia's Python Framework — Windows desktop UI (Giakou Silverfall). Free to use; proprietary — see EULA.txt.
5
+ Author: Giakou Silverfall
6
+ License: Proprietary — see EULA.txt; free to use, all rights reserved by Giakou Silverfall
7
+ Keywords: gui,win32,windows,desktop,ui,framework
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Environment :: Win32 (MS Windows)
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: Other/Proprietary License
12
+ Classifier: Operating System :: Microsoft :: Windows
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Software Development :: Libraries
19
+ Classifier: Topic :: Software Development :: User Interfaces
20
+ Requires-Python: >=3.10
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ Dynamic: license-file
24
+
25
+ # SPF1020
26
+
27
+ **Sofia's Python Framework** — a proprietary, **Windows-only** desktop UI library for Python 3.10+.
28
+
29
+ Built with **ctypes + Win32** (no PyQt, no Qt binaries). **Free to use** for your apps; framework copyright and terms remain with **Giakou Silverfall**. See **`EULA.txt`** in the package.
30
+
31
+ ## Requirements
32
+
33
+ - Windows 10 or later
34
+ - Python 3.10+
35
+
36
+ ## Install (when published on PyPI)
37
+
38
+ ```bat
39
+ pip install spf1020
40
+ ```
41
+
42
+ From a source checkout:
43
+
44
+ ```bat
45
+ pip install -e .
46
+ ```
47
+
48
+ ## Minimal example
49
+
50
+ ```python
51
+ from spf1020 import Application, LayoutRoot, Window, VBox, Label, Button
52
+
53
+ app = Application()
54
+ window = Window(app, title="Hello SPF1020", width=480, height=320)
55
+
56
+ root = VBox(padding=16, spacing=12)
57
+ root.add(Label(window, 0, 0, 200, 24, text="Hello from Win32."))
58
+ root.add(
59
+ Button(window, 0, 0, 120, 32, text="Close", on_click=window.close),
60
+ height=32,
61
+ )
62
+ LayoutRoot(window, root)
63
+ app.run()
64
+ ```
65
+
66
+ ## What you get
67
+
68
+ - Layouts (`VBox`, `HBox`, `Grid`, `SplitPane`, `ScrollPane`, …)
69
+ - Widgets (buttons, fields, tables, trees, tabs, images, progress, …)
70
+ - Dialogs (file/folder pickers, messages, color/font, input)
71
+ - Themes, menus, shortcuts (`Action`), system tray, taskbar progress
72
+ - Thread-safe UI updates (`UiBridge`)
73
+
74
+ Demos and reference shells live in the full repository under `examples/` (not all are shipped inside the wheel).
75
+
76
+ ## License
77
+
78
+ **Proprietary — not open source.** Use is governed by **`EULA.txt`**. Summary: **`LICENSE`** in the repository root.
79
+
80
+ You may build and distribute **your own closed-source applications** with SPF1020. You may **not** claim ownership of SPF1020 or redistribute **modified** SPF1020 as your own framework.
81
+
82
+ ## Publishing this package
83
+
84
+ Maintainers: see **`docs/distribution_checklist.md`** (PyPI section) and **`docs/licensing.md`**.
@@ -0,0 +1,60 @@
1
+ # SPF1020
2
+
3
+ **Sofia's Python Framework** — a proprietary, **Windows-only** desktop UI library for Python 3.10+.
4
+
5
+ Built with **ctypes + Win32** (no PyQt, no Qt binaries). **Free to use** for your apps; framework copyright and terms remain with **Giakou Silverfall**. See **`EULA.txt`** in the package.
6
+
7
+ ## Requirements
8
+
9
+ - Windows 10 or later
10
+ - Python 3.10+
11
+
12
+ ## Install (when published on PyPI)
13
+
14
+ ```bat
15
+ pip install spf1020
16
+ ```
17
+
18
+ From a source checkout:
19
+
20
+ ```bat
21
+ pip install -e .
22
+ ```
23
+
24
+ ## Minimal example
25
+
26
+ ```python
27
+ from spf1020 import Application, LayoutRoot, Window, VBox, Label, Button
28
+
29
+ app = Application()
30
+ window = Window(app, title="Hello SPF1020", width=480, height=320)
31
+
32
+ root = VBox(padding=16, spacing=12)
33
+ root.add(Label(window, 0, 0, 200, 24, text="Hello from Win32."))
34
+ root.add(
35
+ Button(window, 0, 0, 120, 32, text="Close", on_click=window.close),
36
+ height=32,
37
+ )
38
+ LayoutRoot(window, root)
39
+ app.run()
40
+ ```
41
+
42
+ ## What you get
43
+
44
+ - Layouts (`VBox`, `HBox`, `Grid`, `SplitPane`, `ScrollPane`, …)
45
+ - Widgets (buttons, fields, tables, trees, tabs, images, progress, …)
46
+ - Dialogs (file/folder pickers, messages, color/font, input)
47
+ - Themes, menus, shortcuts (`Action`), system tray, taskbar progress
48
+ - Thread-safe UI updates (`UiBridge`)
49
+
50
+ Demos and reference shells live in the full repository under `examples/` (not all are shipped inside the wheel).
51
+
52
+ ## License
53
+
54
+ **Proprietary — not open source.** Use is governed by **`EULA.txt`**. Summary: **`LICENSE`** in the repository root.
55
+
56
+ You may build and distribute **your own closed-source applications** with SPF1020. You may **not** claim ownership of SPF1020 or redistribute **modified** SPF1020 as your own framework.
57
+
58
+ ## Publishing this package
59
+
60
+ Maintainers: see **`docs/distribution_checklist.md`** (PyPI section) and **`docs/licensing.md`**.
@@ -0,0 +1,33 @@
1
+ [project]
2
+ name = "spf1020"
3
+ version = "1.0.48"
4
+ description = "Sofia's Python Framework — Windows desktop UI (Giakou Silverfall). Free to use; proprietary — see EULA.txt."
5
+ readme = "README.md"
6
+ requires-python = ">=3.10"
7
+ authors = [{ name = "Giakou Silverfall" }]
8
+ license = { text = "Proprietary — see EULA.txt; free to use, all rights reserved by Giakou Silverfall" }
9
+ keywords = ["gui", "win32", "windows", "desktop", "ui", "framework"]
10
+ classifiers = [
11
+ "Development Status :: 4 - Beta",
12
+ "Environment :: Win32 (MS Windows)",
13
+ "Intended Audience :: Developers",
14
+ "License :: Other/Proprietary License",
15
+ "Operating System :: Microsoft :: Windows",
16
+ "Programming Language :: Python :: 3",
17
+ "Programming Language :: Python :: 3.10",
18
+ "Programming Language :: Python :: 3.11",
19
+ "Programming Language :: Python :: 3.12",
20
+ "Programming Language :: Python :: 3.13",
21
+ "Topic :: Software Development :: Libraries",
22
+ "Topic :: Software Development :: User Interfaces",
23
+ ]
24
+
25
+ [build-system]
26
+ requires = ["setuptools>=61"]
27
+ build-backend = "setuptools.build_meta"
28
+
29
+ [tool.setuptools.packages.find]
30
+ include = ["spf1020*"]
31
+
32
+ [tool.setuptools.package-data]
33
+ spf1020 = ["EULA.txt"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,157 @@
1
+ SPF1020 — END USER LICENSE AGREEMENT (EULA)
2
+ Version 1.1 — October 2026
3
+
4
+ Copyright (c) 2026 Giakou Silverfall. All rights reserved.
5
+
6
+ This End User License Agreement ("Agreement") applies to SPF1020 (Windows UI
7
+ framework), including source code, binaries, documentation, examples, and
8
+ associated branding (collectively, the "Software").
9
+
10
+ BY USING, COPYING, OR DISTRIBUTING THE SOFTWARE, YOU AGREE TO THIS AGREEMENT.
11
+ IF YOU DO NOT AGREE, DO NOT USE OR DISTRIBUTE THE SOFTWARE.
12
+
13
+
14
+ 1. OWNERSHIP AND RESERVED RIGHTS
15
+
16
+ The Software is owned by Giakou Silverfall and is protected by copyright,
17
+ trademark, and other laws. Giakou Silverfall is the sole author and copyright
18
+ holder of SPF1020.
19
+
20
+ No ownership, copyright, patent, trademark, or other intellectual property
21
+ right in the Software is transferred to you. All rights not expressly granted
22
+ here are reserved by Giakou Silverfall.
23
+
24
+ The names "SPF1020", "Sofia's Python Framework", and related logos or branding
25
+ identify Giakou Silverfall's product. You may not use them in a way that
26
+ suggests you own or originated the Software.
27
+
28
+
29
+ 2. FREE USE (NO CHARGE)
30
+
31
+ Giakou Silverfall grants you a royalty-free license to use the Software as
32
+ described in this Agreement. You are not required to pay a fee to use or
33
+ redistribute unmodified copies in accordance with Section 3.
34
+
35
+ "Free to use" does not mean the Software is open source, public domain, or
36
+ owned by you or the community. It remains proprietary to Giakou Silverfall.
37
+
38
+
39
+ 3. PERMITTED USE
40
+
41
+ You may:
42
+
43
+ (a) Use the Software on any number of computers for any lawful purpose,
44
+ including building, selling, or giving away your own applications.
45
+
46
+ (b) Distribute unmodified copies of the Software (including via source
47
+ repositories, package indexes such as PyPI, or bundled with your
48
+ application), provided that each copy includes this Agreement (or a
49
+ clear reference and link to it), all copyright notices remain intact,
50
+ and recipients are informed that SPF1020 is owned by Giakou Silverfall.
51
+
52
+ (c) Bundle unmodified SPF1020 with an application you distribute, as long as
53
+ recipients are not misled about who owns SPF1020 and your application
54
+ is clearly identified as separate from SPF1020.
55
+
56
+ (d) Make changes to the Software solely for your private use on your own
57
+ systems, without distributing those changes, subject to Section 4.
58
+
59
+
60
+ 4. MODIFICATIONS AND DERIVATIVE WORKS OF SPF1020
61
+
62
+ If you modify the Software (including forks, patches, or combined works that
63
+ embed or adapt substantial parts of SPF1020):
64
+
65
+ (a) Giakou Silverfall retains all ownership of SPF1020 and the original
66
+ Software. Your changes do not make the Software, or SPF1020 as a whole,
67
+ yours.
68
+
69
+ (b) You may not claim that you created, authored, or own SPF1020, the
70
+ framework as a whole, or Giakou Silverfall's original code, even if you
71
+ modified some files.
72
+
73
+ (c) You may not distribute modified SPF1020 (or any part presented as a
74
+ framework, library, or substitute for SPF1020) under your name, your
75
+ brand, or a name that suggests you originated it.
76
+
77
+ (d) You may not relicense the Software (original or modified) under open
78
+ source terms (such as MIT, GPL, or Apache) or present it as open source
79
+ or public domain.
80
+
81
+ (e) You may not remove, hide, or alter copyright notices, this Agreement,
82
+ license text, version identifiers, or branding that identifies SPF1020
83
+ and Giakou Silverfall.
84
+
85
+ (f) You may not publish modified SPF1020 to package indexes, app stores, or
86
+ download sites under another package or product name in a manner that
87
+ could confuse users about authorship or ownership.
88
+
89
+
90
+ 5. PROHIBITED CONDUCT (MISREPRESENTATION AND "STEALING")
91
+
92
+ You may not:
93
+
94
+ (a) Pass off SPF1020, or substantially similar code derived from it, as your
95
+ own original work, product, or framework.
96
+
97
+ (b) Strip attribution and redistribute the Software or derivatives.
98
+
99
+ (c) Use SPF1020's name, reputation, or documentation to imply endorsement of
100
+ your derivative without permission.
101
+
102
+ (d) Grant sublicenses or rights in the Software that contradict this Agreement.
103
+
104
+ (e) Use the Software in violation of applicable law.
105
+
106
+
107
+ 6. YOUR APPLICATIONS (SEPARATE FROM SPF1020)
108
+
109
+ Software that you write yourself using SPF1020 (your "Application") remains
110
+ yours. You may license and distribute your Application on your own terms,
111
+ including for profit.
112
+
113
+ This Agreement does not claim ownership of your Application's original code,
114
+ assets, or branding. It only governs the SPF1020 components you use or bundle.
115
+
116
+ If you distribute your Application with SPF1020 included, the copy of SPF1020
117
+ must stay unmodified and must remain subject to this Agreement. Your About
118
+ dialog, documentation, or notices should not state or imply that you own
119
+ SPF1020; you may credit Giakou Silverfall and SPF1020 as the UI framework used.
120
+
121
+
122
+ 7. ATTRIBUTION
123
+
124
+ When you redistribute unmodified SPF1020 or bundle it with an Application, you
125
+ should include visible credit where reasonable (for example: About dialog,
126
+ README, or "Built with SPF1020 by Giakou Silverfall"). At minimum, copyright
127
+ notices and this Agreement must remain intact as required in Section 3.
128
+
129
+
130
+ 8. NO WARRANTY
131
+
132
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
133
+ IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS
134
+ FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
135
+
136
+
137
+ 9. LIMITATION OF LIABILITY
138
+
139
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE COPYRIGHT HOLDER SHALL NOT BE
140
+ LIABLE FOR ANY DAMAGES ARISING FROM USE OF THE SOFTWARE.
141
+
142
+
143
+ 10. TERMINATION
144
+
145
+ Your rights under this Agreement end automatically if you breach it. Sections
146
+ 1, 4, 5, 6 (as to SPF1020), 7, 8, 9, and 11 survive termination.
147
+
148
+
149
+ 11. GENERAL
150
+
151
+ This Agreement is the entire agreement regarding SPF1020. If a court finds any
152
+ part unenforceable, the rest remains in effect.
153
+
154
+ This Agreement is not legal advice. For commercial or legal questions, consult
155
+ a qualified attorney in your jurisdiction.
156
+
157
+ Questions about licensing: Giakou Silverfall — giakou_silverfall@hotmail.com