From fab8ba235d4f4b794a71338ca14b67bd315e635b Mon Sep 17 00:00:00 2001
From: david-swift
Date: Sat, 13 Apr 2024 21:41:48 +0200
Subject: [PATCH] Initial commit
---
Advanced/CreatingWidgets.md | 63 +
Advanced/PublishingApps.md | 48 +
Adwaita.md | 164 ++
Basics/CreatingViews.md | 156 ++
Basics/KeyboardShortcuts.md | 115 ++
Basics/Windows.md | 137 ++
LICENSE.md | 674 ++++++++
README.md | 25 +
Resources/AppProject/ActiveConfiguration.png | Bin 0 -> 91417 bytes
.../AppProject/CloneTemplateSubtasks.png | Bin 0 -> 51728 bytes
Resources/AppProject/DesktopNew.desktop | 11 +
Resources/AppProject/DesktopOld.desktop | 11 +
Resources/AppProject/GroupRename.png | Bin 0 -> 45438 bytes
Resources/AppProject/GroupRename2.png | Bin 0 -> 39571 bytes
Resources/AppProject/MetainfoNew.xml | 25 +
Resources/AppProject/MetainfoOld.xml | 25 +
Resources/AppProject/OpenContainingFolder.png | Bin 0 -> 76477 bytes
Resources/AppProject/Rename.png | Bin 0 -> 53694 bytes
Resources/AppProject/Rename2.png | Bin 0 -> 37723 bytes
Resources/AppProject/RenameManifest.png | Bin 0 -> 107144 bytes
.../AppProject/RenameManifestContent.png | Bin 0 -> 81886 bytes
Resources/AppProject/ReplaceContent.png | Bin 0 -> 231887 bytes
Resources/AppProject/ReplaceContentName.png | Bin 0 -> 143380 bytes
Resources/Counter.png | Bin 0 -> 8629 bytes
Resources/Data.svg | 52 +
Resources/Declarative/Array1.swift | 1 +
Resources/Declarative/Array2.swift | 1 +
Resources/Declarative/Array3.swift | 6 +
Resources/Declarative/HelloWorld1.png | Bin 0 -> 10944 bytes
Resources/Declarative/HelloWorld1.swift | 19 +
Resources/Declarative/HelloWorld2.swift | 8 +
Resources/Essentials.svg | 148 ++
Resources/FinalSteps.svg | 39 +
Resources/Foundation.svg | 1492 +++++++++++++++++
Resources/GNOME.png | Bin 0 -> 6112 bytes
Resources/GNOME/Asahi.svg | 381 +++++
Resources/GNOME/GNOMELaptop.png | Bin 0 -> 1014096 bytes
Resources/GNOME/GNOMEMacBook.png | Bin 0 -> 426154 bytes
Resources/GNOME/Screenshot.png | Bin 0 -> 1818851 bytes
Resources/GNOME/SelectGNOME.png | Bin 0 -> 419366 bytes
Resources/GNOME/VanillaOS.png | Bin 0 -> 240564 bytes
Resources/HelloWorld/AdwaitaTemplate.png | Bin 0 -> 10355 bytes
Resources/HelloWorld/AdwaitaTemplate.swift | 23 +
Resources/HelloWorld/Builder.png | Bin 0 -> 93366 bytes
Resources/HelloWorld/ChangeDirectory.png | Bin 0 -> 21306 bytes
Resources/HelloWorld/GitClone.png | Bin 0 -> 54487 bytes
Resources/HelloWorld/InstallLibadwaita.png | Bin 0 -> 245566 bytes
Resources/HelloWorld/OpenFolder.png | Bin 0 -> 65479 bytes
Resources/HelloWorld/OpenXcode.png | Bin 0 -> 420742 bytes
Resources/HelloWorld/Package.swift | 31 +
...io.github.AparokshaUI.AdwaitaTemplate.json | 52 +
Resources/Installing/Export.png | Bin 0 -> 57126 bytes
Resources/Installing/Software.png | Bin 0 -> 40349 bytes
Resources/ModellingData/NewFile.png | Bin 0 -> 107884 bytes
Resources/ModellingData/Task1.swift | 0
Resources/ModellingData/Task2.swift | 8 +
Resources/ModellingData/Task3.swift | 12 +
Resources/ModellingData/Task4.swift | 12 +
Resources/ModellingData/Task5.swift | 18 +
Resources/ModellingData/Task6.swift | 18 +
Resources/ModellingData/Task7.swift | 21 +
Resources/ModellingData/Task8.swift | 25 +
Resources/Navigation/Array1.swift | 17 +
Resources/Navigation/Binding.swift | 14 +
Resources/Navigation/ContentView1.swift | 17 +
Resources/Navigation/ContentView2.swift | 18 +
Resources/Navigation/ContentView3.swift | 22 +
Resources/Navigation/ContentView4.swift | 22 +
Resources/Navigation/ContentView5.swift | 22 +
Resources/Navigation/ContentView6.swift | 22 +
Resources/Navigation/ContentView7.swift | 24 +
Resources/Navigation/ContentView8.swift | 24 +
Resources/Navigation/ContentView9.swift | 25 +
Resources/Navigation/Localized3.yml | 25 +
Resources/Navigation/Localized4.yml | 28 +
Resources/Navigation/Localized5.yml | 29 +
Resources/Navigation/Localized6.yml | 30 +
Resources/Navigation/Subtasks7.png | Bin 0 -> 7416 bytes
Resources/Navigation/Subtasks7.swift | 21 +
Resources/Navigation/Task10.swift | 29 +
Resources/Navigation/Task9.swift | 32 +
Resources/Navigation/TaskList23.swift | 103 ++
Resources/Navigation/TaskList24.swift | 103 ++
Resources/Navigation/TaskList25.swift | 104 ++
Resources/Navigation/TaskList26.png | Bin 0 -> 15681 bytes
Resources/Navigation/TaskList26.swift | 113 ++
Resources/Navigation/TaskList27.swift | 113 ++
Resources/Navigation/TaskList28.swift | 118 ++
Resources/Navigation/TaskList29.swift | 119 ++
Resources/Navigation/TaskList30.png | Bin 0 -> 18009 bytes
Resources/Navigation/TaskList30.swift | 119 ++
Resources/Navigation/TaskList31.swift | 119 ++
Resources/Overview.svg | 64 +
Resources/Polishing/ContentView10.swift | 29 +
Resources/Polishing/ContentView11.png | Bin 0 -> 15868 bytes
Resources/Polishing/ContentView11.swift | 34 +
Resources/Polishing/ContentView12.swift | 34 +
Resources/Polishing/ContentView13.swift | 35 +
Resources/Polishing/Localized7.png | Bin 0 -> 16748 bytes
Resources/Polishing/Localized7.yml | 33 +
Resources/Polishing/Subtasks8.png | Bin 0 -> 8602 bytes
Resources/Polishing/Subtasks8.swift | 20 +
Resources/Polishing/Subtasks9.swift | 22 +
Resources/Polishing/TaskList32.swift | 142 ++
Resources/Polishing/TaskList33.png | Bin 0 -> 15530 bytes
Resources/Polishing/TaskList33.swift | 148 ++
Resources/Polishing/TaskList34.swift | 157 ++
Resources/Swift.svg | 583 +++++++
Resources/TaskList/DeleteFile.png | Bin 0 -> 58340 bytes
Resources/TaskList/Localized1.yml | 1 +
Resources/TaskList/Localized2.yml | 13 +
Resources/TaskList/Subtasks1.swift | 23 +
Resources/TaskList/Subtasks2.swift | 25 +
Resources/TaskList/Subtasks3.swift | 30 +
Resources/TaskList/Subtasks4.png | Bin 0 -> 9655 bytes
Resources/TaskList/Subtasks4.swift | 29 +
Resources/TaskList/Subtasks5.png | Bin 0 -> 13343 bytes
Resources/TaskList/Subtasks5.swift | 26 +
Resources/TaskList/Subtasks6.swift | 26 +
Resources/TaskList/TaskList1.swift | 8 +
Resources/TaskList/TaskList10.png | Bin 0 -> 14796 bytes
Resources/TaskList/TaskList10.swift | 31 +
Resources/TaskList/TaskList11.png | Bin 0 -> 15362 bytes
Resources/TaskList/TaskList11.swift | 35 +
Resources/TaskList/TaskList12.png | Bin 0 -> 15302 bytes
Resources/TaskList/TaskList12.swift | 38 +
Resources/TaskList/TaskList13.swift | 42 +
Resources/TaskList/TaskList14.swift | 46 +
Resources/TaskList/TaskList15.png | Bin 0 -> 15360 bytes
Resources/TaskList/TaskList15.swift | 51 +
Resources/TaskList/TaskList16.png | Bin 0 -> 14252 bytes
Resources/TaskList/TaskList16.swift | 62 +
Resources/TaskList/TaskList17.png | Bin 0 -> 14913 bytes
Resources/TaskList/TaskList17.swift | 67 +
Resources/TaskList/TaskList18.png | Bin 0 -> 16442 bytes
Resources/TaskList/TaskList18.swift | 86 +
Resources/TaskList/TaskList19.swift | 93 +
Resources/TaskList/TaskList2.swift | 15 +
Resources/TaskList/TaskList20.swift | 95 ++
Resources/TaskList/TaskList21.swift | 95 ++
Resources/TaskList/TaskList22.swift | 96 ++
Resources/TaskList/TaskList3.swift | 17 +
Resources/TaskList/TaskList4.swift | 17 +
Resources/TaskList/TaskList5.png | Bin 0 -> 11242 bytes
Resources/TaskList/TaskList5.swift | 19 +
Resources/TaskList/TaskList6.swift | 21 +
Resources/TaskList/TaskList7.png | Bin 0 -> 12413 bytes
Resources/TaskList/TaskList7.swift | 23 +
Resources/TaskList/TaskList8.png | Bin 0 -> 12398 bytes
Resources/TaskList/TaskList8.swift | 24 +
Resources/TaskList/TaskList9.png | Bin 0 -> 14779 bytes
Resources/TaskList/TaskList9.swift | 30 +
Resources/Tasks.svg | 814 +++++++++
Resources/UI.svg | 48 +
Resources/Views/AdwaitaTemplate1.swift | 23 +
Resources/Views/AdwaitaTemplate2.swift | 34 +
Resources/Views/AdwaitaTemplate3.swift | 38 +
Resources/Views/AdwaitaTemplate4.swift | 39 +
Resources/Views/AdwaitaTemplate5.swift | 49 +
Tutorial/Data/AppFlatpakData.tutorial | 91 +
Tutorial/Data/Flatpak.tutorial | 9 +
Tutorial/Data/TasksData.tutorial | 75 +
Tutorial/Essentials/Documentation.tutorial | 39 +
Tutorial/Essentials/HelloWorld.tutorial | 82 +
Tutorial/Essentials/Views.tutorial | 122 ++
Tutorial/FinalSteps/Install.tutorial | 33 +
Tutorial/GNOME/Contributing.tutorial | 40 +
Tutorial/GNOME/GNOME.tutorial | 32 +
Tutorial/GNOME/SetUpGNOME.tutorial | 54 +
.../Swift/DeclarativeProgramming.tutorial | 65 +
Tutorial/Swift/LearnSwift.tutorial | 262 +++
Tutorial/Table of Contents.tutorial | 78 +
Tutorial/UserInterface/Details.tutorial | 118 ++
Tutorial/UserInterface/Navigation.tutorial | 226 +++
Tutorial/UserInterface/TaskView.tutorial | 264 +++
theme-settings.json | 46 +
176 files changed, 10419 insertions(+)
create mode 100644 Advanced/CreatingWidgets.md
create mode 100644 Advanced/PublishingApps.md
create mode 100644 Adwaita.md
create mode 100644 Basics/CreatingViews.md
create mode 100644 Basics/KeyboardShortcuts.md
create mode 100644 Basics/Windows.md
create mode 100644 LICENSE.md
create mode 100644 README.md
create mode 100644 Resources/AppProject/ActiveConfiguration.png
create mode 100644 Resources/AppProject/CloneTemplateSubtasks.png
create mode 100644 Resources/AppProject/DesktopNew.desktop
create mode 100644 Resources/AppProject/DesktopOld.desktop
create mode 100644 Resources/AppProject/GroupRename.png
create mode 100644 Resources/AppProject/GroupRename2.png
create mode 100644 Resources/AppProject/MetainfoNew.xml
create mode 100644 Resources/AppProject/MetainfoOld.xml
create mode 100644 Resources/AppProject/OpenContainingFolder.png
create mode 100644 Resources/AppProject/Rename.png
create mode 100644 Resources/AppProject/Rename2.png
create mode 100644 Resources/AppProject/RenameManifest.png
create mode 100644 Resources/AppProject/RenameManifestContent.png
create mode 100644 Resources/AppProject/ReplaceContent.png
create mode 100644 Resources/AppProject/ReplaceContentName.png
create mode 100644 Resources/Counter.png
create mode 100644 Resources/Data.svg
create mode 100644 Resources/Declarative/Array1.swift
create mode 100644 Resources/Declarative/Array2.swift
create mode 100644 Resources/Declarative/Array3.swift
create mode 100644 Resources/Declarative/HelloWorld1.png
create mode 100644 Resources/Declarative/HelloWorld1.swift
create mode 100644 Resources/Declarative/HelloWorld2.swift
create mode 100644 Resources/Essentials.svg
create mode 100644 Resources/FinalSteps.svg
create mode 100644 Resources/Foundation.svg
create mode 100644 Resources/GNOME.png
create mode 100644 Resources/GNOME/Asahi.svg
create mode 100644 Resources/GNOME/GNOMELaptop.png
create mode 100644 Resources/GNOME/GNOMEMacBook.png
create mode 100644 Resources/GNOME/Screenshot.png
create mode 100644 Resources/GNOME/SelectGNOME.png
create mode 100644 Resources/GNOME/VanillaOS.png
create mode 100644 Resources/HelloWorld/AdwaitaTemplate.png
create mode 100644 Resources/HelloWorld/AdwaitaTemplate.swift
create mode 100644 Resources/HelloWorld/Builder.png
create mode 100644 Resources/HelloWorld/ChangeDirectory.png
create mode 100644 Resources/HelloWorld/GitClone.png
create mode 100644 Resources/HelloWorld/InstallLibadwaita.png
create mode 100644 Resources/HelloWorld/OpenFolder.png
create mode 100644 Resources/HelloWorld/OpenXcode.png
create mode 100644 Resources/HelloWorld/Package.swift
create mode 100644 Resources/HelloWorld/io.github.AparokshaUI.AdwaitaTemplate.json
create mode 100644 Resources/Installing/Export.png
create mode 100644 Resources/Installing/Software.png
create mode 100644 Resources/ModellingData/NewFile.png
create mode 100644 Resources/ModellingData/Task1.swift
create mode 100644 Resources/ModellingData/Task2.swift
create mode 100644 Resources/ModellingData/Task3.swift
create mode 100644 Resources/ModellingData/Task4.swift
create mode 100644 Resources/ModellingData/Task5.swift
create mode 100644 Resources/ModellingData/Task6.swift
create mode 100644 Resources/ModellingData/Task7.swift
create mode 100644 Resources/ModellingData/Task8.swift
create mode 100644 Resources/Navigation/Array1.swift
create mode 100644 Resources/Navigation/Binding.swift
create mode 100644 Resources/Navigation/ContentView1.swift
create mode 100644 Resources/Navigation/ContentView2.swift
create mode 100644 Resources/Navigation/ContentView3.swift
create mode 100644 Resources/Navigation/ContentView4.swift
create mode 100644 Resources/Navigation/ContentView5.swift
create mode 100644 Resources/Navigation/ContentView6.swift
create mode 100644 Resources/Navigation/ContentView7.swift
create mode 100644 Resources/Navigation/ContentView8.swift
create mode 100644 Resources/Navigation/ContentView9.swift
create mode 100644 Resources/Navigation/Localized3.yml
create mode 100644 Resources/Navigation/Localized4.yml
create mode 100644 Resources/Navigation/Localized5.yml
create mode 100644 Resources/Navigation/Localized6.yml
create mode 100644 Resources/Navigation/Subtasks7.png
create mode 100644 Resources/Navigation/Subtasks7.swift
create mode 100644 Resources/Navigation/Task10.swift
create mode 100644 Resources/Navigation/Task9.swift
create mode 100644 Resources/Navigation/TaskList23.swift
create mode 100644 Resources/Navigation/TaskList24.swift
create mode 100644 Resources/Navigation/TaskList25.swift
create mode 100644 Resources/Navigation/TaskList26.png
create mode 100644 Resources/Navigation/TaskList26.swift
create mode 100644 Resources/Navigation/TaskList27.swift
create mode 100644 Resources/Navigation/TaskList28.swift
create mode 100644 Resources/Navigation/TaskList29.swift
create mode 100644 Resources/Navigation/TaskList30.png
create mode 100644 Resources/Navigation/TaskList30.swift
create mode 100644 Resources/Navigation/TaskList31.swift
create mode 100644 Resources/Overview.svg
create mode 100644 Resources/Polishing/ContentView10.swift
create mode 100644 Resources/Polishing/ContentView11.png
create mode 100644 Resources/Polishing/ContentView11.swift
create mode 100644 Resources/Polishing/ContentView12.swift
create mode 100644 Resources/Polishing/ContentView13.swift
create mode 100644 Resources/Polishing/Localized7.png
create mode 100644 Resources/Polishing/Localized7.yml
create mode 100644 Resources/Polishing/Subtasks8.png
create mode 100644 Resources/Polishing/Subtasks8.swift
create mode 100644 Resources/Polishing/Subtasks9.swift
create mode 100644 Resources/Polishing/TaskList32.swift
create mode 100644 Resources/Polishing/TaskList33.png
create mode 100644 Resources/Polishing/TaskList33.swift
create mode 100644 Resources/Polishing/TaskList34.swift
create mode 100644 Resources/Swift.svg
create mode 100644 Resources/TaskList/DeleteFile.png
create mode 100644 Resources/TaskList/Localized1.yml
create mode 100644 Resources/TaskList/Localized2.yml
create mode 100644 Resources/TaskList/Subtasks1.swift
create mode 100644 Resources/TaskList/Subtasks2.swift
create mode 100644 Resources/TaskList/Subtasks3.swift
create mode 100644 Resources/TaskList/Subtasks4.png
create mode 100644 Resources/TaskList/Subtasks4.swift
create mode 100644 Resources/TaskList/Subtasks5.png
create mode 100644 Resources/TaskList/Subtasks5.swift
create mode 100644 Resources/TaskList/Subtasks6.swift
create mode 100644 Resources/TaskList/TaskList1.swift
create mode 100644 Resources/TaskList/TaskList10.png
create mode 100644 Resources/TaskList/TaskList10.swift
create mode 100644 Resources/TaskList/TaskList11.png
create mode 100644 Resources/TaskList/TaskList11.swift
create mode 100644 Resources/TaskList/TaskList12.png
create mode 100644 Resources/TaskList/TaskList12.swift
create mode 100644 Resources/TaskList/TaskList13.swift
create mode 100644 Resources/TaskList/TaskList14.swift
create mode 100644 Resources/TaskList/TaskList15.png
create mode 100644 Resources/TaskList/TaskList15.swift
create mode 100644 Resources/TaskList/TaskList16.png
create mode 100644 Resources/TaskList/TaskList16.swift
create mode 100644 Resources/TaskList/TaskList17.png
create mode 100644 Resources/TaskList/TaskList17.swift
create mode 100644 Resources/TaskList/TaskList18.png
create mode 100644 Resources/TaskList/TaskList18.swift
create mode 100644 Resources/TaskList/TaskList19.swift
create mode 100644 Resources/TaskList/TaskList2.swift
create mode 100644 Resources/TaskList/TaskList20.swift
create mode 100644 Resources/TaskList/TaskList21.swift
create mode 100644 Resources/TaskList/TaskList22.swift
create mode 100644 Resources/TaskList/TaskList3.swift
create mode 100644 Resources/TaskList/TaskList4.swift
create mode 100644 Resources/TaskList/TaskList5.png
create mode 100644 Resources/TaskList/TaskList5.swift
create mode 100644 Resources/TaskList/TaskList6.swift
create mode 100644 Resources/TaskList/TaskList7.png
create mode 100644 Resources/TaskList/TaskList7.swift
create mode 100644 Resources/TaskList/TaskList8.png
create mode 100644 Resources/TaskList/TaskList8.swift
create mode 100644 Resources/TaskList/TaskList9.png
create mode 100644 Resources/TaskList/TaskList9.swift
create mode 100644 Resources/Tasks.svg
create mode 100644 Resources/UI.svg
create mode 100644 Resources/Views/AdwaitaTemplate1.swift
create mode 100644 Resources/Views/AdwaitaTemplate2.swift
create mode 100644 Resources/Views/AdwaitaTemplate3.swift
create mode 100644 Resources/Views/AdwaitaTemplate4.swift
create mode 100644 Resources/Views/AdwaitaTemplate5.swift
create mode 100644 Tutorial/Data/AppFlatpakData.tutorial
create mode 100644 Tutorial/Data/Flatpak.tutorial
create mode 100644 Tutorial/Data/TasksData.tutorial
create mode 100644 Tutorial/Essentials/Documentation.tutorial
create mode 100644 Tutorial/Essentials/HelloWorld.tutorial
create mode 100644 Tutorial/Essentials/Views.tutorial
create mode 100644 Tutorial/FinalSteps/Install.tutorial
create mode 100644 Tutorial/GNOME/Contributing.tutorial
create mode 100644 Tutorial/GNOME/GNOME.tutorial
create mode 100644 Tutorial/GNOME/SetUpGNOME.tutorial
create mode 100644 Tutorial/Swift/DeclarativeProgramming.tutorial
create mode 100644 Tutorial/Swift/LearnSwift.tutorial
create mode 100644 Tutorial/Table of Contents.tutorial
create mode 100644 Tutorial/UserInterface/Details.tutorial
create mode 100644 Tutorial/UserInterface/Navigation.tutorial
create mode 100644 Tutorial/UserInterface/TaskView.tutorial
create mode 100644 theme-settings.json
diff --git a/Advanced/CreatingWidgets.md b/Advanced/CreatingWidgets.md
new file mode 100644
index 0000000..27f55e9
--- /dev/null
+++ b/Advanced/CreatingWidgets.md
@@ -0,0 +1,63 @@
+# Creating widgets
+
+Widgets are special views that do not provide a collection of other views as a content,
+but have functions that are called when creating or updating the view.
+Normally, a widget manages a GTK or Libadwaita widget using the C API.
+
+## Recreate the Text widget
+In this tutorial, we will recreate the ``Text`` widget.
+A widget conforms to the ``Widget`` protocol:
+```swift
+struct CustomText: Widget { }
+```
+You can add properties to the widget:
+```swift
+struct CustomText: Widget {
+
+ var text: String
+
+}
+```
+This widget can be called in a view body using `CustomText(text: "Hello, world!")`.
+Now, add the two functions required by the protocol:
+```swift
+import CAdw
+
+struct CustomText: Widget {
+
+ var text: String
+
+ public func container(modifiers: [(View) -> View]) -> ViewStorage { }
+ public func update(_ storage: ViewStorage, modifiers: [(View) -> View], updateProperties: Bool) { }
+
+}
+```
+Import CAdw which exposes the whole C Libadwaita and Gtk API to Swift.
+
+## The `container(modifiers:)` function
+This function initializes the widget when the widget appears for the first time.
+It expects a ``ViewStorage`` as the return type.
+In our case, this function is very simple:
+```swift
+func container(modifiers: [(View) -> View]) -> ViewStorage {
+ .init(gtk_label_new(text)?.opaque())
+}
+```
+
+## The `update(_:modifiers:updateProperties:)` function
+Whenever a state of the app changes, the ``Widget/update(_:modifiers:updateProperties:)`` function of the widget gets called.
+You get the view storage that you have previously initialized as a parameter.
+Update the storage to reflect the current state of the widget:
+```swift
+func update(_ storage: ViewStorage, modifiers: [(View) -> View], updateProperties: Bool) {
+ if updateProperties {
+ gtk_label_set_label(storage.pointer, text)
+ }
+}
+```
+
+## Containers
+Some widgets act as containers that accept other widgets as children.
+In that case, use the ``ViewStorage``'s `content` property for storing their view storages.
+In the ``Widget/update(_:modifiers:updateProperties:)`` function, update the children's storages.
+Take a look at the code of the container widgets in this library as a reference.
diff --git a/Advanced/PublishingApps.md b/Advanced/PublishingApps.md
new file mode 100644
index 0000000..958ae3a
--- /dev/null
+++ b/Advanced/PublishingApps.md
@@ -0,0 +1,48 @@
+# Publishing apps
+
+Learn how to publish your apps using Flatpak.
+
+Once you feel ready to publish your app to [Flathub](https://flathub.org/), or
+to a [self-hosted repository](https://docs.flatpak.org/en/latest/hosting-a-repository.html),
+you can follow this step-by-step guide.
+
+## Create a Flatpak manifest
+You have to create a Flatpak manifest, similar to the one [here](https://github.com/flathub/io.github.david_swift.Flashcards/blob/master/io.github.david_swift.Flashcards.json).
+Find detailed information in the [Flatpak documentation](https://docs.flatpak.org/en/latest/manifests.html).
+This is the only code that should be submitted to Flathub.
+There will be a new repository created under `flathub/app-id` that hosts the manifest.
+
+### SDK Extension for Swift 5
+I recommend using the SDK Extension for building the app.
+Add the following snippet.
+
+```json
+"sdk-extensions": [
+ "org.freedesktop.Sdk.Extension.swift5"
+]
+```
+
+### Generate sources for the Swift Package Manager
+You cannot access the web while building the app.
+Therefore, you need to add all the dependencies as modules to the manifest file.
+This can be automated using the [Flatpak builder tool for SPM](https://github.com/flatpak/flatpak-builder-tools/tree/master/spm).
+
+## MetaInfo file
+In the Flatpak Manifest file, under the build commands, you should add the [code to install the app's
+MetaInfo file](https://github.com/flathub/io.github.david_swift.Flashcards/blob/c5c0421ffb5589641ddb44a269a6e7e07d430581/io.github.david_swift.Flashcards.json#L49).
+The MetaInfo file is located in the app's main repository (not in the Flathub repository).
+Take a look at the example [here](https://github.com/david-swift/Memorize/blob/main/data/io.github.david_swift.Flashcards.metainfo.xml).
+
+## Desktop entry file
+[This line](https://github.com/flathub/io.github.david_swift.Flashcards/blob/c5c0421ffb5589641ddb44a269a6e7e07d430581/io.github.david_swift.Flashcards.json#L50) in the example installs the Desktop Entry file.
+It is located in the [main repository](https://github.com/david-swift/Memorize/blob/main/data/io.github.david_swift.Flashcards.desktop).
+
+## Check the requirements
+Before submitting an app to Flathub, make sure to check the [requirements](https://docs.flathub.org/docs/for-app-authors/requirements),
+[MetaInfo guidelines](https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines/), and [quality guidelines](https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines/quality-guidelines).
+Then, test and submit the app following the [submission instructions](https://docs.flathub.org/docs/for-app-authors/submission).
+
+## Get the badges
+Use the [Flathub badges](https://flathub.org/badges) to inform users about the simple installation option.
+Even more assets are available [here](https://github.com/flathub-infra/assets).
+
diff --git a/Adwaita.md b/Adwaita.md
new file mode 100644
index 0000000..f728126
--- /dev/null
+++ b/Adwaita.md
@@ -0,0 +1,164 @@
+# ``Adwaita``
+
+_Adwaita for Swift_ is a framework for creating user interfaces for GNOME with an API similar to SwiftUI.
+
+## Overview
+
+Write user interfaces in a declarative way.
+
+As an example, the following code defines a _view_ (more information: ``View``).
+
+```swift
+struct Counter: View {
+
+ @State private var count = 0
+
+ var view: Body {
+ HStack {
+ Button(icon: .default(icon: .goPrevious)) {
+ count -= 1
+ }
+ Text("\(count)")
+ .style("title-1")
+ .frame(minWidth: 100)
+ Button(icon: .default(icon: .goNext)) {
+ count += 1
+ }
+ }
+ }
+
+}
+```
+
+A view can be implemented in different ways, the following screenshot showing an example.
+
+
+
+## Goals
+
+_Adwaita for Swift_'s main goal is to provide an easy-to-use interface for creating apps for the GNOME ecosystem.
+An article about the project's motivation is available on the [website of the Swift programming language](https://www.swift.org/blog/adwaita-swift/).
+
+## Installation
+
+### Dependencies
+
+#### Flatpak
+
+It is recommended to develop apps inside of a Flatpak.
+That way, you don't have to install Swift or any of the dependencies on your system, and you always have access to the latest versions.
+Take a look at the [template repository](https://github.com/AparokshaUI/AdwaitaTemplate).
+This works on Linux only.
+
+#### Directly on system
+
+You can also run your apps directly on the system.
+
+If you are using a Linux distribution, install `libadwaita-devel` or `libadwaita` (or something similar, based on the package manager) as well as `gtk4-devel`, `gtk4` or similar.
+
+On macOS, follow these steps:
+1. Install [Homebrew](https://brew.sh).
+2. Install Libadwaita (and thereby GTK 4):
+```
+brew install libadwaita
+```
+
+### Swift package
+1. Open your Swift package in GNOME Builder, Xcode, or any other IDE.
+2. Open the `Package.swift` file.
+3. Into the `Package` initializer, under `dependencies`, paste:
+```swift
+.package(url: "https://github.com/AparokshaUI/Adwaita", from: "0.1.0")
+```
+
+## Template repository
+
+It is recommended to develop apps on Linux inside a Flatpak.
+Find more information in the [template repository](https://github.com/AparokshaUI/AdwaitaTemplate).
+
+## Topics
+
+### Tutorials
+
+-
+
+### Basics
+
+-
+-
+-
+
+### Advanced
+
+-
+-
+
+### Views
+
+- ``ActionRow``
+- ``AlertDialog``
+- ``Avatar``
+- ``Banner``
+- ``Bin``
+- ``Box``
+- ``Button``
+- ``ButtonContent``
+- ``Carousel``
+- ``CenterBox``
+- ``CheckButton``
+- ``Clamp``
+- ``ComboRow``
+- ``EntryRow``
+- ``ExpanderRow``
+- ``FlowBox``
+- ``ForEach``
+- ``Form``
+- ``FormSection``
+- ``HStack``
+- ``HeaderBar``
+- ``Label``
+- ``LevelBar``
+- ``LinkButton``
+- ``List``
+- ``ListBox``
+- ``Menu``
+- ``NavigationSplitView``
+- ``NavigationView``
+- ``Overlay``
+- ``OverlaySplitView``
+- ``PasswordEntryRow``
+- ``Popover``
+- ``PreferencesGroup``
+- ``PreferencesPage``
+- ``PreferencesRow``
+- ``ProgressBar``
+- ``ScrolledWindow``
+- ``ScrollView``
+- ``SearchBar``
+- ``SearchEntry``
+- ``SpinRow``
+- ``Spinner``
+- ``SplitButton``
+- ``StatusPage``
+- ``SwitchRow``
+- ``Text``
+- ``ToastOverlay``
+- ``Toggle``
+- ``ToggleButton``
+- ``ToolbarView``
+- ``ViewStack``
+- ``ViewSwitcher``
+- ``VStack``
+- ``WindowTitle``
+
+### Windows
+
+- ``AboutWindow``
+- ``FileDialog``
+- ``Window``
+
+### Menus
+
+- ``MenuButton``
+- ``MenuSection``
+- ``Submenu``
diff --git a/Basics/CreatingViews.md b/Basics/CreatingViews.md
new file mode 100644
index 0000000..f27faaa
--- /dev/null
+++ b/Basics/CreatingViews.md
@@ -0,0 +1,156 @@
+# Creating views
+
+Views are the building blocks of your application.
+A view can be as simple as the ``Text`` widget, or as complex as the whole content of a single window.
+
+## Add views to a window
+You can add views to a window:
+```swift
+import Adwaita
+
+@main
+struct HelloWorld: App {
+
+ let id = "io.github.david_swift.HelloWorld"
+ var app: GTUIApp!
+
+ var scene: Scene {
+ Window(id: "content") { _ in
+ // These are the views:
+ HeaderBar.empty()
+ Text("Hello, world!")
+ .padding()
+ }
+ }
+
+}
+```
+
+In this example, the widgets ``HeaderBar`` and ``Text`` are used.
+`padding` is a view modifier, a function that modifies a view, which adds some padding around the text.
+
+## Create custom views
+While directly adding widgets into the ``Window``'s body might work for very simple apps,
+it can get messy very quickly.
+Create custom views by declaring types that conform to the ``View`` protocol:
+```swift
+// A custom view named "ContentView":
+struct ContentView: View {
+
+ var view: Body {
+ HeaderBar.empty()
+ Text("Hello, world!")
+ .padding()
+ }
+
+}
+```
+
+## Properties
+As every structure in Swift, custom views can have properties:
+```swift
+struct HelloView: View {
+
+ // The property "text":
+ var text: String
+ var view: Body {
+ Text("Hello, \(text)!")
+ .padding()
+ }
+
+}
+```
+This view can be called via `HelloView(text: "world")` in another view.
+
+## State
+Whenever you want to modify a property that is stored in the view's structure from within your view,
+wrap the property with the ``State`` property wrapper:
+```swift
+struct MyView: View {
+
+ // This property can be modified form within the view:
+ @State private var text = "world"
+ var view: Body {
+ Text("Hello, \(text)!")
+ .padding()
+ Button("Change Text") {
+ text = Bool.random() ? "world" : "John"
+ }
+ .padding(10, .horizontal.add(.bottom))
+ }
+
+}
+```
+In this example, the text property is set whenever you press the "Change Text" button.
+
+## Change the state in child views
+You can access state properties in child views in the same way as you would access any other property
+if the child view cannot modify the state (`HelloView` is defined above):
+```swift
+struct MyView: View {
+
+ @State private var text = "world"
+ var view: Body {
+ // "HelloView" can read the "text" property:
+ HelloView(text: text)
+ Button("Change Text") {
+ text = Bool.random() ? "world" : "John"
+ }
+ .padding(10, .horizontal.add(.bottom))
+ }
+
+}
+```
+
+If the child view should be able to modify the state, use the ``Binding`` property wrapper in the child view
+and pass the property with a dollar sign (`$`) to that view.
+```swift
+struct MyView: View {
+
+ @State private var text = "world"
+ var view: Body {
+ HelloView(text: text)
+ // Pass the editable text property to the child view:
+ ChangeTextView(text: $text)
+ }
+
+}
+
+struct ChangeTextView: View {
+
+ // Accept the editable text property:
+ @Binding var text: String
+ var view: Body {
+ Button("Change Text") {
+ // Binding properties can be used the same way as state properties:
+ text = Bool.random() ? "world" : "John"
+ }
+ .padding(10, .horizontal.add(.bottom))
+ }
+
+}
+```
+
+If you have a more complex type and want to pass a property of the type as a binding,
+you can simply access the property on the binding.
+
+```swift
+HelloView(text: $complexType.text)
+```
+
+Whenever you modify a state property (directly or indirectly through bindings),
+the user interface gets automatically updated to reflect that change.
+
+## Save state values between app launches
+It's possible to automatically save a value that conforms to `Codable` whenever it changes to a file.
+The value in the file is read when the view containing the state value appears for the first time (e.g. when the user launches the app).
+
+Use the following syntax, where `"text"` is a unique identifier.
+```swift
+@State("text") private var text = "world"
+```
+
+You can organize your content by specifying a custom folder path which will be appended to the XDG data home directory.
+```swift
+@State("text", folder: "io.github.david_swift.HelloWorld/my-view") private var text = "world"
+```
diff --git a/Basics/KeyboardShortcuts.md b/Basics/KeyboardShortcuts.md
new file mode 100644
index 0000000..3fdb11b
--- /dev/null
+++ b/Basics/KeyboardShortcuts.md
@@ -0,0 +1,115 @@
+# Keyboard shortcuts
+
+Keyboard shortcuts can be attached to individual windows or whole applications.
+
+## About keyboard shortcuts
+Keyboard shortcuts are represented as a `String`.
+You can add a single character by adding itself to the string, e.g. `"n"`.
+The F keys are written as `"F1"`, `"F2"`, etc.
+For character keys, write the lowercase name instead of the symbol, such as `"minus"` instead of `"-"`.
+
+Add modifiers to the shortcut using the following string modifiers:
+- `.shift()`
+- `.ctrl()`
+- `.alt()`
+- `.meta()`
+- `.super()`
+- `.hyper()`
+
+As an example, the following syntax represents the `Ctrl + N` shortcut: `"n".ctrl()`.
+
+## Add shortcuts to a window
+Add a keyboard shortcut to an invividual window. It is only available in that window.
+```swift
+import Adwaita
+
+@main
+struct HelloWorld: App {
+
+ let id = "io.github.david_swift.HelloWorld"
+ var app: GTUIApp!
+
+ var scene: Scene {
+ Window(id: "content") { _ in
+ HeaderBar.empty()
+ Text("Hello, world!")
+ .padding()
+ }
+ // Add the shortcut "Ctrl + W" for closing the window
+ .keyboardShortcut("w".ctrl()) { window in
+ window.close()
+ }
+ }
+
+}
+```
+
+## Add shortcuts to an app
+Add a keyboard to an app so that the shortcut is available in every top-level window.
+```swift
+import Adwaita
+
+@main
+struct HelloWorld: App {
+
+ let id = "io.github.david_swift.HelloWorld"
+ var app: GTUIApp!
+
+ var scene: Scene {
+ Window(id: "content") { _ in
+ HeaderBar.empty()
+ Text("Hello, world!")
+ .padding()
+ }
+ // Add the shortcut "Ctrl + Q" for terminating the app
+ .appKeyboardShortcut("q".ctrl()) { app in
+ app.quit()
+ }
+ }
+
+}
+```
+
+## Create shortcuts from a menu
+The most elegant way for adding keyboard shortcuts is in many cases adding them via menus.
+Here is an example using a menu button:
+```swift
+struct TestView: View {
+
+ var app: GTUIApp
+
+ var view: Body {
+ Menu(icon: .default(icon: .openMenu), app: app) {
+ MenuButton("New Window", window: false) {
+ app.addWindow("main")
+ }
+ // Add a keyboard shortcut to the app.
+ .keyboardShortcut("n".ctrl())
+ }
+ }
+
+}
+```
+Add the keyboard shortcut to a single window by specifying the `window` parameter in the initializer of `Menu`,
+and removing `window: false` in the initializer of `MenuButton`.
+
+## Create shortcuts from a button
+It's possible to easily create a keyboard shortcut from a button.
+Use `appKeyboardShortcut` instead of `keyboardShortcut` for shortcuts on an application level.
+Note that the shortcut gets activated after presenting the view for the first time.
+```swift
+struct HelloView: View {
+
+ var window: GTUIWindow
+
+ var view: Body {
+ Button("New Item") {
+ print("New Item")
+ }
+ // Add a keyboard shortcut to the window "window".
+ .keyboardShortcut("n".ctrl().shift(), window: window)
+ }
+
+}
+```
+
diff --git a/Basics/Windows.md b/Basics/Windows.md
new file mode 100644
index 0000000..b36e5ee
--- /dev/null
+++ b/Basics/Windows.md
@@ -0,0 +1,137 @@
+# Windows
+
+Windows in _Adwaita_ are not actually single windows in the user interface,
+but rather instructions on how to create one type of window.
+
+## The simplest case
+A single window app is an app having exactly one window, and when this window is closed, the app terminates.
+We can add multiple windows to an app as well.
+Whenever the last one disappears, the app terminates.
+```swift
+@main
+struct HelloWorld: App {
+
+ let id = "io.github.david_swift.HelloWorld"
+ var app: GTUIApp!
+
+ var scene: Scene {
+ Window(id: "content") { _ in
+ HeaderBar.empty()
+ Text("Hello, world!")
+ .padding()
+ }
+ // Add a second window:
+ Window(id: "window-2") { _ in
+ HeaderBar.empty()
+ Text("Window 2")
+ .padding()
+ }
+ }
+
+}
+```
+
+## Showing windows
+Every app contains the property ``App/app``.
+You can use this property for running functions that affect the whole app, e.g. quitting the app.
+Another use case is showing a window:
+```swift
+@main
+struct HelloWorld: App {
+
+ let id = "io.github.david_swift.HelloWorld"
+ var app: GTUIApp!
+
+ var scene: Scene {
+ Window(id: "content") { _ in
+ HeaderBar.empty()
+ Text("Hello, world!")
+ .padding()
+ }
+ Window(id: "control") { _ in
+ HeaderBar.empty()
+ Button("Show Window") {
+ // Show the window with the identifier "content":
+ app.showWindow("content")
+ }
+ .padding()
+ }
+ }
+
+}
+```
+"Showing" a window means creating an instance of the window type if there isn't one,
+or focusing the window that already exists of that type otherwise.
+It should be used for opening windows that cannot be presented more than once
+and for moving a window that is already open into the foreground.
+
+## Adding windows
+You can call the ``GTUIApp/addWindow(_:parent:)`` function instead of ``GTUIApp/showWindow(_:)``
+if you want to add and focus another instance of a window type:
+```swift
+@main
+struct HelloWorld: App {
+
+ let id = "io.github.david_swift.HelloWorld"
+ var app: GTUIApp!
+
+ var scene: Scene {
+ Window(id: "content") { _ in
+ HeaderBar.empty()
+ Text("Hello, world!")
+ .padding()
+ }
+ Window(id: "control") { _ in
+ HeaderBar.empty()
+ Button("Add Window") {
+ // Add a new instance of the "content" window type
+ app.addWindow("content")
+ }
+ .padding()
+ }
+ }
+
+}
+```
+It can be used to add an overlay window to a certain instance of a window type
+by specifying the `parent` parameter, e.g. in the example above:
+```swift
+Window(id: "control") { window in
+ HeaderBar.empty()
+ Button("Add Child Window") {
+ // Add the new instance as a child window of this window
+ app.addWindow("content", parent: window)
+ }
+ .padding()
+}
+```
+
+## Customizing the initial number of windows
+By default, every window type of the app's scene appears once when the app starts.
+It's possible to customize how many windows are being presented at the app's startup:
+```swift
+@main
+struct HelloWorld: App {
+
+ let id = "io.github.david_swift.HelloWorld"
+ var app: GTUIApp!
+
+ var scene: Scene {
+ // Open no window of the "content" type
+ Window(id: "content", open: 0) { _ in
+ HeaderBar.empty()
+ Text("Hello, world!")
+ .padding()
+ }
+ // Open two windows of the "control" type
+ Window(id: "control", open: 2) { _ in
+ HeaderBar.empty()
+ Button("Show Window") {
+ app.addWindow("content")
+ }
+ .padding()
+ }
+ }
+
+}
+```
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..92b370f
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,674 @@
+GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..40ff0cb
--- /dev/null
+++ b/README.md
@@ -0,0 +1,25 @@
+
+
Adwaita.docc
+
+
+
+
+ Documentation
+
+ ·
+
+ Adwaita for Swift on GitHub
+
+
+
+This repository contains documentation for [Adwaita for Swift](https://github.com/AparokshaUI/Adwaita). It is hosted [here](https://aparokshaui.github.io/adwaita-swift/).
+
+## Thanks
+
+- This is built using [swift-docc](https://github.com/apple/swift-docc)
+- Some symbolic icons are from the [GNOME icon library](https://gitlab.gnome.org/World/design/icon-library)
+- The colored images representing whole tutorials are inspired by [GNOME app illustrations](https://gitlab.gnome.org/Teams/Design/app-illustrations)
+- The GNOME logo has been downloaded from the [GNOME website](https://brand.gnome.org/)
+- The Swift logo has been downloaded form the [Swift website](https://developer.apple.com/swift/resources/)
+- The laptop image showing the Asahi logo has been downloaded from the [Asahi Linux website](https://asahilinux.org/)
+
diff --git a/Resources/AppProject/ActiveConfiguration.png b/Resources/AppProject/ActiveConfiguration.png
new file mode 100644
index 0000000000000000000000000000000000000000..83391f6a48ab40e4f6c4440d6fd97a41e77ec24e
GIT binary patch
literal 91417
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