slint-ui 1.6.0 → 1.7.0-nightly.2024060603

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.
package/.yarnrc.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  # Copyright © SixtyFPS GmbH <info@slint.dev>
2
- # SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ # SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  nodeLinker: node-modules
package/Cargo.toml CHANGED
@@ -1,5 +1,5 @@
1
1
  # Copyright © SixtyFPS GmbH <info@slint.dev>
2
- # SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ # SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  [package]
5
5
  name = "slint-node"
@@ -9,10 +9,10 @@ documentation = "https://slint.dev/docs"
9
9
  edition = "2021"
10
10
  homepage = "https://slint.dev"
11
11
  keywords = ["gui", "toolkit", "graphics", "design", "ui"]
12
- license = "GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial"
12
+ license = "GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0"
13
13
  repository = "https://github.com/slint-ui/slint"
14
14
  rust-version = "1.73"
15
- version = "1.6.0"
15
+ version = "1.7.0"
16
16
  categories = ["gui", "development-tools"]
17
17
  build = "build.rs"
18
18
 
@@ -40,11 +40,11 @@ accessibility = ["slint-interpreter/accessibility"]
40
40
  [dependencies]
41
41
  napi = { version = "2.14.0", default-features = false, features = ["napi8"] }
42
42
  napi-derive = "2.14.0"
43
- i-slint-compiler = { features = ["default"] , version = "=1.6.0", default-features = false }
44
- i-slint-core = { features = ["default"] , version = "=1.6.0", default-features = false }
45
- i-slint-backend-selector = { version = "=1.6.0", default-features = false }
46
- slint-interpreter = { default-features = false , features = ["display-diagnostics", "internal", "compat-1-2"] , version = "=1.6.0"}
47
- spin_on = "0.1"
43
+ i-slint-compiler = { features = ["default"] , git = "https://github.com/slint-ui/slint", rev = "cad11c821fc36b4d767b53219fff8fb5c219975b", version = "=1.7.0", default-features = false }
44
+ i-slint-core = { features = ["default"] , git = "https://github.com/slint-ui/slint", rev = "cad11c821fc36b4d767b53219fff8fb5c219975b", version = "=1.7.0", default-features = false }
45
+ i-slint-backend-selector = { git = "https://github.com/slint-ui/slint", rev = "cad11c821fc36b4d767b53219fff8fb5c219975b", version = "=1.7.0", default-features = false }
46
+ slint-interpreter = { default-features = false , features = ["display-diagnostics", "internal", "compat-1-2"] , git = "https://github.com/slint-ui/slint", rev = "cad11c821fc36b4d767b53219fff8fb5c219975b", version = "=1.7.0"}
47
+ spin_on = { version = "0.1" }
48
48
  css-color-parser2 = { version = "1.0.1" }
49
49
  itertools = { version = "0.12" }
50
50
  send_wrapper = { version = "0.6.0" }
package/LICENSE.md CHANGED
@@ -1,12 +1,12 @@
1
- <!-- Copyright © SixtyFPS GmbH <info@slint.dev> ; SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial -->
1
+ <!-- Copyright © SixtyFPS GmbH <info@slint.dev> ; SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 -->
2
2
 
3
3
  # Slint License
4
4
 
5
5
  You can use Slint under ***any*** of the following licenses, at your choice:
6
6
 
7
- 1. [Royalty-free license](LICENSES/LicenseRef-Slint-Royalty-free-1.2.md),
7
+ 1. [Royalty-free license](LICENSES/LicenseRef-Slint-Royalty-free-2.0.md),
8
8
  2. [GNU GPLv3](LICENSES/GPL-3.0-only.txt),
9
- 3. [Commercial license](LICENSES/LicenseRef-Slint-commercial.md).
9
+ 3. [Commercial license](LICENSES/LicenseRef-Slint-Software-3.0.md).
10
10
 
11
11
  Third party licenses listed in the `LICENSES` folder also apply to parts of the product.
12
12
 
@@ -0,0 +1,43 @@
1
+ # Slint Royalty-free Desktop, Mobile, and Web Applications License
2
+
3
+ Version 2.0
4
+
5
+ ## Preamble
6
+
7
+ Slint is a toolkit that can be used to build user interfaces for applications. Slint (hereafter referred to as **Software**) is made available under different licenses by SixtyFPS GmbH incorporated at Oranienburger Str. 44, 16540 Hohen Neuendorf, Germany (**SixtyFPS**). The **Slint Royalty-free Desktop, Mobile, and Web Applications License** is suitable for those who develop desktop, mobile, or web applications and do not want to use open source components under copyleft licenses.
8
+
9
+ ## 1. Grant of Rights
10
+
11
+ SixtyFPS hereby grants You a world-wide, royalty-free, non-exclusive license to use, reproduce, make available, modify, display, perform, distribute the Software as part of a Desktop, Mobile, or Web Application.
12
+
13
+ A **Desktop Application** is a computer program that is designed to run on a general-purpose computer (PC or notebook), typically installed and executed locally on the computer's operating system.
14
+
15
+ A **Mobile Application** is a computer program that is designed to run on a general-purpose mobile computer (mobile phone or tablet), typically installed and executed locally on the computer's operating system.
16
+
17
+ A **Web Application** is a computer program that is designed to run in the sandbox environment provided by a web browser.
18
+
19
+ Desktop Application, Mobile Application, and Web Application are hereafter referred to as **Application**.
20
+
21
+ ## 2. License Conditions - Attribution
22
+
23
+ You may distribute the Software as part of an Application, modified or unmodified, provided that You do either of the following:
24
+
25
+ (a) Display the [`AboutSlint`](https://slint.dev/snapshots/master/docs/slint/src/language/widgets/aboutslint.html) widget in an "About" screen or dialog that is accessible from the top level menu of the Application. In the absence of such a screen or dialog, display the widget in the "Splash Screen" of the Application.
26
+
27
+ (b) Display the [Slint attribution badge](https://github.com/slint-ui/slint/tree/master/logo/MadeWithSlint-logo-whitebg.png) on a public webpage, preferably where the binaries of your Application can be downloaded from, in such a way that it can be easily found by any visitor to that page.
28
+
29
+ ## 3. Limitations
30
+
31
+ The License does not permit to distribute or make the Software publicly available alone and without integration into an Application. For this purpose you may use the Software under the GNU General Public License, version 3.
32
+
33
+ The License does not permit the use of the Software within Embedded Systems. An **Embedded System** is a computer system designed to perform a specific task within a larger mechanical or electrical system.
34
+
35
+ The License does not permit the distribution of Application that exposes the APIs, in part or in total, of the Software.
36
+
37
+ You may not remove or alter any license notices (including copyright notices, disclaimers of warranty, or limitations of liability) contained within the source code form of the Software.
38
+
39
+ ## 4. Warranty and Liability
40
+
41
+ SixtyFPS is only liable for conflicting rights of third parties if SixtyFPS was aware of these rights without informing you. Unless required by applicable law or agreed to in writing, SixtyFPS provides the Software on an "as is" basis, without warranties or conditions of any kind, either express or implied, including, without limitation, any warranties or conditions of merchantability, or fitness for a particular purpose.
42
+
43
+ Unless required by law, SixtyFPS won't be liable for any direct, indirect, incidental, or consequential damages arising in any way out of the use of the Software.
@@ -0,0 +1,89 @@
1
+ # Slint Software License
2
+
3
+ Version 3.0
4
+
5
+ ## Preamble
6
+
7
+ Slint is a toolkit that can be used to build user interfaces for applications. Slint (hereafter referred to as **Software**) is made available under different licenses by SixtyFPS GmbH incorporated at Oranienburger Str. 44, 16540 Hohen Neuendorf, Germany (**SixtyFPS**). The **Slint Software License** is suitable for those who do not want to use open source components under copyleft licenses.
8
+
9
+ ## 1. Grant of Rights
10
+
11
+ SixtyFPS hereby grants You a world-wide, non-exclusive license to use, reproduce, make available, modify, display, perform, distribute the Software as part of a Desktop, Mobile, or Web Application or as part of an Embedded System (each of which is defined below).
12
+
13
+ A **Desktop Application** is a computer program that is designed to run on a general-purpose computer (PC or notebook), typically installed and executed locally on the computer's operating system.
14
+
15
+ A **Mobile Application** is a computer program that is designed to run on a general-purpose mobile computer (mobile phone or tablet), typically installed and executed locally on the computer's operating system.
16
+
17
+ A **Web Application** is a computer program that is designed to run in the sandbox environment provided by a web browser.
18
+
19
+ An **Embedded System** is a computer system designed to perform a specific task within a larger mechanical or electrical system.
20
+
21
+ Desktop Application, Mobile Application, and Web Application are hereafter referred to as **Application**.
22
+
23
+ ## 2. License Conditions
24
+
25
+ The grant of rights in section 1 are conditional, provided that You do all of the following:
26
+
27
+ (a) You have purchased an appropriate **Pricing Plan** (*Startup & Individual* / *Small Enterprise* / *Enterprise*) and the required amount of seats to cover all individual users of the Software associated with the designing, developing, or testing your Application or Embedded System. For clarity, each individual user is counted as one seat.
28
+
29
+ (b) In the case that You are distributing the Software as as part of an Embedded System, You have purchased an appropriate quantity of **Royalties**, one Royalty for each Embedded System.
30
+
31
+ (c) You have fully paid all applicable fees (**Fees**) pursuant to Section 6.
32
+
33
+ *Startup & Individual Plan* is limited to individuals as well as individual companies with a staff headcount of less than 10 with either turnover or balance sheet of 2MEUR or less.
34
+
35
+ *Small Enterprise Plan* is limited to individual companies with a staff headcount of less than 50 with either turnover or balance sheet of 10MEUR or less.
36
+
37
+ *Enterprise Plan* is available to all individuals and individual companies.
38
+
39
+ ## 3. Limitations
40
+
41
+ The License does not permit to distribute or make the Software publicly available alone and without integration into an Application or into an Embedded System. For this purpose you may use the Software under the GNU General Public License, version 3.
42
+
43
+ The License is limited to only the versions of Software that were made available to you under the purchased Pricing Plan. For all other versions, you may use the Software under either the GNU General Public License, version 3 or the Slint Royalty-free Desktop, Mobile, and Web Applications License.
44
+
45
+ The License does not permit the distribution of Application that exposes the APIs, in part or in total, of the Software.
46
+
47
+ You may not remove or alter any license notices (including copyright notices, disclaimers of warranty, or limitations of liability) contained within the source code form of the Software.
48
+
49
+ ## 4. Warranty and Liability
50
+
51
+ SixtyFPS is only liable for conflicting rights of third parties if SixtyFPS was aware of these rights without informing you. Unless required by applicable law or agreed to in writing, SixtyFPS provides the Software on an "as is" basis, without warranties or conditions of any kind, either express or implied, including, without limitation, any warranties or conditions of merchantability, or fitness for a particular purpose.
52
+
53
+ Unless required by law, SixtyFPS won't be liable for any direct, indirect, incidental, or consequential damages arising in any way out of the use of the Software.
54
+
55
+ ## 5. Audit Rights
56
+
57
+ SixtyFPS or an independent certified auditor on SixtyFPS's behalf, may, upon its reasonable request, with 30 (thirty) days written notice, and at its sole expense, examine your books and records solely with respect to your use of the Software. Any such audit shall be conducted during regular business hours at your facilities and shall not unreasonably interfere with your business activities. The auditor shall not remove, copy, or redistribute any electronic material during an audit. If an audit reveals that you are using the Software in a way that is in material violation of the terms of this License, then you shall pay SixtyFPS reasonable costs of conducting the audit. The auditor shall only be allowed to report violations of the terms of this License, with a copy to you. You shall be provided the right to provide comments to the report before it is finalized.
58
+
59
+ ## 6. Payment Terms
60
+
61
+ (a) Fees will be payable upon receipt of an invoice, except for Fees that are disputed in good faith for reasons articulated in writing by You, within thirty (30) days after receiving such invoice.
62
+
63
+ (b) Any unpaid Fees will become overdue 30 (thirty) days from the date of the applicable invoice and be subject to a 5% (five percent) late fee for each month of delayed payment, with each such 5% (five percent) late fees attaching to such unpaid amounts at the first day of each 30 (thirty) days time increments beginning on the first day that such amounts become overdue.
64
+
65
+ (c) Fees are exclusive of any and all taxes, including but not limited to VAT and withholding tax, duties, customs, and bank charges, for which You shall be solely responsible.
66
+
67
+ (d) No term or condition contained in your purchase order will apply unless expressly accepted by SixtyFPS in writing.
68
+
69
+ ## 7. Termination
70
+
71
+ (a) SixtyFPS may terminate this License if You materially breach any obligation hereunder, provided You have been provided notice of such breach and an opportunity to cure such breach during a period of not less than sixty (60) days following such notice.
72
+
73
+ (b) You may terminate this License with or without cause upon no less than thirty (30) days advance written notice to SixtyFPS and upon payment of any unpaid Fees and contractual penalties.
74
+
75
+ (c) Upon termination of this License, You will immediately cease using, reproducing, making available, modifying, displaying, performing, distributing the Software and pay immediately any unpaid Fees and contractual penalties.
76
+
77
+ (d) Sections 3 through 10 of this License will survive any termination of the License to the extent necessary to implement their objectives.
78
+
79
+ ## 8. Assignment
80
+
81
+ You may assign this License, in whole or in part (whether by operation of law or otherwise), with prior consent from SixtyFPS, which shall not be unreasonably withheld or delayed. SixtyFPS may assign any of its rights hereunder or delegate any of its obligations hereunder with prior notice to You. Any attempt to assign this License other than in accordance with this Section 8 shall be null and void.
82
+
83
+ ## 9. Severability
84
+
85
+ In the event that any provision of this License will, for any reason, be determined by any court of competent jurisdiction to be invalid, illegal or unenforceable in any respect, such invalidity, illegality or unenforceability will be interpreted as closely as possible so as not affect any other provision of this License, and such provision will further be modified by said court to permit its enforcement to the maximum extent permitted by law.
86
+
87
+ ## 10. Governing Law
88
+
89
+ This Agreement shall be construed, interpreted, and governed by the laws of the Federal Republic of Germany.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Copyright © SixtyFPS GmbH <info@slint.dev> ; SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial -->
1
+ <!-- Copyright © SixtyFPS GmbH <info@slint.dev> ; SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 -->
2
2
 
3
3
  # Slint-node (Beta)
4
4
 
package/binaries.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slint-ui/slint-ui-binary",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "binaryName": "slint-ui",
5
5
  "package": "@slint-ui/slint-ui-binary",
6
6
  "napi": {
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  // This file checks if a binary package was installed (through architecture dependencies), and
5
5
  // builds slint if no binary was found.
package/build.rs CHANGED
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  fn main() {
5
5
  napi_build::setup();
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  // Copyright © SixtyFPS GmbH <info@slint.dev>
3
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
3
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.quitEventLoop = exports.runEventLoop = exports.loadSource = exports.loadFile = exports.CompileError = exports.private_api = exports.ArrayModel = exports.Model = void 0;
6
6
  const napi = require("./rust-module.cjs");
@@ -517,6 +517,22 @@ function loadSlint(loadData) {
517
517
  });
518
518
  }
519
519
  });
520
+ instance.definition().functions.forEach((cb) => {
521
+ let functionName = cb.replace(/-/g, "_");
522
+ if (componentHandle[functionName] !== undefined) {
523
+ console.warn("Duplicated function name " + functionName);
524
+ }
525
+ else {
526
+ Object.defineProperty(componentHandle, cb.replace(/-/g, "_"), {
527
+ get() {
528
+ return function () {
529
+ return instance.invoke(cb, Array.from(arguments));
530
+ };
531
+ },
532
+ enumerable: true,
533
+ });
534
+ }
535
+ });
520
536
  // globals
521
537
  instance.definition().globals.forEach((globalName) => {
522
538
  if (componentHandle[globalName] !== undefined) {
@@ -560,6 +576,22 @@ function loadSlint(loadData) {
560
576
  });
561
577
  }
562
578
  });
579
+ instance.definition().globalFunctions(globalName).forEach((cb) => {
580
+ let functionName = cb.replace(/-/g, "_");
581
+ if (globalObject[functionName] !== undefined) {
582
+ console.warn("Duplicated function name " + cb + " on global " + global);
583
+ }
584
+ else {
585
+ Object.defineProperty(globalObject, cb.replace(/-/g, "_"), {
586
+ get() {
587
+ return function () {
588
+ return instance.invokeGlobal(globalName, cb, Array.from(arguments));
589
+ };
590
+ },
591
+ enumerable: true,
592
+ });
593
+ }
594
+ });
563
595
  Object.defineProperty(componentHandle, globalName, {
564
596
  get() {
565
597
  return globalObject;
package/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  import * as napi from "./rust-module.cjs";
5
5
  export {
@@ -350,7 +350,7 @@ export class ArrayModel<T> extends Model<T> {
350
350
 
351
351
  /**
352
352
  * Removes the last element from the array and returns it.
353
- *
353
+ *
354
354
  * @returns The removed element or undefined if the array is empty.
355
355
  */
356
356
  pop(): T | undefined {
@@ -780,6 +780,23 @@ function loadSlint(loadData: LoadData): Object {
780
780
  }
781
781
  });
782
782
 
783
+ instance!.definition().functions.forEach((cb) => {
784
+ let functionName = cb.replace(/-/g, "_");
785
+
786
+ if (componentHandle[functionName] !== undefined) {
787
+ console.warn("Duplicated function name " + functionName);
788
+ } else {
789
+ Object.defineProperty(componentHandle, cb.replace(/-/g, "_"), {
790
+ get() {
791
+ return function () {
792
+ return instance!.invoke(cb, Array.from(arguments));
793
+ };
794
+ },
795
+ enumerable: true,
796
+ });
797
+ }
798
+ });
799
+
783
800
  // globals
784
801
  instance!.definition().globals.forEach((globalName) => {
785
802
  if (componentHandle[globalName] !== undefined) {
@@ -825,6 +842,23 @@ function loadSlint(loadData: LoadData): Object {
825
842
  }
826
843
  });
827
844
 
845
+ instance!.definition().globalFunctions(globalName).forEach((cb) => {
846
+ let functionName = cb.replace(/-/g, "_");
847
+
848
+ if (globalObject[functionName] !== undefined) {
849
+ console.warn("Duplicated function name " + cb + " on global " + global);
850
+ } else {
851
+ Object.defineProperty(globalObject, cb.replace(/-/g, "_"), {
852
+ get() {
853
+ return function () {
854
+ return instance!.invokeGlobal(globalName, cb, Array.from(arguments));
855
+ };
856
+ },
857
+ enumerable: true,
858
+ });
859
+ }
860
+ });
861
+
828
862
  Object.defineProperty(componentHandle, globalName, {
829
863
  get() {
830
864
  return globalObject;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slint-ui",
3
- "version": "1.6.0",
3
+ "version": "1.7.0-nightly.2024060603",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "homepage": "https://github.com/slint-ui/slint",
@@ -59,10 +59,10 @@
59
59
  "@napi-rs/cli": "^2.16.5"
60
60
  },
61
61
  "optionalDependencies": {
62
- "@slint-ui/slint-ui-binary-linux-x64-gnu": "1.6.0",
63
- "@slint-ui/slint-ui-binary-darwin-x64": "1.6.0",
64
- "@slint-ui/slint-ui-binary-darwin-arm64": "1.6.0",
65
- "@slint-ui/slint-ui-binary-win32-x64-msvc": "1.6.0",
66
- "@slint-ui/slint-ui-binary-win32-ia32-msvc": "1.6.0"
62
+ "@slint-ui/slint-ui-binary-linux-x64-gnu": "1.7.0-nightly.2024060603",
63
+ "@slint-ui/slint-ui-binary-darwin-x64": "1.7.0-nightly.2024060603",
64
+ "@slint-ui/slint-ui-binary-darwin-arm64": "1.7.0-nightly.2024060603",
65
+ "@slint-ui/slint-ui-binary-win32-x64-msvc": "1.7.0-nightly.2024060603",
66
+ "@slint-ui/slint-ui-binary-win32-ia32-msvc": "1.7.0-nightly.2024060603"
67
67
  }
68
68
  }
package/rust-module.d.ts CHANGED
@@ -112,9 +112,11 @@ export class ComponentDefinition {
112
112
  constructor()
113
113
  get properties(): Array<JsProperty>
114
114
  get callbacks(): Array<string>
115
+ get functions(): Array<string>
115
116
  get globals(): Array<string>
116
117
  globalProperties(globalName: string): Array<JsProperty> | null
117
118
  globalCallbacks(globalName: string): Array<string> | null
119
+ globalFunctions(globalName: string): Array<string> | null
118
120
  create(): JsComponentInstance
119
121
  get name(): string
120
122
  }
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  use std::collections::HashMap;
5
5
  use std::path::PathBuf;
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  use napi::Result;
5
5
  use slint_interpreter::ComponentDefinition;
@@ -39,6 +39,11 @@ impl JsComponentDefinition {
39
39
  self.internal.callbacks().collect()
40
40
  }
41
41
 
42
+ #[napi(getter)]
43
+ pub fn functions(&self) -> Vec<String> {
44
+ self.internal.functions().collect()
45
+ }
46
+
42
47
  #[napi(getter)]
43
48
  pub fn globals(&self) -> Vec<String> {
44
49
  self.internal.globals().collect()
@@ -57,6 +62,11 @@ impl JsComponentDefinition {
57
62
  self.internal.global_callbacks(global_name.as_str()).map(|iter| iter.collect())
58
63
  }
59
64
 
65
+ #[napi]
66
+ pub fn global_functions(&self, global_name: String) -> Option<Vec<String>> {
67
+ self.internal.global_functions(global_name.as_str()).map(|iter| iter.collect())
68
+ }
69
+
60
70
  #[napi]
61
71
  pub fn create(&self) -> Result<JsComponentInstance> {
62
72
  Ok(self.internal.create().map_err(|e| napi::Error::from_reason(e.to_string()))?.into())
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  use i_slint_compiler::langtype::Type;
5
5
  use i_slint_core::window::WindowInner;
@@ -239,29 +239,32 @@ impl JsComponentInstance {
239
239
  )
240
240
  })?;
241
241
 
242
- let args = if let Type::Callback { args, .. } = ty {
243
- let count = args.len();
244
- let args = arguments
245
- .into_iter()
246
- .zip(args.into_iter())
247
- .map(|(a, ty)| super::value::to_value(&env, a, &ty))
248
- .collect::<Result<Vec<_>, _>>()?;
249
- if args.len() != count {
242
+ let args = match ty {
243
+ Type::Callback { args, .. } | Type::Function { args, .. } => {
244
+ let count = args.len();
245
+ let args = arguments
246
+ .into_iter()
247
+ .zip(args.into_iter())
248
+ .map(|(a, ty)| super::value::to_value(&env, a, &ty))
249
+ .collect::<Result<Vec<_>, _>>()?;
250
+ if args.len() != count {
251
+ return Err(napi::Error::from_reason(
252
+ format!(
253
+ "{} expect {} arguments, but {} where provided",
254
+ callback_name,
255
+ count,
256
+ args.len()
257
+ )
258
+ .as_str(),
259
+ ));
260
+ }
261
+ args
262
+ }
263
+ _ => {
250
264
  return Err(napi::Error::from_reason(
251
- format!(
252
- "{} expect {} arguments, but {} where provided",
253
- callback_name,
254
- count,
255
- args.len()
256
- )
257
- .as_str(),
265
+ format!("{} is not a callback or a function", callback_name).as_str(),
258
266
  ));
259
267
  }
260
- args
261
- } else {
262
- return Err(napi::Error::from_reason(
263
- format!("{} is not a callback", callback_name).as_str(),
264
- ));
265
268
  };
266
269
 
267
270
  let result = self
@@ -296,29 +299,36 @@ impl JsComponentInstance {
296
299
  )
297
300
  })?;
298
301
 
299
- let args = if let Type::Callback { args, .. } = ty {
300
- let count = args.len();
301
- let args = arguments
302
- .into_iter()
303
- .zip(args.into_iter())
304
- .map(|(a, ty)| super::value::to_value(&env, a, &ty))
305
- .collect::<Result<Vec<_>, _>>()?;
306
- if args.len() != count {
302
+ let args = match ty {
303
+ Type::Callback { args, .. } | Type::Function { args, .. } => {
304
+ let count = args.len();
305
+ let args = arguments
306
+ .into_iter()
307
+ .zip(args.into_iter())
308
+ .map(|(a, ty)| super::value::to_value(&env, a, &ty))
309
+ .collect::<Result<Vec<_>, _>>()?;
310
+ if args.len() != count {
311
+ return Err(napi::Error::from_reason(
312
+ format!(
313
+ "{} expect {} arguments, but {} where provided",
314
+ callback_name,
315
+ count,
316
+ args.len()
317
+ )
318
+ .as_str(),
319
+ ));
320
+ }
321
+ args
322
+ }
323
+ _ => {
307
324
  return Err(napi::Error::from_reason(
308
325
  format!(
309
- "{} expect {} arguments, but {} where provided",
310
- callback_name,
311
- count,
312
- args.len()
326
+ "{} is not a callback or a function on global {}",
327
+ callback_name, global_name
313
328
  )
314
329
  .as_str(),
315
330
  ));
316
331
  }
317
- args
318
- } else {
319
- return Err(napi::Error::from_reason(
320
- format!("{} is not a callback on global {}", callback_name, global_name).as_str(),
321
- ));
322
332
  };
323
333
 
324
334
  let result = self
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  use slint_interpreter::{Diagnostic, DiagnosticLevel};
5
5
 
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  use crate::{
5
5
  js_into_rust_model, rust_into_js_model, ReadOnlyRustModel, RgbaColor, SlintBrush,
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  use crate::types::{SlintPoint, SlintSize};
5
5
  use i_slint_core::window::WindowAdapterRc;
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  mod diagnostic;
5
5
  pub use diagnostic::*;
package/src/lib.rs CHANGED
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  mod interpreter;
5
5
  pub use interpreter::*;
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  use i_slint_core::{graphics::GradientStop, Brush, Color};
5
5
  use napi::{bindgen_prelude::External, Error, Result};
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  use std::vec;
5
5
 
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  use std::rc::Rc;
5
5
 
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  use napi::{
5
5
  bindgen_prelude::{FromNapiValue, Object},
package/src/types/size.rs CHANGED
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  use napi::{
5
5
  bindgen_prelude::{FromNapiValue, Object},
package/src/types.rs CHANGED
@@ -1,5 +1,5 @@
1
1
  // Copyright © SixtyFPS GmbH <info@slint.dev>
2
- // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
2
+ // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
3
 
4
4
  mod brush;
5
5
  pub use brush::*;
@@ -1,39 +0,0 @@
1
- # Slint Royalty-free Desktop, Mobile, and Web Applications License v1.2
2
-
3
- ## Preamble
4
-
5
- Slint is a toolkit that can be used to build user interfaces for applications. Slint (hereafter referred to as "Software") is made available under different licenses by SixtyFPS GmbH incorporated at Oranienburger Str. 44, 16540 Hohen Neuendorf, Germany ("SixtyFPS"). The "Slint Royalty-free Desktop, Mobile, and Web Applications License" is suitable for those who develop desktop, mobile, or web applications and do not want to use open source components under copyleft licenses.
6
-
7
- ### 1. Grant of Rights
8
-
9
- SixtyFPS hereby grants You a world-wide, royalty-free, non-exclusive license to use, reproduce, make available, modify, display, perform, distribute the Software as part of a Desktop, Mobile, or Web Application.
10
-
11
- A Desktop Application is a computer program that is designed to run on a general-purpose computer (PC or notebook), typically installed and executed locally on the computer's operating system.
12
-
13
- A Mobile Application is a computer program that is designed to run on a general-purpose mobile computer (mobile phone or tablet), typically installed and executed locally on the computer's operating system.
14
-
15
- A Web Application is a computer program that is running on a server and accessed using a web browser or client program.
16
-
17
- Desktop Application, Mobile Application, and Web Application are hereafter referred to as "Application".
18
-
19
- ### 2. License Conditions - Attribution
20
-
21
- You may distribute the Software as part of an Application, modified or unmodified, provided that You do either of the following:
22
-
23
- (a) Display the [`AboutSlint`](https://slint.dev/snapshots/master/docs/slint/src/language/widgets/aboutslint.html) widget in an "About" screen or dialog that is accessible from the top level menu of the Application. In the absence of such a screen or dialog, display the widget in the "Splash Screen" of the Application.
24
-
25
- (b) Display the [Slint attribution badge](https://github.com/slint-ui/slint/tree/master/logo/MadeWithSlint-logo-whitebg.png) on a public webpage, preferably where the binaries of your Application can be downloaded from, in such a way that it can be easily found by any visitor to that page.
26
-
27
- ### 3. Limitations
28
-
29
- The license does not permit to distribute or make the Software publicly available alone and without integration into an Application. For this purpose you may use the Software under the GNU General Public License, version 3.
30
-
31
- The license does not permit the use of the Software within Embedded Systems. An Embedded System is a computer system designed to perform a specific task within a larger mechanical or electrical system.
32
-
33
- You may not remove or alter any license notices (including copyright notices, disclaimers of warranty, or limitations of liability) contained within the source code form of the Software.
34
-
35
- ### 4. Warranty and Liability
36
-
37
- SixtyFPS is only liable for conflicting rights of third parties if SixtyFPS was aware of these rights without informing you. Unless required by applicable law or agreed to in writing, SixtyFPS provides the SOFTWARE on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.
38
-
39
- UNLESS REQUIRED BY LAW, SIXTYFPS WON'T BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE.
@@ -1,256 +0,0 @@
1
- # Slint Software License Agreement
2
-
3
- Version 2.0
4
-
5
- Copyright © 2023 SixtyFPS GmbH <https://slint.dev/imprint.html>
6
-
7
- SixtyFPS GmbH with offices at Oranienburger Str. 44, 16540 Hohen Neuendorf,
8
- Germany (**SixtyFPS**, **us**, **we** or **our**) grants a license to the
9
- software (**Licensed Software**), as specified herein, subject to the Terms and
10
- Conditions of this Slint Software License Agreement (**Agreement**).
11
-
12
- By using the Licensed Software, **you** agree to be bound by this Agreement.
13
- **If you do not agree, do not use the Licensed Software.** If you are accessing
14
- and using the Licensed Software on behalf of a company (such as your employer)
15
- or other legal entity, you represent and warrant that you have the authority to
16
- bind that company or other legal entity to this Agreement. In that case, **you**
17
- and **your** will refer to that company or other legal entity.
18
-
19
- Each Party to this Agreement may be referred to herein individually as a
20
- **Party** or collectively as the **Parties**.
21
-
22
- ## Licensed Software
23
-
24
- The Licensed Software includes
25
-
26
- 1. Slint compiler tool to translate Slint Design Markup Language files to Rust
27
- (last stable Rust version at the time of licensed Slint version) and C++
28
- (second last C++ version at the time of licensed Slint version),
29
-
30
- 2. Slint run-time library that can render interactive user-interfaces and
31
- provides Rust and C++ APIs (as per above versioning) to control the
32
- interfaces,
33
-
34
- 3. API Documentation for Slint and reference documentation for Slint Design
35
- Markup Language, and
36
-
37
- 4. Source code of Slint.
38
-
39
- ## Terms and Conditions
40
-
41
- 1. The Licensed Software is protected by copyright laws and international
42
- copyright treaties, as well as other intellectual property laws and
43
- treaties. The Licensed Software is licensed, not sold.
44
-
45
- 2. The Licensed Software may provide links to third Party libraries or code
46
- (collectively **Third-Party Libraries**) to implement various functions.
47
- Third-Party Libraries do not comprise part of the Licensed Software. In some
48
- cases, access to Third-Party Libraries may be included along with the
49
- Licensed Software delivery as a convenience for development and testing
50
- only. You acknowledge:
51
-
52
- (a) that some Third-Party Libraries may require additional licensing of
53
- copyright and/or patents from the owners of such, and
54
-
55
- (b) that distribution of any of the Licensed Software referencing any portion
56
- of a Third-Party Library may require appropriate licensing from such
57
- third parties. All such Third-Party Libraries, along with applicable
58
- copyright notices and licenses, will be listed and made available to
59
- you.
60
-
61
- 3. As part of the license grant, a Slint Software License Certificate
62
- (**License Certificate**) will be issued containing details of
63
-
64
- (a) the license grant,
65
-
66
- (b) the permitted scope of your use of the Licensed Software, and
67
-
68
- (c) your contact details.
69
-
70
- 4. In case of any changes or deviations to the information noted in the License
71
- Certificate, you are obliged to notify us in writing, not later than 7 days
72
- after any such change or deviation has occurred.
73
-
74
- 5. The Term of this Agreement shall begin on the date mentioned in the License
75
- Certificate (**Effective Date**) and shall continue unless terminated
76
- earlier as herein provided (**Term**).
77
-
78
- 6. New releases of the Licensed Software (**Updates**) will be made available
79
- to you for the period (**Maintenance Period**) specified in the License
80
- Certificate. Such Updates may be bound by additional license terms. You
81
- consent to any such additional license terms, without which you may not
82
- install, copy, or otherwise use such Updates.
83
-
84
- 7. The Licensed Software is to be used exclusively with your software
85
- products (**Products**) specified in the License Certificate.
86
-
87
- 8. We grant you a perpetual, non-exclusive, non-transferable right to use the
88
- Licensed Software, including making modifications, for the sole purposes of
89
- designing, developing, and testing your Products during the Term. The number
90
- of **Users** using the Licensed Software to design, develop, and test your
91
- Products is limited to the amount of **User Seats** specified in the License
92
- Certificate. For clarity, each unique User is counted as one User Seat.
93
-
94
- 9. We grant you a perpetual, non-exclusive, non-transferable right to reproduce
95
- and distribute the object code form of the Licensed Software, including any
96
- modifications made to the Licensed Software, during the Term. Such
97
- distributions are permitted only with your Products and limited to the number
98
- of **Distributions** specified in the License Certificate.
99
-
100
- 10. The license grants are conditional on the full and timely payment of all
101
- applicable **Fees**; if said Fees are not paid in full and by their due
102
- date, the license shall not be granted and your Products shall be deemed as
103
- made in breach of the Agreement ex tunc.
104
-
105
- 11. The Fees and any other charges under this Agreement shall be paid by
106
- you no later than thirty (30) days from the date of the applicable
107
- invoice from us. A late payment charge of five percent per month over and
108
- above the interest rate stipulated by applicable law shall be charged on any
109
- unpaid balances that remain past due and which have not been disputed by you
110
- in good faith.
111
-
112
- 12. The Fees and any other charges payable under this Agreement are gross
113
- amounts but exclusive of any value added tax, use tax, sales tax,
114
- withholding tax and other taxes, duties or tariffs levied directly for the
115
- sale, delivery, or use of the Licensed Software pursuant to any applicable
116
- law.
117
-
118
- 13. The Parties also agree to all the following conditions:
119
-
120
- (a) You may not remove or alter any copyright, trademark, or other
121
- proprietary rights notice contained in any portion of the Licensed
122
- Software,
123
-
124
- (b) Your Products may not compete with the Licensed Software,
125
-
126
- (c) You will indemnify and hold us, our affiliated companies, and our
127
- suppliers, harmless from and against any claims or liabilities
128
- arising out of the use, reproduction, or distribution of your
129
- Products, except as set out in clause 13.(d) immediately below,
130
-
131
- (d) We shall indemnify and hold you harmless from and against any
132
- claims from third parties alleging that the use of the Licensed Software
133
- as set out in this Agreement infringes or will infringe such third
134
- parties' intellectual property rights or other rights,
135
-
136
- (e) A Party shall promptly notify the other Party if it receives a claim that
137
- the other Party shall or may be obliged to indemnify. The Parties shall
138
- promptly give each other information and other assistance needed for
139
- handling the claim. The Indemnifying Party may, at its cost and in its
140
- sole discretion, take control of the defense of such claim, including
141
- the conduct of any litigation or arbitration and the negotiation of any
142
- settlement, in which case the indemnifying Party shall not compromise or
143
- settle or otherwise dispose of the claim, in whole or in part, where
144
- such compromise or settlement or disposal would require any admission or
145
- stipulation which would reasonably be expected to have an adverse effect
146
- on the commercial reputation of the indemnified Party, without the prior
147
- written consent of the indemnified Party. Where the indemnifying Party
148
- has not taken control of the defense of the claim, the indemnified Party
149
- shall not compromise or settle or fail adequately to defend or otherwise
150
- dispose of a claim, in whole or in part, without the written consent of
151
- the indemnifying Party, such consent not to be unreasonably withheld or
152
- delayed.
153
-
154
- 14. The Licensed Software is licensed to you "as is". To the maximum extent
155
- permitted by applicable law, we on behalf of us and our suppliers,
156
- disclaim all warranties and conditions, either express or implied,
157
- including, but not limited to, any implied warranties of merchantability or
158
- fitness for a particular purpose, title, and non-infringement with regard to
159
- the Licensed Software. The warranty disclaimer in the foregoing
160
- notwithstanding, you may have specific legal rights which may vary from
161
- state/jurisdiction to state/jurisdiction; as far as legally permissible, you
162
- waive any such legal rights vis-à-vis us.
163
-
164
- 15. We shall not under any circumstances be liable to you based on failure of
165
- the Licensed Software if the failure resulted from your changing of the
166
- Licensed Software, from your accident, abuse or misapplication, nor shall
167
- we except in case of gross negligence or willful misconduct be
168
- liable for special damages, punitive or exemplary damages, damages for loss
169
- of profits or interruption of business or for loss or corruption of data,
170
- nor shall any award of damages exceed the total amount you paid to us in
171
- connection with this Agreement.
172
-
173
- 16. During the Term, an independent, certified auditor on our behalf, may, upon
174
- its reasonable request, with 30 (thirty) days written notice, and at its
175
- sole expense, examine your books and records solely with respect to your use
176
- of the Licensed Software. Any such audit shall be conducted during regular
177
- business hours at your facilities and shall not unreasonably interfere with
178
- your business activities. Our auditor shall not remove, copy, or
179
- redistribute any electronic material during an audit. If an audit reveals that
180
- you are using the Licensed Software in a way that is in material violation
181
- of the terms of this Agreement, then you shall pay us reasonable costs of
182
- conducting the audit. Our auditor shall only be allowed to report violations
183
- of the terms of this Agreement, with a copy to you. You shall be provided
184
- the right to provide comments to the report before it is finalized.
185
-
186
- 17. If you materially breach this Agreement, we will provide a 60 (sixty) days
187
- written notice to you during which any such breach(es) may be cured, failing
188
- which we will terminate the agreement.
189
-
190
- 18. You may terminate this Agreement at any time for any reason upon 30 (thirty)
191
- days notice to us and upon payment of all applicable fees and contractual
192
- penalties, if any, in connection with the use of the Licensed Software.
193
-
194
- 19. No term or condition contained in your purchase order will apply unless
195
- expressly accepted by us in writing.
196
-
197
- 20. All notices and communications between the Parties shall be in writing and
198
- shall be deemed given when received. For avoidance of doubt, email is
199
- considered a written form of communication.
200
-
201
- 21. Both Parties shall comply with all applicable laws and regulations relating
202
- to the Licensed Software in the countries in which the Parties use or modify
203
- the Licensed Software.
204
-
205
- 22. Each Party shall hold Confidential Information of the other Party, its
206
- customers, and licensors in confidence, and without written permission from
207
- will not disclose to any person or use for its own benefit, any such
208
- information. **Confidential Information** includes without limitation the
209
- terms of this Agreement, computer software programs developed or licensed by
210
- the Parties, including all documentation and methods or concepts utilized
211
- therein, all adaptations and modifications thereto and derivative works
212
- thereof, and related materials and information. Confidential Information
213
- also includes any other information identified by either Party, its
214
- licensors, or customers as proprietary or confidential, or which would
215
- reasonably be understood under the circumstances to be confidential. All
216
- Confidential Information shall remain the sole property of each respective
217
- Party. Information will not be considered as Confidential Information if
218
-
219
- (a) available to the public other than by a breach of this Agreement;
220
-
221
- (b) rightfully received from a third Party not in breach of any obligation of
222
- confidentiality;
223
-
224
- (c) independently developed by a Party without access to Confidential
225
- Information of the other Party;
226
-
227
- (d) known to the other Party at the time of disclosure;
228
-
229
- (e) produced in compliance with applicable law or a court order, provided the
230
- other Party is given notice and opportunity to intervene; or
231
-
232
- (f) it does not constitute a trade secret and more than five (5) years have
233
- elapsed from the date of disclosure. In addition to any other rights or
234
- remedies available, each Party shall be entitled to enforcement of such
235
- obligations by court injunction.
236
-
237
- 23. This Agreement shall be construed, interpreted, and governed by the laws of
238
- the Federal Republic of Germany.
239
-
240
- 24. You may assign this Agreement, in whole or in part (whether by operation of
241
- law or otherwise), with prior consent from us, which shall not be
242
- unreasonably withheld or delayed. We may assign this Agreement or any of its
243
- rights hereunder or delegate any of its obligations hereunder with prior
244
- notice to you. Any attempt to assign this Agreement other than in accordance
245
- with this provision shall be null and void.
246
-
247
- 25. This Agreement constitutes the complete agreement between the Parties and
248
- supersedes all prior or contemporaneous discussions, representations, and
249
- proposals, written or oral, with respect to the subject matters discussed
250
- herein. No modification of this Agreement will be effective unless contained
251
- in a written document executed by an authorized representative of each
252
- Party. If any provision of the Agreement is found void or unenforceable, the
253
- remainder will remain valid and enforceable according to its terms. If any
254
- remedy provided is determined to have failed for its essential purpose, all
255
- limitations of liability and exclusions of damages set forth in this
256
- Agreement shall remain in effect.