From 8ad34dd199317e36df263d44faabb2561b71c6fc Mon Sep 17 00:00:00 2001 From: david-swift Date: Sun, 31 Mar 2024 20:51:03 +0200 Subject: [PATCH] Remove deprecated documentation sources and references --- .spi.yml | 5 +- CONTRIBUTING.md | 4 +- Documentation/Reference/README.md | 176 -- .../Reference/classes/GTUIAboutWindow.md | 30 - Documentation/Reference/classes/GTUIApp.md | 80 - .../classes/GTUIApplicationWindow.md | 29 - .../Reference/classes/GTUIFileDialog.md | 77 - Documentation/Reference/classes/GTUIWindow.md | 69 - .../Reference/classes/State.Content.md | 16 - .../Reference/classes/State.Storage.md | 29 - .../classes/ViewStorage.SignalData.md | 37 - .../Reference/classes/ViewStorage.md | 76 - .../Reference/classes/WindowStorage.md | 35 - Documentation/Reference/enums/Alignment.md | 35 - .../Reference/enums/ArrayBuilder.Component.md | 14 - Documentation/Reference/enums/ArrayBuilder.md | 75 - Documentation/Reference/enums/Edge.md | 22 - .../Reference/enums/Icon.DefaultIcon.md | 1431 ----------------- Documentation/Reference/enums/Icon.md | 21 - .../Reference/enums/NavigationView.Action.md | 14 - Documentation/Reference/enums/Transition.md | 25 - .../Reference/enums/UpdateManager.md | 16 - .../Reference/enums/ViewBuilder.Component.md | 14 - Documentation/Reference/enums/ViewBuilder.md | 54 - .../Reference/extensions/ActionRow.md | 9 - Documentation/Reference/extensions/App.md | 8 - Documentation/Reference/extensions/Array.md | 38 - Documentation/Reference/extensions/Banner.md | 19 - Documentation/Reference/extensions/Binding.md | 11 - Documentation/Reference/extensions/Bool.md | 8 - Documentation/Reference/extensions/Box.md | 9 - Documentation/Reference/extensions/Button.md | 39 - .../Reference/extensions/Carousel.md | 10 - Documentation/Reference/extensions/Clamp.md | 9 - .../Reference/extensions/ComboRow.md | 17 - .../Reference/extensions/EntryRow.md | 26 - Documentation/Reference/extensions/FlowBox.md | 21 - .../Reference/extensions/FormSection.md | 17 - .../Reference/extensions/GTUIWindow.md | 9 - .../Reference/extensions/HeaderBar.md | 35 - Documentation/Reference/extensions/Int.md | 12 - .../extensions/Libadwaita.FileDialog.md | 48 - Documentation/Reference/extensions/List.md | 25 - Documentation/Reference/extensions/Menu.md | 23 - .../Reference/extensions/MenuItem.md | 8 - .../Reference/extensions/MenuItemGroup.md | 9 - .../Reference/extensions/NativeWidgetPeer.md | 23 - .../Reference/extensions/NavigationView.md | 18 - .../Reference/extensions/OpaquePointer.md | 9 - .../Reference/extensions/OverlaySplitView.md | 18 - .../Reference/extensions/PasswordEntryRow.md | 20 - Documentation/Reference/extensions/Popover.md | 9 - .../Reference/extensions/ProgressBar.md | 11 - .../Reference/extensions/ScrollView.md | 9 - Documentation/Reference/extensions/Set.md | 39 - Documentation/Reference/extensions/SpinRow.md | 34 - Documentation/Reference/extensions/State.md | 27 - .../Reference/extensions/StatusPage.md | 13 - Documentation/Reference/extensions/String.md | 47 - .../Reference/extensions/SwitchRow.md | 11 - Documentation/Reference/extensions/Text.md | 9 - .../Reference/extensions/ToastOverlay.md | 19 - Documentation/Reference/extensions/Toggle.md | 24 - Documentation/Reference/extensions/UInt.md | 8 - .../extensions/UnsafeMutablePointer.md | 14 - .../extensions/UnsafeMutableRawPointer.md | 9 - Documentation/Reference/extensions/VStack.md | 11 - Documentation/Reference/extensions/View.md | 242 --- Documentation/Reference/extensions/Widget.md | 8 - .../Reference/extensions/WindowScene.md | 27 - .../Reference/extensions/WindowSceneGroup.md | 17 - ...ledialog_on_open_cb(ptr_file_userData_).md | 7 - ...ledialog_on_save_cb(ptr_file_userData_).md | 7 - Documentation/Reference/protocols/App.md | 37 - Documentation/Reference/protocols/MenuItem.md | 14 - .../Reference/protocols/MenuItemGroup.md | 10 - .../Reference/protocols/Observable.md | 34 - .../Reference/protocols/StateProtocol.md | 10 - Documentation/Reference/protocols/View.md | 21 - .../Reference/protocols/ViewSwitcherOption.md | 19 - Documentation/Reference/protocols/Widget.md | 19 - .../Reference/protocols/WindowScene.md | 37 - .../Reference/protocols/WindowSceneGroup.md | 10 - .../Reference/protocols/WindowType.md | 20 - .../Reference/protocols/WindowView.md | 13 - .../Reference/structs/AboutWindow.md | 110 -- Documentation/Reference/structs/ActionRow.md | 233 --- .../Reference/structs/AppearObserver.md | 29 - .../Reference/structs/ApplicationWindow.md | 78 - Documentation/Reference/structs/Avatar.md | 106 -- Documentation/Reference/structs/Banner.md | 121 -- Documentation/Reference/structs/Bin.md | 57 - Documentation/Reference/structs/Binding.md | 68 - Documentation/Reference/structs/Box.md | 130 -- Documentation/Reference/structs/Button.md | 180 --- .../Reference/structs/ButtonContent.md | 127 -- Documentation/Reference/structs/Carousel.md | 155 -- Documentation/Reference/structs/CenterBox.md | 148 -- .../Reference/structs/CheckButton.md | 207 --- Documentation/Reference/structs/Clamp.md | 112 -- Documentation/Reference/structs/ComboRow.md | 291 ---- Documentation/Reference/structs/Container.md | 60 - .../Reference/structs/ContentModifier.md | 34 - Documentation/Reference/structs/EitherView.md | 64 - Documentation/Reference/structs/EntryRow.md | 205 --- .../Reference/structs/ExpanderRow.md | 217 --- Documentation/Reference/structs/FileDialog.md | 86 - Documentation/Reference/structs/FlowBox.md | 302 ---- Documentation/Reference/structs/ForEach.md | 37 - Documentation/Reference/structs/Form.md | 20 - .../Reference/structs/FormSection.md | 64 - Documentation/Reference/structs/Freeze.md | 29 - Documentation/Reference/structs/HStack.md | 20 - Documentation/Reference/structs/HeaderBar.md | 256 --- .../Reference/structs/InspectorWrapper.md | 29 - Documentation/Reference/structs/Label.md | 429 ----- Documentation/Reference/structs/LevelBar.md | 209 --- Documentation/Reference/structs/LinkButton.md | 196 --- Documentation/Reference/structs/List.md | 69 - Documentation/Reference/structs/ListBox.md | 235 --- Documentation/Reference/structs/Menu.md | 219 --- Documentation/Reference/structs/MenuButton.md | 52 - .../Reference/structs/MenuSection.md | 24 - .../Reference/structs/ModifierStopper.md | 25 - .../Reference/structs/NavigationSplitView.md | 44 - .../structs/NavigationView.NavigationStack.md | 24 - .../Reference/structs/NavigationView.md | 248 --- Documentation/Reference/structs/Overlay.md | 136 -- .../Reference/structs/OverlaySplitView.md | 285 ---- .../Reference/structs/PasswordEntryRow.md | 190 --- Documentation/Reference/structs/Popover.md | 184 --- .../Reference/structs/PreferencesGroup.md | 112 -- .../Reference/structs/PreferencesPage.md | 104 -- .../Reference/structs/PreferencesRow.md | 99 -- .../Reference/structs/ProgressBar.md | 156 -- .../structs/SceneStorage.ViewStorage.md | 8 - .../structs/SceneStorage.WindowStorage.md | 8 - .../Reference/structs/SceneStorage.md | 11 - Documentation/Reference/structs/ScrollView.md | 29 - .../Reference/structs/ScrolledWindow.md | 330 ---- Documentation/Reference/structs/SearchBar.md | 128 -- .../Reference/structs/SearchEntry.md | 358 ----- Documentation/Reference/structs/Signal.md | 27 - Documentation/Reference/structs/SpinRow.md | 312 ---- Documentation/Reference/structs/Spinner.md | 75 - .../Reference/structs/SplitButton.md | 204 --- Documentation/Reference/structs/State.md | 67 - .../Reference/structs/StateWrapper.md | 41 - Documentation/Reference/structs/StatusPage.md | 94 -- Documentation/Reference/structs/Submenu.md | 30 - Documentation/Reference/structs/SwitchRow.md | 230 --- Documentation/Reference/structs/Text.md | 38 - .../Reference/structs/ToastOverlay.md | 84 - Documentation/Reference/structs/Toggle.md | 66 - .../Reference/structs/ToggleButton.md | 241 --- .../Reference/structs/ToolbarView.md | 258 --- .../Reference/structs/UpdateObserver.md | 28 - Documentation/Reference/structs/VStack.md | 29 - Documentation/Reference/structs/ViewStack.md | 43 - .../Reference/structs/ViewSwitcher.md | 47 - Documentation/Reference/structs/Window.md | 194 --- .../Reference/structs/WindowTitle.md | 76 - .../Reference/typealiases/Alignment.md | 5 - Documentation/Reference/typealiases/Body.md | 5 - Documentation/Reference/typealiases/Edge.md | 5 - .../Reference/typealiases/FormSection.md | 5 - .../typealiases/GTUIApplicationWindow.md | 5 - .../Reference/typealiases/GTUIWindow.md | 5 - Documentation/Reference/typealiases/Icon.md | 5 - Documentation/Reference/typealiases/List.md | 5 - .../Reference/typealiases/MenuBuilder.md | 5 - .../Reference/typealiases/MenuContent.md | 5 - .../Reference/typealiases/NavigationStack.md | 5 - Documentation/Reference/typealiases/Scene.md | 5 - .../Reference/typealiases/SceneBuilder.md | 5 - .../Reference/typealiases/ScrollView.md | 5 - Documentation/Reference/typealiases/Text.md | 5 - Documentation/Reference/typealiases/Toggle.md | 5 - .../Reference/typealiases/Transition.md | 5 - Documentation/Reference/typealiases/VStack.md | 5 - .../Reference/typealiases/ViewBuilder.md | 5 - Icons/Counter.png | Bin 0 -> 8629 bytes Icons/Demo.png | Bin 27021 -> 0 bytes Icons/HelloWorld.png | Bin 7651 -> 0 bytes Icons/Screenshot 2024-03-29 at 21.17.17.png | Bin 421168 -> 0 bytes Icons/Screenshot.png | Bin 7332 -> 0 bytes Icons/TwoWindows.png | Bin 47565 -> 0 bytes Makefile | 5 - README.md | 61 +- SUMMARY.md | 29 - Tests/Demo.swift | 2 +- user-manual/Advanced/CreatingWidgets.md | 65 - user-manual/Advanced/PublishingApps.md | 45 - user-manual/Basics/CreatingViews.md | 156 -- user-manual/Basics/HelloWorld.md | 89 - user-manual/Basics/KeyboardShortcuts.md | 114 -- user-manual/Basics/Windows.md | 167 -- user-manual/GettingStarted.md | 27 - .../Information/AutoGeneratedWidgets.md | 90 -- user-manual/Information/Widgets.md | 189 --- 200 files changed, 21 insertions(+), 14512 deletions(-) delete mode 100644 Documentation/Reference/README.md delete mode 100644 Documentation/Reference/classes/GTUIAboutWindow.md delete mode 100644 Documentation/Reference/classes/GTUIApp.md delete mode 100644 Documentation/Reference/classes/GTUIApplicationWindow.md delete mode 100644 Documentation/Reference/classes/GTUIFileDialog.md delete mode 100644 Documentation/Reference/classes/GTUIWindow.md delete mode 100644 Documentation/Reference/classes/State.Content.md delete mode 100644 Documentation/Reference/classes/State.Storage.md delete mode 100644 Documentation/Reference/classes/ViewStorage.SignalData.md delete mode 100644 Documentation/Reference/classes/ViewStorage.md delete mode 100644 Documentation/Reference/classes/WindowStorage.md delete mode 100644 Documentation/Reference/enums/Alignment.md delete mode 100644 Documentation/Reference/enums/ArrayBuilder.Component.md delete mode 100644 Documentation/Reference/enums/ArrayBuilder.md delete mode 100644 Documentation/Reference/enums/Edge.md delete mode 100644 Documentation/Reference/enums/Icon.DefaultIcon.md delete mode 100644 Documentation/Reference/enums/Icon.md delete mode 100644 Documentation/Reference/enums/NavigationView.Action.md delete mode 100644 Documentation/Reference/enums/Transition.md delete mode 100644 Documentation/Reference/enums/UpdateManager.md delete mode 100644 Documentation/Reference/enums/ViewBuilder.Component.md delete mode 100644 Documentation/Reference/enums/ViewBuilder.md delete mode 100644 Documentation/Reference/extensions/ActionRow.md delete mode 100644 Documentation/Reference/extensions/App.md delete mode 100644 Documentation/Reference/extensions/Array.md delete mode 100644 Documentation/Reference/extensions/Banner.md delete mode 100644 Documentation/Reference/extensions/Binding.md delete mode 100644 Documentation/Reference/extensions/Bool.md delete mode 100644 Documentation/Reference/extensions/Box.md delete mode 100644 Documentation/Reference/extensions/Button.md delete mode 100644 Documentation/Reference/extensions/Carousel.md delete mode 100644 Documentation/Reference/extensions/Clamp.md delete mode 100644 Documentation/Reference/extensions/ComboRow.md delete mode 100644 Documentation/Reference/extensions/EntryRow.md delete mode 100644 Documentation/Reference/extensions/FlowBox.md delete mode 100644 Documentation/Reference/extensions/FormSection.md delete mode 100644 Documentation/Reference/extensions/GTUIWindow.md delete mode 100644 Documentation/Reference/extensions/HeaderBar.md delete mode 100644 Documentation/Reference/extensions/Int.md delete mode 100644 Documentation/Reference/extensions/Libadwaita.FileDialog.md delete mode 100644 Documentation/Reference/extensions/List.md delete mode 100644 Documentation/Reference/extensions/Menu.md delete mode 100644 Documentation/Reference/extensions/MenuItem.md delete mode 100644 Documentation/Reference/extensions/MenuItemGroup.md delete mode 100644 Documentation/Reference/extensions/NativeWidgetPeer.md delete mode 100644 Documentation/Reference/extensions/NavigationView.md delete mode 100644 Documentation/Reference/extensions/OpaquePointer.md delete mode 100644 Documentation/Reference/extensions/OverlaySplitView.md delete mode 100644 Documentation/Reference/extensions/PasswordEntryRow.md delete mode 100644 Documentation/Reference/extensions/Popover.md delete mode 100644 Documentation/Reference/extensions/ProgressBar.md delete mode 100644 Documentation/Reference/extensions/ScrollView.md delete mode 100644 Documentation/Reference/extensions/Set.md delete mode 100644 Documentation/Reference/extensions/SpinRow.md delete mode 100644 Documentation/Reference/extensions/State.md delete mode 100644 Documentation/Reference/extensions/StatusPage.md delete mode 100644 Documentation/Reference/extensions/String.md delete mode 100644 Documentation/Reference/extensions/SwitchRow.md delete mode 100644 Documentation/Reference/extensions/Text.md delete mode 100644 Documentation/Reference/extensions/ToastOverlay.md delete mode 100644 Documentation/Reference/extensions/Toggle.md delete mode 100644 Documentation/Reference/extensions/UInt.md delete mode 100644 Documentation/Reference/extensions/UnsafeMutablePointer.md delete mode 100644 Documentation/Reference/extensions/UnsafeMutableRawPointer.md delete mode 100644 Documentation/Reference/extensions/VStack.md delete mode 100644 Documentation/Reference/extensions/View.md delete mode 100644 Documentation/Reference/extensions/Widget.md delete mode 100644 Documentation/Reference/extensions/WindowScene.md delete mode 100644 Documentation/Reference/extensions/WindowSceneGroup.md delete mode 100644 Documentation/Reference/methods/filedialog_on_open_cb(ptr_file_userData_).md delete mode 100644 Documentation/Reference/methods/filedialog_on_save_cb(ptr_file_userData_).md delete mode 100644 Documentation/Reference/protocols/App.md delete mode 100644 Documentation/Reference/protocols/MenuItem.md delete mode 100644 Documentation/Reference/protocols/MenuItemGroup.md delete mode 100644 Documentation/Reference/protocols/Observable.md delete mode 100644 Documentation/Reference/protocols/StateProtocol.md delete mode 100644 Documentation/Reference/protocols/View.md delete mode 100644 Documentation/Reference/protocols/ViewSwitcherOption.md delete mode 100644 Documentation/Reference/protocols/Widget.md delete mode 100644 Documentation/Reference/protocols/WindowScene.md delete mode 100644 Documentation/Reference/protocols/WindowSceneGroup.md delete mode 100644 Documentation/Reference/protocols/WindowType.md delete mode 100644 Documentation/Reference/protocols/WindowView.md delete mode 100644 Documentation/Reference/structs/AboutWindow.md delete mode 100644 Documentation/Reference/structs/ActionRow.md delete mode 100644 Documentation/Reference/structs/AppearObserver.md delete mode 100644 Documentation/Reference/structs/ApplicationWindow.md delete mode 100644 Documentation/Reference/structs/Avatar.md delete mode 100644 Documentation/Reference/structs/Banner.md delete mode 100644 Documentation/Reference/structs/Bin.md delete mode 100644 Documentation/Reference/structs/Binding.md delete mode 100644 Documentation/Reference/structs/Box.md delete mode 100644 Documentation/Reference/structs/Button.md delete mode 100644 Documentation/Reference/structs/ButtonContent.md delete mode 100644 Documentation/Reference/structs/Carousel.md delete mode 100644 Documentation/Reference/structs/CenterBox.md delete mode 100644 Documentation/Reference/structs/CheckButton.md delete mode 100644 Documentation/Reference/structs/Clamp.md delete mode 100644 Documentation/Reference/structs/ComboRow.md delete mode 100644 Documentation/Reference/structs/Container.md delete mode 100644 Documentation/Reference/structs/ContentModifier.md delete mode 100644 Documentation/Reference/structs/EitherView.md delete mode 100644 Documentation/Reference/structs/EntryRow.md delete mode 100644 Documentation/Reference/structs/ExpanderRow.md delete mode 100644 Documentation/Reference/structs/FileDialog.md delete mode 100644 Documentation/Reference/structs/FlowBox.md delete mode 100644 Documentation/Reference/structs/ForEach.md delete mode 100644 Documentation/Reference/structs/Form.md delete mode 100644 Documentation/Reference/structs/FormSection.md delete mode 100644 Documentation/Reference/structs/Freeze.md delete mode 100644 Documentation/Reference/structs/HStack.md delete mode 100644 Documentation/Reference/structs/HeaderBar.md delete mode 100644 Documentation/Reference/structs/InspectorWrapper.md delete mode 100644 Documentation/Reference/structs/Label.md delete mode 100644 Documentation/Reference/structs/LevelBar.md delete mode 100644 Documentation/Reference/structs/LinkButton.md delete mode 100644 Documentation/Reference/structs/List.md delete mode 100644 Documentation/Reference/structs/ListBox.md delete mode 100644 Documentation/Reference/structs/Menu.md delete mode 100644 Documentation/Reference/structs/MenuButton.md delete mode 100644 Documentation/Reference/structs/MenuSection.md delete mode 100644 Documentation/Reference/structs/ModifierStopper.md delete mode 100644 Documentation/Reference/structs/NavigationSplitView.md delete mode 100644 Documentation/Reference/structs/NavigationView.NavigationStack.md delete mode 100644 Documentation/Reference/structs/NavigationView.md delete mode 100644 Documentation/Reference/structs/Overlay.md delete mode 100644 Documentation/Reference/structs/OverlaySplitView.md delete mode 100644 Documentation/Reference/structs/PasswordEntryRow.md delete mode 100644 Documentation/Reference/structs/Popover.md delete mode 100644 Documentation/Reference/structs/PreferencesGroup.md delete mode 100644 Documentation/Reference/structs/PreferencesPage.md delete mode 100644 Documentation/Reference/structs/PreferencesRow.md delete mode 100644 Documentation/Reference/structs/ProgressBar.md delete mode 100644 Documentation/Reference/structs/SceneStorage.ViewStorage.md delete mode 100644 Documentation/Reference/structs/SceneStorage.WindowStorage.md delete mode 100644 Documentation/Reference/structs/SceneStorage.md delete mode 100644 Documentation/Reference/structs/ScrollView.md delete mode 100644 Documentation/Reference/structs/ScrolledWindow.md delete mode 100644 Documentation/Reference/structs/SearchBar.md delete mode 100644 Documentation/Reference/structs/SearchEntry.md delete mode 100644 Documentation/Reference/structs/Signal.md delete mode 100644 Documentation/Reference/structs/SpinRow.md delete mode 100644 Documentation/Reference/structs/Spinner.md delete mode 100644 Documentation/Reference/structs/SplitButton.md delete mode 100644 Documentation/Reference/structs/State.md delete mode 100644 Documentation/Reference/structs/StateWrapper.md delete mode 100644 Documentation/Reference/structs/StatusPage.md delete mode 100644 Documentation/Reference/structs/Submenu.md delete mode 100644 Documentation/Reference/structs/SwitchRow.md delete mode 100644 Documentation/Reference/structs/Text.md delete mode 100644 Documentation/Reference/structs/ToastOverlay.md delete mode 100644 Documentation/Reference/structs/Toggle.md delete mode 100644 Documentation/Reference/structs/ToggleButton.md delete mode 100644 Documentation/Reference/structs/ToolbarView.md delete mode 100644 Documentation/Reference/structs/UpdateObserver.md delete mode 100644 Documentation/Reference/structs/VStack.md delete mode 100644 Documentation/Reference/structs/ViewStack.md delete mode 100644 Documentation/Reference/structs/ViewSwitcher.md delete mode 100644 Documentation/Reference/structs/Window.md delete mode 100644 Documentation/Reference/structs/WindowTitle.md delete mode 100644 Documentation/Reference/typealiases/Alignment.md delete mode 100644 Documentation/Reference/typealiases/Body.md delete mode 100644 Documentation/Reference/typealiases/Edge.md delete mode 100644 Documentation/Reference/typealiases/FormSection.md delete mode 100644 Documentation/Reference/typealiases/GTUIApplicationWindow.md delete mode 100644 Documentation/Reference/typealiases/GTUIWindow.md delete mode 100644 Documentation/Reference/typealiases/Icon.md delete mode 100644 Documentation/Reference/typealiases/List.md delete mode 100644 Documentation/Reference/typealiases/MenuBuilder.md delete mode 100644 Documentation/Reference/typealiases/MenuContent.md delete mode 100644 Documentation/Reference/typealiases/NavigationStack.md delete mode 100644 Documentation/Reference/typealiases/Scene.md delete mode 100644 Documentation/Reference/typealiases/SceneBuilder.md delete mode 100644 Documentation/Reference/typealiases/ScrollView.md delete mode 100644 Documentation/Reference/typealiases/Text.md delete mode 100644 Documentation/Reference/typealiases/Toggle.md delete mode 100644 Documentation/Reference/typealiases/Transition.md delete mode 100644 Documentation/Reference/typealiases/VStack.md delete mode 100644 Documentation/Reference/typealiases/ViewBuilder.md create mode 100644 Icons/Counter.png delete mode 100644 Icons/Demo.png delete mode 100644 Icons/HelloWorld.png delete mode 100644 Icons/Screenshot 2024-03-29 at 21.17.17.png delete mode 100644 Icons/Screenshot.png delete mode 100644 Icons/TwoWindows.png delete mode 100644 Makefile delete mode 100644 SUMMARY.md delete mode 100644 user-manual/Advanced/CreatingWidgets.md delete mode 100644 user-manual/Advanced/PublishingApps.md delete mode 100644 user-manual/Basics/CreatingViews.md delete mode 100644 user-manual/Basics/HelloWorld.md delete mode 100644 user-manual/Basics/KeyboardShortcuts.md delete mode 100644 user-manual/Basics/Windows.md delete mode 100644 user-manual/GettingStarted.md delete mode 100644 user-manual/Information/AutoGeneratedWidgets.md delete mode 100644 user-manual/Information/Widgets.md diff --git a/.spi.yml b/.spi.yml index 82fa3bd..ce3c421 100644 --- a/.spi.yml +++ b/.spi.yml @@ -1,4 +1,3 @@ version: 1 -builder: - configs: - - documentation_targets: [Adwaita] +external_links: + documentation: "aparokshaui.github.io/adwaita-swift/" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a4b3e66..ecf05f1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,9 +27,9 @@ Open the project folder in GNOME Builder, Xcode or another IDE. - The `LICENSE.md` contains an GPL-3.0 license. - `CONTRIBUTING.md` is this file. - Directory `Icons` that contains PNG and PXD (Pixelmator Pro) files for the images used in the app and guides. -- Directory `Documentation` that contains the documentation generated with [SourceDocs][1]. - `Sources` contains the source code of the project. - `Adwaita` contains the source code of the project. + - `Adwaita.docc` contains documentation. - `Model` is the directory with Adwaita's basis. - `Data Flow` contains property wrappers and protocols required for managing the updates of a view. - `Extensions` contains all the extensions of types that are not defined in this project. @@ -48,5 +48,3 @@ Commit and push the fork. ### 6. Pull Request Open GitHub to submit a pull request. Thank you very much for your contribution! - -[1]: https://github.com/SourceDocs/SourceDocs diff --git a/Documentation/Reference/README.md b/Documentation/Reference/README.md deleted file mode 100644 index 9f9d57d..0000000 --- a/Documentation/Reference/README.md +++ /dev/null @@ -1,176 +0,0 @@ -# Reference Documentation - -## Protocols - -- [App](protocols/App.md) -- [MenuItem](protocols/MenuItem.md) -- [MenuItemGroup](protocols/MenuItemGroup.md) -- [StateProtocol](protocols/StateProtocol.md) -- [View](protocols/View.md) -- [ViewSwitcherOption](protocols/ViewSwitcherOption.md) -- [Widget](protocols/Widget.md) -- [WindowScene](protocols/WindowScene.md) -- [WindowSceneGroup](protocols/WindowSceneGroup.md) -- [WindowType](protocols/WindowType.md) -- [WindowView](protocols/WindowView.md) - -## Structs - -- [AboutWindow](structs/AboutWindow.md) -- [ActionRow](structs/ActionRow.md) -- [AppearObserver](structs/AppearObserver.md) -- [Avatar](structs/Avatar.md) -- [Banner](structs/Banner.md) -- [Bin](structs/Bin.md) -- [Binding](structs/Binding.md) -- [Box](structs/Box.md) -- [Button](structs/Button.md) -- [ButtonContent](structs/ButtonContent.md) -- [Carousel](structs/Carousel.md) -- [CenterBox](structs/CenterBox.md) -- [CheckButton](structs/CheckButton.md) -- [Clamp](structs/Clamp.md) -- [ComboRow](structs/ComboRow.md) -- [ContentModifier](structs/ContentModifier.md) -- [EntryRow](structs/EntryRow.md) -- [ExpanderRow](structs/ExpanderRow.md) -- [FileDialog](structs/FileDialog.md) -- [FlowBox](structs/FlowBox.md) -- [ForEach](structs/ForEach.md) -- [Form](structs/Form.md) -- [Freeze](structs/Freeze.md) -- [HStack](structs/HStack.md) -- [HeaderBar](structs/HeaderBar.md) -- [InspectorWrapper](structs/InspectorWrapper.md) -- [Label](structs/Label.md) -- [LevelBar](structs/LevelBar.md) -- [LinkButton](structs/LinkButton.md) -- [ListBox](structs/ListBox.md) -- [Menu](structs/Menu.md) -- [MenuButton](structs/MenuButton.md) -- [MenuSection](structs/MenuSection.md) -- [ModifierStopper](structs/ModifierStopper.md) -- [NavigationSplitView](structs/NavigationSplitView.md) -- [NavigationView](structs/NavigationView.md) -- [NavigationView.NavigationStack](structs/NavigationView.NavigationStack.md) -- [Overlay](structs/Overlay.md) -- [OverlaySplitView](structs/OverlaySplitView.md) -- [PasswordEntryRow](structs/PasswordEntryRow.md) -- [Popover](structs/Popover.md) -- [PreferencesGroup](structs/PreferencesGroup.md) -- [PreferencesPage](structs/PreferencesPage.md) -- [PreferencesRow](structs/PreferencesRow.md) -- [ProgressBar](structs/ProgressBar.md) -- [ScrolledWindow](structs/ScrolledWindow.md) -- [SearchBar](structs/SearchBar.md) -- [SearchEntry](structs/SearchEntry.md) -- [Signal](structs/Signal.md) -- [SpinRow](structs/SpinRow.md) -- [Spinner](structs/Spinner.md) -- [SplitButton](structs/SplitButton.md) -- [State](structs/State.md) -- [StateWrapper](structs/StateWrapper.md) -- [StatusPage](structs/StatusPage.md) -- [Submenu](structs/Submenu.md) -- [SwitchRow](structs/SwitchRow.md) -- [ToastOverlay](structs/ToastOverlay.md) -- [ToggleButton](structs/ToggleButton.md) -- [ToolbarView](structs/ToolbarView.md) -- [ViewStack](structs/ViewStack.md) -- [ViewSwitcher](structs/ViewSwitcher.md) -- [Window](structs/Window.md) -- [WindowTitle](structs/WindowTitle.md) - -## Classes - -- [GTUIAboutWindow](classes/GTUIAboutWindow.md) -- [GTUIApp](classes/GTUIApp.md) -- [GTUIApplicationWindow](classes/GTUIApplicationWindow.md) -- [GTUIFileDialog](classes/GTUIFileDialog.md) -- [GTUIWindow](classes/GTUIWindow.md) -- [State.Content](classes/State.Content.md) -- [State.Storage](classes/State.Storage.md) -- [ViewStorage](classes/ViewStorage.md) -- [ViewStorage.SignalData](classes/ViewStorage.SignalData.md) -- [WindowStorage](classes/WindowStorage.md) - -## Enums - -- [Alignment](enums/Alignment.md) -- [ArrayBuilder](enums/ArrayBuilder.md) -- [ArrayBuilder.Component](enums/ArrayBuilder.Component.md) -- [Edge](enums/Edge.md) -- [Icon](enums/Icon.md) -- [Icon.DefaultIcon](enums/Icon.DefaultIcon.md) -- [NavigationView.Action](enums/NavigationView.Action.md) -- [Transition](enums/Transition.md) -- [UpdateManager](enums/UpdateManager.md) -- [ViewBuilder](enums/ViewBuilder.md) -- [ViewBuilder.Component](enums/ViewBuilder.Component.md) - -## Extensions - -- [ActionRow](extensions/ActionRow.md) -- [App](extensions/App.md) -- [Array](extensions/Array.md) -- [Banner](extensions/Banner.md) -- [Bool](extensions/Bool.md) -- [Button](extensions/Button.md) -- [Carousel](extensions/Carousel.md) -- [Clamp](extensions/Clamp.md) -- [ComboRow](extensions/ComboRow.md) -- [EntryRow](extensions/EntryRow.md) -- [FlowBox](extensions/FlowBox.md) -- [FormSection](extensions/FormSection.md) -- [HeaderBar](extensions/HeaderBar.md) -- [Int](extensions/Int.md) -- [List](extensions/List.md) -- [Menu](extensions/Menu.md) -- [MenuItem](extensions/MenuItem.md) -- [MenuItemGroup](extensions/MenuItemGroup.md) -- [NavigationView](extensions/NavigationView.md) -- [OpaquePointer](extensions/OpaquePointer.md) -- [OverlaySplitView](extensions/OverlaySplitView.md) -- [PasswordEntryRow](extensions/PasswordEntryRow.md) -- [Popover](extensions/Popover.md) -- [ProgressBar](extensions/ProgressBar.md) -- [ScrollView](extensions/ScrollView.md) -- [Set](extensions/Set.md) -- [SpinRow](extensions/SpinRow.md) -- [State](extensions/State.md) -- [StatusPage](extensions/StatusPage.md) -- [String](extensions/String.md) -- [SwitchRow](extensions/SwitchRow.md) -- [Text](extensions/Text.md) -- [ToastOverlay](extensions/ToastOverlay.md) -- [Toggle](extensions/Toggle.md) -- [UInt](extensions/UInt.md) -- [UnsafeMutablePointer](extensions/UnsafeMutablePointer.md) -- [UnsafeMutableRawPointer](extensions/UnsafeMutableRawPointer.md) -- [VStack](extensions/VStack.md) -- [View](extensions/View.md) -- [Widget](extensions/Widget.md) -- [WindowScene](extensions/WindowScene.md) -- [WindowSceneGroup](extensions/WindowSceneGroup.md) - -## Typealiases - -- [Body](typealiases/Body.md) -- [FormSection](typealiases/FormSection.md) -- [List](typealiases/List.md) -- [MenuBuilder](typealiases/MenuBuilder.md) -- [MenuContent](typealiases/MenuContent.md) -- [NavigationStack](typealiases/NavigationStack.md) -- [Scene](typealiases/Scene.md) -- [SceneBuilder](typealiases/SceneBuilder.md) -- [ScrollView](typealiases/ScrollView.md) -- [Text](typealiases/Text.md) -- [Toggle](typealiases/Toggle.md) -- [VStack](typealiases/VStack.md) - -## Methods - -- [filedialog_on_open_cb(ptr_file_userData_)](methods/filedialog_on_open_cb(ptr_file_userData_).md) -- [filedialog_on_save_cb(ptr_file_userData_)](methods/filedialog_on_save_cb(ptr_file_userData_).md) - -This file was generated by [SourceDocs](https://github.com/eneko/SourceDocs) \ No newline at end of file diff --git a/Documentation/Reference/classes/GTUIAboutWindow.md b/Documentation/Reference/classes/GTUIAboutWindow.md deleted file mode 100644 index 3ddf50b..0000000 --- a/Documentation/Reference/classes/GTUIAboutWindow.md +++ /dev/null @@ -1,30 +0,0 @@ -**CLASS** - -# `GTUIAboutWindow` - -A GTUI about window. - -## Methods -### `init(filePath:)` - -Initialize an about window using the AppStream metadata. -- Parameter filePath: The path. - -### `generalData(title:icon:developer:version:)` - -Set the general data. -- Parameters: - - title: The app name. - - icon: The app icon. - - developer: The app's developer. - - version: The app's version. - -### `website(url:)` - -Set the website. -- Parameter url: The website. - -### `issues(url:)` - -Set the URL for issues. -- Parameter issues: The issues website. diff --git a/Documentation/Reference/classes/GTUIApp.md b/Documentation/Reference/classes/GTUIApp.md deleted file mode 100644 index e3f0d97..0000000 --- a/Documentation/Reference/classes/GTUIApp.md +++ /dev/null @@ -1,80 +0,0 @@ -**CLASS** - -# `GTUIApp` - -The GTUI application. - -## Properties -### `updateHandlers` - -The handlers which are called when a state changes. - -### `appID` - -The app's id for the file name for storing the data. - -### `pointer` - -The pointer to the application. - -### `fields` - -Fields for additional information. - -### `body` - -The app's content. - -### `sceneStorage` - -The scenes that are displayed. - -### `overwriteParentID` - -A string signaling that the parent should not be overwritten. - -## Methods -### `init(_:body:)` - -Initialize the GTUI application. -- Parameters: - - id: The application id. - - body: The application's content. - -### `onActivate()` - -The entry point of the application. - -### `run()` - -Run the application. - -### `addKeyboardShortcut(_:id:window:handler:)` - -Add a keyboard shortcut to the application. -- Parameters: - - shortcut: The keyboard shortcut. - - id: The action's id. - - window: Optionally an application window. - - handler: The action's handler. - -### `showWindow(_:)` - -Focus the window with a certain id. Create the window if it doesn't already exist. -- Parameters: - - id: The window's id. - -### `addWindow(_:parent:)` - -Add a new window with the content of the window with a certain id. -- Parameters: - - id: The window's id. - - parent: The parent window. - -### `setParentWindows()` - -Set the parents of every window having a parent window. - -### `quit()` - -Terminate the application. diff --git a/Documentation/Reference/classes/GTUIApplicationWindow.md b/Documentation/Reference/classes/GTUIApplicationWindow.md deleted file mode 100644 index 04c3e96..0000000 --- a/Documentation/Reference/classes/GTUIApplicationWindow.md +++ /dev/null @@ -1,29 +0,0 @@ -**CLASS** - -# `GTUIApplicationWindow` - -A GTUI application window. - -## Properties -### `app` - -The window's parent app. - -## Methods -### `init(app:)` - -Initialize the application window. -- Parameter app: The application. - -### `addKeyboardShortcut(_:id:handler:)` - -Add a keyboard shortcut. -- Parameters: - - shortcut: The keyboard shortcut. - - id: The action's id. - - handler: The action's handler. - -### `setChild(_:)` - -Set the window's child. -- Parameter child: The child. diff --git a/Documentation/Reference/classes/GTUIFileDialog.md b/Documentation/Reference/classes/GTUIFileDialog.md deleted file mode 100644 index 988a882..0000000 --- a/Documentation/Reference/classes/GTUIFileDialog.md +++ /dev/null @@ -1,77 +0,0 @@ -**CLASS** - -# `GTUIFileDialog` - -A GTUI file dialog window. - -## Properties -### `pointer` - -The file dialog's pointer. - -### `fields` - -Fields for additional data. - -### `selfAddr` - -A link to the file dialog. - -### `parent` - -The parent window. - -### `isImporter` - -Whether the file dialog is an importer. - -### `folder` - -The selected folder in the file dialog. - -### `onResult` - -A closure triggered on selecting a file in the dialog. - -### `onCancel` - -A closure triggered when the dialog is canceled. - -## Methods -### `init()` - -Initialize the window. - -### `setParentWindow(_:)` - -Set the window's parent window. -- Parameter parent: The parent window. - -### `setInitialName(_:)` - -Set the initial name. -- Parameter name: The parent window. - -### `setExtensions(_:)` - -Set the allowed file extensions. -- Parameters: - - extensions: The file extensions. - -### `show()` - -Display the file dialog. - -### `onOpen(_:)` - -Run this when a file gets opened. -- Parameter path: The file path. - -### `onSave(_:)` - -Run this when a file gets saved. -- Parameter path: The file path. - -### `onClose()` - -Run this when the user cancels the action. diff --git a/Documentation/Reference/classes/GTUIWindow.md b/Documentation/Reference/classes/GTUIWindow.md deleted file mode 100644 index 963e1ea..0000000 --- a/Documentation/Reference/classes/GTUIWindow.md +++ /dev/null @@ -1,69 +0,0 @@ -**CLASS** - -# `GTUIWindow` - -A GTUI window. - -## Properties -### `pointer` - -The window's pointer. - -### `fields` - -Fields for additional information. - -## Methods -### `init()` - -Initialize the window. - -### `init(fields:)` - -Initialize the window, but not the pointer. -- Parameter fields: The fields. - -### `setDefaultSize(width:height:)` - -Set the default window size. -- Parameters: - - width: The width. - - height: The height. - -### `setResizability(_:)` - -Set the resizability. -- Parameter resizable: Whether the window is resizable. - -### `setDeletability(_:)` - -Set the deletability. -- Parameter deletable: Whether the window is deletable. - -### `setTitle(_:)` - -Set the window title. -- Parameter title: The window's title. - -### `setChild(_:)` - -Set the window's child. -- Parameter child: The child. - -### `show()` - -Present the window. - -### `observeHide(observer:)` - -Observe when the window is being closed. -- Parameter observer: The signal closure. - -### `close()` - -Close the window. - -### `setParentWindow(_:)` - -Set the window's parent window. -- Parameter parent: The parent window. diff --git a/Documentation/Reference/classes/State.Content.md b/Documentation/Reference/classes/State.Content.md deleted file mode 100644 index 1c0cd02..0000000 --- a/Documentation/Reference/classes/State.Content.md +++ /dev/null @@ -1,16 +0,0 @@ -**CLASS** - -# `State.Content` - -A class storing the state's content. - -## Properties -### `storage` - -The storage. - -## Methods -### `init(storage:)` - -Initialize the content. -- Parameter storage: The storage. diff --git a/Documentation/Reference/classes/State.Storage.md b/Documentation/Reference/classes/State.Storage.md deleted file mode 100644 index fa2c671..0000000 --- a/Documentation/Reference/classes/State.Storage.md +++ /dev/null @@ -1,29 +0,0 @@ -**CLASS** - -# `State.Storage` - -A class storing the value. - -## Properties -### `value` - -The stored value. - -### `key` - -The storage key. - -### `folder` - -The folder path. - -### `update` - -Whether to update the affected views. - -## Methods -### `init(value:)` - -Initialize the storage. -- Parameters: - - value: The value. diff --git a/Documentation/Reference/classes/ViewStorage.SignalData.md b/Documentation/Reference/classes/ViewStorage.SignalData.md deleted file mode 100644 index 288ab25..0000000 --- a/Documentation/Reference/classes/ViewStorage.SignalData.md +++ /dev/null @@ -1,37 +0,0 @@ -**CLASS** - -# `ViewStorage.SignalData` - -Data to pass to signal handlers. - -## Properties -### `closure` - -The closure. - -### `handler` - -The closure as a C handler. - -### `threeParamsHandler` - -The closure as a C handler with three parameters. - -### `fourParamsHandler` - -The closure as a C handler with four parameters. - -### `fiveParamsHandler` - -The closure as a C handler with five parameters. - -## Methods -### `init(closure:)` - -Initialize the signal data. -- Parameter closure: The signal's closure. - -### `init(closure:)` - -Initialize the signal data. -- Parameter closure: The signal's closure. diff --git a/Documentation/Reference/classes/ViewStorage.md b/Documentation/Reference/classes/ViewStorage.md deleted file mode 100644 index 4a9ecf9..0000000 --- a/Documentation/Reference/classes/ViewStorage.md +++ /dev/null @@ -1,76 +0,0 @@ -**CLASS** - -# `ViewStorage` - -Store a rendered view in a view storage. - -## Properties -### `pointer` - -The pointer. - -### `content` - -The view's content. - -### `state` - -The view's state (used in `StateWrapper`). - -### `handlers` - -The signal handlers. - -### `fields` - -Other properties. - -## Methods -### `init(_:content:state:)` - -Initialize a view storage. -- Parameters: - - pointer: The pointer to the Gtk widget. - - content: The view's content. - - state: The view's state. - -### `notify(name:id:connectFlags:handler:)` - -Connect a handler to the observer of a property. -- Parameters: - - name: The property's name. - - id: The handlers id to separate form others connecting to the signal. - - connectFlags: The GConnectFlags. - - handler: The signal's handler. - -### `connectSignal(name:id:connectFlags:argCount:handler:)` - -Connect a handler to a signal. -- Parameters: - - name: The signal's name. - - id: The handlers id to separate form others connecting to the signal. - - connectFlags: The GConnectFlags. - - argCount: The number of additional arguments (without the first and the last one). - - handler: The signal's handler. - -### `connectSignal(name:id:connectFlags:argCount:handler:)` - -Connect a handler to a signal. -- Parameters: - - name: The signal's name. - - id: The handlers id to separate form others connecting to the signal. - - connectFlags: The GConnectFlags. - - argCount: The number of additional arguments (without the first and the last one). - - handler: The signal's handler. - -### `modify(_:)` - -Modify the view. -- Parameter modify: The modification function. - -### `modify(_:_:)` - -Convert the pointer to a pointer of a certain type and modify the view. -- Parameters: - - type: The pointer's type. - - modify: The modification function. diff --git a/Documentation/Reference/classes/WindowStorage.md b/Documentation/Reference/classes/WindowStorage.md deleted file mode 100644 index 6513645..0000000 --- a/Documentation/Reference/classes/WindowStorage.md +++ /dev/null @@ -1,35 +0,0 @@ -**CLASS** - -# `WindowStorage` - -A storage for an app's window. - -## Properties -### `id` - -The window's identifier. - -### `parentID` - -The identifier of the window's parent window. - -### `destroy` - -Whether the reference to the window should disappear in the next update. - -### `window` - -The window. - -### `view` - -The content's storage. - -## Methods -### `init(id:window:view:)` - -Initialize a window storage. -- Parameters: - - id: The window's identifier. - - window: The window. - - view: The content's storage. diff --git a/Documentation/Reference/enums/Alignment.md b/Documentation/Reference/enums/Alignment.md deleted file mode 100644 index ce7a695..0000000 --- a/Documentation/Reference/enums/Alignment.md +++ /dev/null @@ -1,35 +0,0 @@ -**ENUM** - -# `Alignment` - -The alignment for a widget. - -## Cases -### `fill` - -The widget will fill the available space. - -### `start` - -The widget will start at the beginning of the available space. - -### `end` - -The widget will end at the end of the available space. - -### `center` - -The widget will be centered in the available space. - -### `baselineFill` - -The widget will be baseline aligned in the available space. - -### `baselineCenter` - -The widget will be baseline aligned at the start of the available space. - -## Properties -### `cAlign` - -Get the GtkAlign alignment. diff --git a/Documentation/Reference/enums/ArrayBuilder.Component.md b/Documentation/Reference/enums/ArrayBuilder.Component.md deleted file mode 100644 index 74aed8f..0000000 --- a/Documentation/Reference/enums/ArrayBuilder.Component.md +++ /dev/null @@ -1,14 +0,0 @@ -**ENUM** - -# `ArrayBuilder.Component` - -A component used in the ``ArrayBuilder``. - -## Cases -### `element(_:)` - -An element as a component. - -### `components(_:)` - -An array of components as a component. diff --git a/Documentation/Reference/enums/ArrayBuilder.md b/Documentation/Reference/enums/ArrayBuilder.md deleted file mode 100644 index 47286e4..0000000 --- a/Documentation/Reference/enums/ArrayBuilder.md +++ /dev/null @@ -1,75 +0,0 @@ -**ENUM** - -# `ArrayBuilder` - -The ``ArrayBuilder`` is a simple result builder that outputs an array of any type. - -You can define any array using Swift's DSL: -```swift -@ArrayBuilder var string: [String] { - "Hello, " - if bool { - "world!" - } else { - "colibri!" - } - for x in 0...10 { - "\nIteration Number \(x)" - } -} -``` - -## Methods -### `buildBlock(_:)` - -Build combined results from statement blocks. -- Parameter components: The components. -- Returns: The components in a component. - -### `buildExpression(_:)` - -Translate an element into an ``ArrayBuilder.Component``. -- Parameter element: The element to translate. -- Returns: A component created from the element. - -### `buildExpression(_:)` - -Translate an array of elements into an ``ArrayBuilder.Component``. -- Parameter elements: The elements to translate. -- Returns: A component created from the element. - -### `buildExpression(_:)` - -Fetch a component. -- Parameter component: A component. -- Returns: The component. - -### `buildOptional(_:)` - -Enables support for `if` statements without an `else`. -- Parameter component: An optional component. -- Returns: A nonoptional component. - -### `buildEither(first:)` - -Enables support for `if`-`else` and `switch` statements. -- Parameter component: A component. -- Returns: The component. - -### `buildEither(second:)` - -Enables support for `if`-`else` and `switch` statements. -- Parameter component: A component. -- Returns: The component. - -### `buildArray(_:)` - -Enables support for `for..in` loops. -- Parameter components: The components as a two dimensional array. -- Returns: The components as a one dimensional array. - -### `buildFinalResult(_:)` - -Convert a component to an array of elements. -- Parameter component: The component to convert. -- Returns: The generated array of elements. diff --git a/Documentation/Reference/enums/Edge.md b/Documentation/Reference/enums/Edge.md deleted file mode 100644 index 88355b6..0000000 --- a/Documentation/Reference/enums/Edge.md +++ /dev/null @@ -1,22 +0,0 @@ -**ENUM** - -# `Edge` - -The edges for a widget. - -## Cases -### `leading` - -The leading (start) edge. - -### `trailing` - -The trailing (end) edge. - -### `top` - -The top edge. - -### `bottom` - -The bottom edge. diff --git a/Documentation/Reference/enums/Icon.DefaultIcon.md b/Documentation/Reference/enums/Icon.DefaultIcon.md deleted file mode 100644 index aab9784..0000000 --- a/Documentation/Reference/enums/Icon.DefaultIcon.md +++ /dev/null @@ -1,1431 +0,0 @@ -**ENUM** - -# `Icon.DefaultIcon` - -A preinstalled icon. - -## Cases -### `acAdapter` - -### `accessoriesCalculator` - -### `accessoriesCharacterMap` - -### `accessoriesDictionary` - -### `accessoriesTextEditor` - -### `actionUnavailable` - -### `addressBookNew` - -### `airplaneMode` - -### `alarm` - -### `appRemove` - -### `appletsScreenshooter` - -### `applicationCertificate` - -### `applicationExitRtl` - -### `applicationExit` - -### `applicationRss_plus_xml` - -### `applicationXAddon` - -### `applicationXAppliance` - -### `applicationXExecutable` - -### `applicationXFirmware` - -### `applicationXSharedlib` - -### `applicationsEngineering` - -### `applicationsGames` - -### `applicationsGraphics` - -### `applicationsMultimedia` - -### `applicationsScience` - -### `applicationsSystem` - -### `applicationsUtilities` - -### `appointmentMissed` - -### `appointmentNew` - -### `appointmentSoon` - -### `audioCard` - -### `audioHeadphones` - -### `audioHeadset` - -### `audioInputMicrophone` - -### `audioSpeakersRtl` - -### `audioSpeakers` - -### `audioVolumeHighRtl` - -### `audioVolumeHigh` - -### `audioVolumeLowRtl` - -### `audioVolumeLow` - -### `audioVolumeMediumRtl` - -### `audioVolumeMedium` - -### `audioVolumeMutedRtl` - -### `audioVolumeMuted` - -### `audioVolumeOveramplifiedRtl` - -### `audioVolumeOveramplified` - -### `audioXGeneric` - -### `authFace` - -### `authFingerprint` - -### `authSimLocked` - -### `authSimMissing` - -### `authSim` - -### `authSmartcard` - -### `avatarDefault` - -### `batteryAction` - -### `batteryCautionCharging` - -### `batteryCaution` - -### `batteryEmptyCharging` - -### `batteryEmpty` - -### `batteryFullCharged` - -### `batteryFullCharging` - -### `batteryFull` - -### `batteryGoodCharging` - -### `batteryGood` - -### `batteryLevel_0Charging` - -### `batteryLevel_0` - -### `batteryLevel_10Charging` - -### `batteryLevel_10` - -### `batteryLevel_100Charged` - -### `batteryLevel_100` - -### `batteryLevel_20Charging` - -### `batteryLevel_20` - -### `batteryLevel_30Charging` - -### `batteryLevel_30` - -### `batteryLevel_40Charging` - -### `batteryLevel_40` - -### `batteryLevel_50Charging` - -### `batteryLevel_50` - -### `batteryLevel_60Charging` - -### `batteryLevel_60` - -### `batteryLevel_70Charging` - -### `batteryLevel_70` - -### `batteryLevel_80Charging` - -### `batteryLevel_80` - -### `batteryLevel_90Charging` - -### `batteryLevel_90` - -### `batteryLowCharging` - -### `batteryLow` - -### `batteryMissing` - -### `battery` - -### `bluetoothAcquiring` - -### `bluetoothActive` - -### `bluetoothDisabled` - -### `bluetoothDisconnected` - -### `bluetoothHardwareDisabled` - -### `bluetooth` - -### `bookmarkNew` - -### `callIncoming` - -### `callMissed` - -### `callOutgoing` - -### `callStart` - -### `callStop` - -### `cameraDisabled` - -### `cameraHardwareDisabled` - -### `cameraPhoto` - -### `cameraSwitch` - -### `cameraVideo` - -### `cameraWeb` - -### `capsLock` - -### `changesAllow` - -### `changesPrevent` - -### `channelInsecure` - -### `channelSecure` - -### `chatMessageNew` - -### `checkboxChecked` - -### `checkboxMixed` - -### `checkbox` - -### `colorSelect` - -### `colorimeterColorhug` - -### `completionSnippet` - -### `completionWord` - -### `computerAppleIpad` - -### `computerFail` - -### `computer` - -### `contactNew` - -### `contentLoading` - -### `daytimeSunrise` - -### `daytimeSunset` - -### `dialogError` - -### `dialogInformation` - -### `dialogPassword` - -### `dialogQuestion` - -### `dialogWarning` - -### `displayBrightness` - -### `displayProjector` - -### `documentEdit` - -### `documentNew` - -### `documentOpenRecent` - -### `documentOpen` - -### `documentPageSetup` - -### `documentPrintPreview` - -### `documentPrint` - -### `documentProperties` - -### `documentRevertRtl` - -### `documentRevert` - -### `documentSaveAs` - -### `documentSave` - -### `documentSend` - -### `driveHarddiskIeee1394` - -### `driveHarddiskSolidstate` - -### `driveHarddisk` - -### `driveHarddiskSystem` - -### `driveHarddiskUsb` - -### `driveMultidisk` - -### `driveOptical` - -### `driveRemovableMedia` - -### `editClearAll` - -### `editClearRtl` - -### `editClear` - -### `editCopy` - -### `editCut` - -### `editDelete` - -### `editFindReplace` - -### `editFind` - -### `editPaste` - -### `editRedo` - -### `editSelectAll` - -### `editSelect` - -### `editUndo` - -### `emblemDefault` - -### `emblemDocuments` - -### `emblemFavorite` - -### `emblemImportant` - -### `emblemMusic` - -### `emblemOk` - -### `emblemPhotos` - -### `emblemShared` - -### `emblemSynchronizing` - -### `emblemSystem` - -### `emblemVideos` - -### `emojiActivities` - -### `emojiBody` - -### `emojiFlags` - -### `emojiFood` - -### `emojiNature` - -### `emojiObjects` - -### `emojiPeople` - -### `emojiRecent` - -### `emojiSymbols` - -### `emojiTravel` - -### `emoteLove` - -### `errorCorrect` - -### `faceAngel` - -### `faceAngry` - -### `faceConfused` - -### `faceCool` - -### `faceCrying` - -### `faceDevilish` - -### `faceEmbarrassed` - -### `faceGlasses` - -### `faceKiss` - -### `faceLaugh` - -### `faceMonkey` - -### `facePlain` - -### `faceRaspberry` - -### `faceSad` - -### `faceShutmouth` - -### `faceSick` - -### `faceSmileBig` - -### `faceSmile` - -### `faceSmirk` - -### `faceSurprise` - -### `faceTired` - -### `faceUncertain` - -### `faceWink` - -### `faceWorried` - -### `faceYawn` - -### `findLocation` - -### `focusLegacySystray` - -### `focusTopBar` - -### `focusWindows` - -### `folderDocuments` - -### `folderDownload` - -### `folderDragAccept` - -### `folderMusic` - -### `folderNew` - -### `folderOpen` - -### `folderPictures` - -### `folderPublicshare` - -### `folderRemote` - -### `folderSavedSearch` - -### `folder` - -### `folderTemplates` - -### `folderVideos` - -### `folderVisiting` - -### `fontSelect` - -### `fontXGeneric` - -### `formatIndentLessRtl` - -### `formatIndentLess` - -### `formatIndentMoreRtl` - -### `formatIndentMore` - -### `formatJustifyCenter` - -### `formatJustifyFill` - -### `formatJustifyLeft` - -### `formatJustifyRight` - -### `formatTextBold` - -### `formatTextDirectionLtr` - -### `formatTextDirectionRtl` - -### `formatTextDirection` - -### `formatTextItalic` - -### `formatTextPlaintext` - -### `formatTextRich` - -### `formatTextStrikethrough` - -### `formatTextUnderline` - -### `functionLinear` - -### `gestureSwipeLeft` - -### `gestureSwipeRight` - -### `gnomeDisksStateStandby` - -### `gnomePowerManager` - -### `goBottom` - -### `goDown` - -### `goFirst` - -### `goHome` - -### `goJumpRtl` - -### `goJump` - -### `goLast` - -### `goNext` - -### `goPrevious` - -### `goTop` - -### `goUp` - -### `goaAccountExchange` - -### `goaAccountGoogle` - -### `goaAccountLastfm` - -### `goaAccountMsn` - -### `goaAccountOwncloud` - -### `goaAccount` - -### `goaPanel` - -### `gtk3Demo` - -### `gtk3WidgetFactory` - -### `helpAbout` - -### `helpBrowser` - -### `helpContents` - -### `helpFaq` - -### `imageLoading` - -### `imageMissing` - -### `imageXGeneric` - -### `info` - -### `inodeDirectory` - -### `inputDialpad` - -### `inputGaming` - -### `inputKeyboard` - -### `inputMouse` - -### `inputTablet` - -### `inputTouchpad` - -### `insertImage` - -### `insertLink` - -### `insertObject` - -### `insertText` - -### `keyboardBrightness` - -### `langClass` - -### `langDefine` - -### `langEnum` - -### `langEnumValue` - -### `langFunction` - -### `langInclude` - -### `langMethod` - -### `langNamespace` - -### `langStructField` - -### `langStruct` - -### `langTypedef` - -### `langUnion` - -### `langVariable` - -### `libreofficeBase` - -### `libreofficeCalc` - -### `libreofficeDraw` - -### `libreofficeImpress` - -### `libreofficeMain` - -### `libreofficeMath` - -### `libreofficeWriter` - -### `listAdd` - -### `listDragHandle` - -### `listRemoveAll` - -### `listRemove` - -### `locationServicesActive` - -### `locationServicesDisabled` - -### `mailAttachment` - -### `mailForward` - -### `mailMarkImportant` - -### `mailMarkJunk` - -### `mailMarkNotjunk` - -### `mailMessageNew` - -### `mailRead` - -### `mailRepliedRtl` - -### `mailReplied` - -### `mailReplyAllRtl` - -### `mailReplyAll` - -### `mailReplySender` - -### `mailSendReceive` - -### `mailSend` - -### `mailUnread` - -### `markLocation` - -### `mediaEject` - -### `mediaFlash` - -### `mediaFloppy` - -### `mediaOpticalBd` - -### `mediaOpticalCdAudio` - -### `mediaOpticalCd` - -### `mediaOpticalDvd` - -### `mediaOptical` - -### `mediaPlaybackPause` - -### `mediaPlaybackStart` - -### `mediaPlaybackStop` - -### `mediaPlaylistConsecutive` - -### `mediaPlaylistRepeatSong` - -### `mediaPlaylistRepeat` - -### `mediaPlaylistShuffle` - -### `mediaRecord` - -### `mediaRemovable` - -### `mediaSeekBackward` - -### `mediaSeekForward` - -### `mediaSkipBackward` - -### `mediaSkipForward` - -### `mediaTape` - -### `mediaViewSubtitles` - -### `mediaZip` - -### `microphoneDisabled` - -### `microphoneHardwareDisabled` - -### `microphoneSensitivityHigh` - -### `microphoneSensitivityLow` - -### `microphoneSensitivityMedium` - -### `microphoneSensitivityMuted` - -### `modem` - -### `multimediaPlayerAppleIpodTouch` - -### `multimediaPlayer` - -### `multimediaVolumeControl` - -### `networkCellular_2g` - -### `networkCellular_3g` - -### `networkCellular_4g` - -### `networkCellular_5g` - -### `networkCellularAcquiringRtl` - -### `networkCellularAcquiring` - -### `networkCellularConnected` - -### `networkCellularDisabledRtl` - -### `networkCellularDisabled` - -### `networkCellularEdge` - -### `networkCellularGprs` - -### `networkCellularHardwareDisabledRtl` - -### `networkCellularHardwareDisabled` - -### `networkCellularHspa` - -### `networkCellularNoRouteRtl` - -### `networkCellularNoRoute` - -### `networkCellularOfflineRtl` - -### `networkCellularOffline` - -### `networkCellularSignalExcellentRtl` - -### `networkCellularSignalExcellent` - -### `networkCellularSignalGoodRtl` - -### `networkCellularSignalGood` - -### `networkCellularSignalNoneRtl` - -### `networkCellularSignalNone` - -### `networkCellularSignalOkRtl` - -### `networkCellularSignalOk` - -### `networkCellularSignalWeakRtl` - -### `networkCellularSignalWeak` - -### `networkCellular` - -### `networkError` - -### `networkIdle` - -### `networkNoRoute` - -### `networkOffline` - -### `networkReceive` - -### `networkServer` - -### `networkTransmitReceive` - -### `networkTransmit` - -### `networkVpnAcquiring` - -### `networkVpnDisabled` - -### `networkVpnDisconnected` - -### `networkVpnNoRoute` - -### `networkVpn` - -### `networkWiredAcquiring` - -### `networkWiredDisconnected` - -### `networkWiredNoRoute` - -### `networkWired` - -### `networkWirelessAcquiring` - -### `networkWirelessConnected` - -### `networkWirelessDisabled` - -### `networkWirelessEncrypted` - -### `networkWirelessHardwareDisabled` - -### `networkWirelessHotspot` - -### `networkWirelessNoRoute` - -### `networkWirelessOffline` - -### `networkWirelessSignalExcellent` - -### `networkWirelessSignalGood` - -### `networkWirelessSignalNone` - -### `networkWirelessSignalOk` - -### `networkWirelessSignalWeak` - -### `networkWireless` - -### `networkWorkgroup` - -### `nightLightDisabled` - -### `nightLight` - -### `nmDeviceWiredSecure` - -### `nmDeviceWired` - -### `nmDeviceWwan` - -### `nonStarred` - -### `notificationsDisabled` - -### `objectFlipHorizontal` - -### `objectFlipVertical` - -### `objectRotateLeft` - -### `objectRotateRight` - -### `objectSelect` - -### `openMenu` - -### `orca` - -### `fedoraprojectAnacondaInstaller` - -### `freedesktopMalcontentControl` - -### `gnomeAdwaita1Demo` - -### `gnomeBoxes` - -### `gnomeBuilder` - -### `gnomeCalculator` - -### `gnomeCharacters` - -### `gnomeCheese` - -### `gnomeConsole` - -### `gnomeDiskUtility` - -### `gnomeEpiphany` - -### `gnomeEvince` - -### `gnomeLogs` - -### `gnomeMaps` - -### `gnomeNautilus` - -### `gnomePhotos` - -### `gnomeRhythmbox3` - -### `gnomeSettingsAbout` - -### `gnomeSettingsAccessibility` - -### `gnomeSettingsAppearance` - -### `gnomeSettingsApplications` - -### `gnomeSettingsBluetooth` - -### `gnomeSettingsCamera` - -### `gnomeSettingsColor` - -### `gnomeSettingsDefaultApps` - -### `gnomeSettingsDiagnostics` - -### `gnomeSettingsDisplay` - -### `gnomeSettingsFileHistory` - -### `gnomeSettingsKeyboard` - -### `gnomeSettingsLocation` - -### `gnomeSettingsMicrophone` - -### `gnomeSettingsMobileNetwork` - -### `gnomeSettingsMouse` - -### `gnomeSettingsMultitasking` - -### `gnomeSettingsNetwork` - -### `gnomeSettingsNotifications` - -### `gnomeSettingsOnlineAccounts` - -### `gnomeSettingsPower` - -### `gnomeSettingsPinters` - -### `gnomeSettingsRegion` - -### `gnomeSettingsRemovableMedia` - -### `gnomeSettingsSearch` - -### `gnomeSettingsSharing` - -### `gnomeSettingsSound` - -### `gnomeSettings` - -### `gnomeSettingsSystemLockScreen` - -### `gnomeSettingsThunderbolt` - -### `gnomeSettingsTime` - -### `gnomeSettingsUsers` - -### `gnomeSettingsWacom` - -### `gnomeShellExtensions` - -### `gnomeSoftware` - -### `gnomeSystemMonitor` - -### `gnomeTextEditor` - -### `gnomeTotem` - -### `gnomeWeather` - -### `gnomeYelp` - -### `gnomeBaobab` - -### `gnomeClocks` - -### `gnomeDesignIconLibrary` - -### `gnomeEog` - -### `gnomeFontViewer` - -### `gnomeTweaks` - -### `gtkDemo4` - -### `gtkIconBrowser4` - -### `gtkPrintEditor4` - -### `gtkWidgetFactory4` - -### `gtkGtk4NodeEditor` - -### `orientationLandscapeInverse` - -### `orientationLandscape` - -### `orientationPortraitInverse` - -### `orientationPortraitLeft` - -### `orientationPortraitRight` - -### `orientationProtrait` - -### `packageXGeneric` - -### `panDown` - -### `panEnd` - -### `panStart` - -### `panUp` - -### `panelBottom` - -### `panelCenter` - -### `panelLeft` - -### `panelModified` - -### `panelRight` - -### `panelTop` - -### `pda` - -### `phoneAppleIphone` - -### `phoneOld` - -### `phone` - -### `powerProfileBalancedRtl` - -### `powerProfileBalanced` - -### `powerProfilePerformanceRtl` - -### `powerProfilePerformance` - -### `powerProfilePowerSaverRtl` - -### `powerProfilePowerSaver` - -### `preferencesColor` - -### `preferencesDesktopAccessibility` - -### `preferencesDesktopAppearance` - -### `preferencesDesktopApps` - -### `preferencesDesktopDisplay` - -### `preferencesDesktopFont` - -### `preferencesDesktopKeyboardShortcuts` - -### `preferencesDesktopKeyboard` - -### `preferencesDesktopLocale` - -### `preferencesDesktopMultitasking` - -### `preferencesDesktopRemoteDesktop` - -### `preferencesDesktopScreensaver` - -### `preferencesDesktopWallpaper` - -### `preferencesOther` - -### `preferencesSystemDetails` - -### `preferencesSystemDevices` - -### `preferencesSystemNetworkProxy` - -### `preferencesSystemNetwork` - -### `preferencesSystemNotifications` - -### `preferencesSystemParentalControls` - -### `preferencesSystemPrivacy` - -### `preferencesSystemSearch` - -### `preferencesSystemSharing` - -### `preferencesSystem` - -### `preferencesSystemTime` - -### `printerError` - -### `printerNetwork` - -### `printerPrinting` - -### `printer` - -### `printerWarning` - -### `processStop` - -### `processWorking` - -### `radioChecked` - -### `radioMixed` - -### `radio` - -### `rotationAllowed` - -### `rotationLocked` - -### `scanner` - -### `screenShared` - -### `securityHigh` - -### `securityLow` - -### `securityMediumRtl` - -### `securityMedium` - -### `selectionEnd` - -### `selectionMode` - -### `selectionStart` - -### `semiStarredRtl` - -### `semiStarred` - -### `sendTo` - -### `sidebarShowRight` - -### `sidebarShow` - -### `softwareUpdateAvailable` - -### `softwareUpdateUrgent` - -### `speedometer` - -### `starNew` - -### `starred` - -### `startHere` - -### `switchOff` - -### `switchOn` - -### `systemFileManager` - -### `systemHelp` - -### `systemLockScreen` - -### `systemLogOutRtl` - -### `systemLogOut` - -### `systemReboot` - -### `systemRun` - -### `systemSearch` - -### `systemShutdown` - -### `systemSoftwareInstall` - -### `systemSwitchUserRtl` - -### `systemSwitchUser` - -### `systemUsers` - -### `tabNew` - -### `tablet` - -### `taskDue` - -### `taskPastDue` - -### `temperature` - -### `textEditor` - -### `textXGeneric` - -### `thunderboltAcquiring` - -### `thunderbolt` - -### `toolsCheckSpelling` - -### `totemTv` - -### `touchDisabled` - -### `touchpadDisabled` - -### `tv` - -### `uninterruptiblePowerSupply` - -### `userAvailable` - -### `userAway` - -### `userBookmarks` - -### `userBusy` - -### `userDesktop` - -### `userHome` - -### `userIdle` - -### `userInfo` - -### `userInvisible` - -### `userNotTracked` - -### `userOffline` - -### `userStatusPending` - -### `userTrashFull` - -### `userTrash` - -### `utilitiesTerminal` - -### `valueDecrease` - -### `valueIncrease` - -### `videoDisplay` - -### `videoJoineDisplays` - -### `videoSingleDisplay` - -### `videoXGeneric` - -### `viewAppGrid` - -### `viewConceal` - -### `viewContinuous` - -### `viewDual` - -### `viewFullscreen` - -### `viewGrid` - -### `viewListBulletRtl` - -### `viewListBullet` - -### `viewListOrderedRtl` - -### `viewListOrdered` - -### `viewListRtl` - -### `viewList` - -### `viewMirror` - -### `viewMoreHorizontal` - -### `viewMore` - -### `viewPagedRtl` - -### `viewPaged` - -### `viewPin` - -### `viewRefresh` - -### `viewRestore` - -### `viewReveal` - -### `viewSortAscendingRtl` - -### `viewSortAscending` - -### `viewSortDescendingRtl` - -### `viewSortDescending` - -### `viewWrappedRtl` - -### `viewWrapped` - -### `weatherClearNight` - -### `weatherClear` - -### `weatherFewCloudsNight` - -### `weatherFewClouds` - -### `weatherFog` - -### `weatherHourly` - -### `weatherOvercast` - -### `weatherSevereAlert` - -### `weatherShowersScattered` - -### `weatherShowers` - -### `weatherSnow` - -### `weatherStorm` - -### `weatherTornado` - -### `weatherWindy` - -### `webBrowser` - -### `windowClose` - -### `windowMaximize` - -### `windowMinimize` - -### `windowNew` - -### `windowRestore` - -### `xOfficeAddressBook` - -### `xOfficeCalendar` - -### `xOfficeDocument` - -### `xOfficeDrawing` - -### `xOfficePresentation` - -### `xOfficeSpreadsheet` - -### `zoomFitBest` - -### `zoomIn` - -### `zoomOriginal` - -### `zoomOut` - -## Properties -### `string` - -A string representation of the icon. diff --git a/Documentation/Reference/enums/Icon.md b/Documentation/Reference/enums/Icon.md deleted file mode 100644 index df04215..0000000 --- a/Documentation/Reference/enums/Icon.md +++ /dev/null @@ -1,21 +0,0 @@ -**ENUM** - -# `Icon` - -An icon. - -## Cases -### `default(icon:)` - -A preinstalled icon. -- Parameter icon: The default icon. - -### `custom(name:)` - -A custom icon. -- Parameter name: The icon's name. - -## Properties -### `string` - -A string representation of the icon. diff --git a/Documentation/Reference/enums/NavigationView.Action.md b/Documentation/Reference/enums/NavigationView.Action.md deleted file mode 100644 index 6c6e5c8..0000000 --- a/Documentation/Reference/enums/NavigationView.Action.md +++ /dev/null @@ -1,14 +0,0 @@ -**ENUM** - -# `NavigationView.Action` - -An action to run on a view update. - -## Cases -### `pop` - -Remove the last item. - -### `push(component:)` - -Add a new item. diff --git a/Documentation/Reference/enums/Transition.md b/Documentation/Reference/enums/Transition.md deleted file mode 100644 index add6138..0000000 --- a/Documentation/Reference/enums/Transition.md +++ /dev/null @@ -1,25 +0,0 @@ -**ENUM** - -# `Transition` - -A transition for a stack. - -## Cases -### `none` - -### `crossfade` - -### `slideRight` - -### `coverUp` - -### `uncoverUp` - -### `coverUpDown` - -### `rotateLeft` - -## Properties -### `cTransition` - -Get the GtkStackTransitionType transition. diff --git a/Documentation/Reference/enums/UpdateManager.md b/Documentation/Reference/enums/UpdateManager.md deleted file mode 100644 index 4669866..0000000 --- a/Documentation/Reference/enums/UpdateManager.md +++ /dev/null @@ -1,16 +0,0 @@ -**ENUM** - -# `UpdateManager` - -This type manages view updates. - -## Properties -### `blockUpdates` - -The class storing the value. - -## Methods -### `updateViews(force:)` - -Update all of the views. -- Parameter force: Whether to force all views to update. diff --git a/Documentation/Reference/enums/ViewBuilder.Component.md b/Documentation/Reference/enums/ViewBuilder.Component.md deleted file mode 100644 index e9afc1b..0000000 --- a/Documentation/Reference/enums/ViewBuilder.Component.md +++ /dev/null @@ -1,14 +0,0 @@ -**ENUM** - -# `ViewBuilder.Component` - -A component used in the ``ArrayBuilder``. - -## Cases -### `element(_:)` - -A view as a component. - -### `components(_:)` - -An array of components as a component. diff --git a/Documentation/Reference/enums/ViewBuilder.md b/Documentation/Reference/enums/ViewBuilder.md deleted file mode 100644 index 43f4ad1..0000000 --- a/Documentation/Reference/enums/ViewBuilder.md +++ /dev/null @@ -1,54 +0,0 @@ -**ENUM** - -# `ViewBuilder` - -The ``ViewBuilder`` is a result builder for views. - -## Methods -### `buildBlock(_:)` - -Build combined results from statement blocks. -- Parameter components: The components. -- Returns: The components in a component. - -### `buildExpression(_:)` - -Translate an element into a ``ViewBuilder.Component``. -- Parameter element: The element to translate. -- Returns: A component created from the element. - -### `buildExpression(_:)` - -Translate an array of elements into a ``ViewBuilder.Component``. -- Parameter elements: The elements to translate. -- Returns: A component created from the element. - -### `buildExpression(_:)` - -Fetch a component. -- Parameter component: A component. -- Returns: The component. - -### `buildOptional(_:)` - -Enables support for `if` statements without an `else`. -- Parameter component: An optional component. -- Returns: A nonoptional component. - -### `buildEither(first:)` - -Enables support for `if`-`else` and `switch` statements. -- Parameter component: A component. -- Returns: The component. - -### `buildEither(second:)` - -Enables support for `if`-`else` and `switch` statements. -- Parameter component: A component. -- Returns: The component. - -### `buildFinalResult(_:)` - -Convert a component to an array of elements. -- Parameter component: The component to convert. -- Returns: The generated array of elements. diff --git a/Documentation/Reference/extensions/ActionRow.md b/Documentation/Reference/extensions/ActionRow.md deleted file mode 100644 index fa48f5c..0000000 --- a/Documentation/Reference/extensions/ActionRow.md +++ /dev/null @@ -1,9 +0,0 @@ -**EXTENSION** - -# `ActionRow` - -## Methods -### `init(_:)` - -Initialize an action row. -- Parameter title: The row's title. diff --git a/Documentation/Reference/extensions/App.md b/Documentation/Reference/extensions/App.md deleted file mode 100644 index 4281312..0000000 --- a/Documentation/Reference/extensions/App.md +++ /dev/null @@ -1,8 +0,0 @@ -**EXTENSION** - -# `App` - -## Methods -### `main()` - -The application's entry point. diff --git a/Documentation/Reference/extensions/Array.md b/Documentation/Reference/extensions/Array.md deleted file mode 100644 index dade731..0000000 --- a/Documentation/Reference/extensions/Array.md +++ /dev/null @@ -1,38 +0,0 @@ -**EXTENSION** - -# `Array` - -## Properties -### `view` - -The array's view body is the array itself. - -### `cArray` - -Get the C version of the array. - -## Methods -### `widget(modifiers:)` - -Get a widget from a collection of views. -- Parameter modifiers: Modify views before being updated. -- Returns: A widget. - -### `update(_:modifiers:updateProperties:)` - -Update a collection of views with a collection of view storages. -- Parameters: - - storage: The collection of view storages. - - modifiers: Modify views before being updated. - - updateProperties: Whether to update properties. - -### `windows()` - -Get the content of an array of window scene groups. -- Returns: The array of windows. - -### `checkIndex(_:)` - -Check if a given index is valid for the array. -- Parameter index: The index to test. -- Returns: Return whether the index is valid or not. diff --git a/Documentation/Reference/extensions/Banner.md b/Documentation/Reference/extensions/Banner.md deleted file mode 100644 index c61a38e..0000000 --- a/Documentation/Reference/extensions/Banner.md +++ /dev/null @@ -1,19 +0,0 @@ -**EXTENSION** - -# `Banner` - -## Methods -### `init(_:visible:)` - -Initialize a text widget. -- Parameters: - - title: The content. - - visible: Whether the banner is visible. - -### `button(_:handler:)` - -Configure the banner's button. -- Parameters: - - label: The button's title. - - handler: The button's handler. -- Returns: The banner. diff --git a/Documentation/Reference/extensions/Binding.md b/Documentation/Reference/extensions/Binding.md deleted file mode 100644 index 36f5803..0000000 --- a/Documentation/Reference/extensions/Binding.md +++ /dev/null @@ -1,11 +0,0 @@ -**EXTENSION** - -# `Binding` - -## Methods -### `model(_:)` - -Share an observable model with the child view. -- Parameters - - model: The observable model. -- Returns: The binding. diff --git a/Documentation/Reference/extensions/Bool.md b/Documentation/Reference/extensions/Bool.md deleted file mode 100644 index ca11f79..0000000 --- a/Documentation/Reference/extensions/Bool.md +++ /dev/null @@ -1,8 +0,0 @@ -**EXTENSION** - -# `Bool` - -## Properties -### `cBool` - -Get the gboolean for C. diff --git a/Documentation/Reference/extensions/Box.md b/Documentation/Reference/extensions/Box.md deleted file mode 100644 index 077471b..0000000 --- a/Documentation/Reference/extensions/Box.md +++ /dev/null @@ -1,9 +0,0 @@ -**EXTENSION** - -# `Box` - -## Methods -### `vertical()` - -Initialize a vertical `Libadwaita.Box`. -- Returns: The vertical box. diff --git a/Documentation/Reference/extensions/Button.md b/Documentation/Reference/extensions/Button.md deleted file mode 100644 index 0fc4593..0000000 --- a/Documentation/Reference/extensions/Button.md +++ /dev/null @@ -1,39 +0,0 @@ -**EXTENSION** - -# `Button` - -## Methods -### `init(_:icon:handler:)` - -Initialize a button. -- Parameters: - - label: The button's label. - - icon: The button's icon. - - handler: The button's action handler. - -### `init(_:handler:)` - -Initialize a button. -- Parameters: - - label: The buttons label. - - handler: The button's action handler. - -### `keyboardShortcut(_:window:)` - -Create a keyboard shortcut for an application window from a button. - -Note that the keyboard shortcut is available after the view has been visible for the first time. -- Parameters: - - shortcut: The keyboard shortcut. - - window: The application window. -- Returns: The button. - -### `keyboardShortcut(_:app:)` - -Create a keyboard shortcut for an application from a button. - -Note that the keyboard shortcut is available after the view has been visible for the first time. -- Parameters: - - shortcut: The keyboard shortcut. - - window: The application. -- Returns: The button. diff --git a/Documentation/Reference/extensions/Carousel.md b/Documentation/Reference/extensions/Carousel.md deleted file mode 100644 index 1a01464..0000000 --- a/Documentation/Reference/extensions/Carousel.md +++ /dev/null @@ -1,10 +0,0 @@ -**EXTENSION** - -# `Carousel` - -## Methods -### `longSwipes(_:)` - -Set whether long swipes are allowed or not. -- Parameter longSwipes: Whether long swipes are allowed. -- Returns: The carousel. diff --git a/Documentation/Reference/extensions/Clamp.md b/Documentation/Reference/extensions/Clamp.md deleted file mode 100644 index 0e72b06..0000000 --- a/Documentation/Reference/extensions/Clamp.md +++ /dev/null @@ -1,9 +0,0 @@ -**EXTENSION** - -# `Clamp` - -## Methods -### `init(vertical:)` - -Initialize either a horizontal or vertical clamp. -- Parameter vertical: Whether it is a vertical clamp. diff --git a/Documentation/Reference/extensions/ComboRow.md b/Documentation/Reference/extensions/ComboRow.md deleted file mode 100644 index a825ccb..0000000 --- a/Documentation/Reference/extensions/ComboRow.md +++ /dev/null @@ -1,17 +0,0 @@ -**EXTENSION** - -# `ComboRow` - -## Properties -### `values` - -### `stringList` - -## Methods -### `init(_:selection:values:)` - -Initialize a combo row. -- Parameters: - - title: The row's title. - - selection: The selected value. - - values: The available values. diff --git a/Documentation/Reference/extensions/EntryRow.md b/Documentation/Reference/extensions/EntryRow.md deleted file mode 100644 index 7316d98..0000000 --- a/Documentation/Reference/extensions/EntryRow.md +++ /dev/null @@ -1,26 +0,0 @@ -**EXTENSION** - -# `EntryRow` - -## Properties -### `textField` - -## Methods -### `init(_:text:)` - -Initialize an entry row. -- Parameters: - - title: The row's title. - - text: The text. - -### `onSubmit(_:)` - -Set the entry row's subtitle. -- Parameter subtitle: The subtitle. -- Returns: The entry row. - -### `secure(text:)` - -Let the user securely enter private text. -- Parameter: The text. -- Returns: The entry row. diff --git a/Documentation/Reference/extensions/FlowBox.md b/Documentation/Reference/extensions/FlowBox.md deleted file mode 100644 index 0c04f7a..0000000 --- a/Documentation/Reference/extensions/FlowBox.md +++ /dev/null @@ -1,21 +0,0 @@ -**EXTENSION** - -# `FlowBox` - -## Properties -### `selectionField` - -The ID for the field storing the selection value. - -### `elementsField` - -The ID for the field storing the elements. - -## Methods -### `init(_:selection:content:)` - -Initialize `FlowBox`. -- Parameters: - - elements: The elements. - - selection: The identifier of the selected element. Selection disabled if `nil`. - - content: The view for an element. diff --git a/Documentation/Reference/extensions/FormSection.md b/Documentation/Reference/extensions/FormSection.md deleted file mode 100644 index 5d5482f..0000000 --- a/Documentation/Reference/extensions/FormSection.md +++ /dev/null @@ -1,17 +0,0 @@ -**EXTENSION** - -# `FormSection` - -## Methods -### `init(_:content:)` - -Initialize a form section. -- Parameters: - - title: The title. - - content: The content, usually one or more forms. - -### `suffix(_:)` - -Set the form section's suffix view. -- Parameter suffix: The suffix. -- Returns: The form section. diff --git a/Documentation/Reference/extensions/GTUIWindow.md b/Documentation/Reference/extensions/GTUIWindow.md deleted file mode 100644 index f834fd1..0000000 --- a/Documentation/Reference/extensions/GTUIWindow.md +++ /dev/null @@ -1,9 +0,0 @@ -**EXTENSION** - -# `GTUIWindow` - -## Methods -### `setParentWindow(_:)` - -Set the window's parent window. -- Parameter parent: The parent window. diff --git a/Documentation/Reference/extensions/HeaderBar.md b/Documentation/Reference/extensions/HeaderBar.md deleted file mode 100644 index e91ec2b..0000000 --- a/Documentation/Reference/extensions/HeaderBar.md +++ /dev/null @@ -1,35 +0,0 @@ -**EXTENSION** - -# `HeaderBar` - -## Methods -### `init(titleButtons:start:end:)` - -Initialize a header bar. -- Parameters: - - titleButtons: Whether the title buttons (e.g. close button) are visible. - - start: The start content. - - end: The end content. - -### `empty()` - -Initialize an empty header bar. -- Returns: The header bar. - -### `start(start:)` - -Initialize a header bar with only views at the start. -- Parameter start: The views. -- Returns: The header bar. - -### `end(end:)` - -Initialize a header bar with only views at the end. -- Parameter start: The views. -- Returns: The header bar. - -### `headerBarTitle(view:)` - -Set the title widget for the header bar. -- Parameter view: The widget in the header bar. -- Returns: The header bar. diff --git a/Documentation/Reference/extensions/Int.md b/Documentation/Reference/extensions/Int.md deleted file mode 100644 index 1d6a3a6..0000000 --- a/Documentation/Reference/extensions/Int.md +++ /dev/null @@ -1,12 +0,0 @@ -**EXTENSION** - -# `Int` - -## Properties -### `id` - -Get the integer itself as the identifier. - -### `cInt` - -The C integer. diff --git a/Documentation/Reference/extensions/Libadwaita.FileDialog.md b/Documentation/Reference/extensions/Libadwaita.FileDialog.md deleted file mode 100644 index cb3d422..0000000 --- a/Documentation/Reference/extensions/Libadwaita.FileDialog.md +++ /dev/null @@ -1,48 +0,0 @@ -**EXTENSION** - -# `Libadwaita.FileDialog` - -## Properties -### `importer` - -An ID for the importer field. - -### `folder` - -An ID for the folder field. - -### `result` - -An ID for the result field. - -### `cancel` - -An ID for the cancel field. - -### `isImporter` - -Whether the file dialog is an importer. - -### `folder` - -The selected folder in the file dialog. - -### `onResult` - -A closure triggered on selecting a file in the dialog. - -### `onCancel` - -A closure triggered when the dialog is canceled. - -## Methods -### `setParentWindow(_:)` - -Set the window's parent window. -- Parameter parent: The parent window. - -Currently not implemented. - -### `show()` - -Display the file dialog. diff --git a/Documentation/Reference/extensions/List.md b/Documentation/Reference/extensions/List.md deleted file mode 100644 index 4edd999..0000000 --- a/Documentation/Reference/extensions/List.md +++ /dev/null @@ -1,25 +0,0 @@ -**EXTENSION** - -# `List` - -## Properties -### `selectionField` - -The ID for the field storing the selection value. - -### `elementsField` - -The ID for the field storing the elements. - -## Methods -### `init(_:selection:content:)` - -Initialize `List`. -- Parameters: - - elements: The elements. - - selection: The identifier of the selected element. Selection disabled if `nil`. - - content: The view for an element. - -### `sidebarStyle()` - -Add the "navigation-sidebar" style class. diff --git a/Documentation/Reference/extensions/Menu.md b/Documentation/Reference/extensions/Menu.md deleted file mode 100644 index 4e5e891..0000000 --- a/Documentation/Reference/extensions/Menu.md +++ /dev/null @@ -1,23 +0,0 @@ -**EXTENSION** - -# `Menu` - -## Methods -### `init(_:icon:app:window:content:)` - -Initialize a menu button. -- Parameters: - - label: The button's label. - - icon: The button's icon. - - app: The application. - - window: The application window. - - content: The menu's content. - -### `init(_:app:window:content:)` - -Initialize a menu button. -- Parameters: - - label: The buttons label. - - app: The application. - - window: The application window. - - content: The menu's content. diff --git a/Documentation/Reference/extensions/MenuItem.md b/Documentation/Reference/extensions/MenuItem.md deleted file mode 100644 index 81dfbdb..0000000 --- a/Documentation/Reference/extensions/MenuItem.md +++ /dev/null @@ -1,8 +0,0 @@ -**EXTENSION** - -# `MenuItem` - -## Properties -### `content` - -The menu item's content is itself. diff --git a/Documentation/Reference/extensions/MenuItemGroup.md b/Documentation/Reference/extensions/MenuItemGroup.md deleted file mode 100644 index 435e04e..0000000 --- a/Documentation/Reference/extensions/MenuItemGroup.md +++ /dev/null @@ -1,9 +0,0 @@ -**EXTENSION** - -# `MenuItemGroup` - -## Methods -### `addMenuItems(menu:app:window:)` - -Add the menu items described by the group to a menu. -- Parameter menu: The menu. diff --git a/Documentation/Reference/extensions/NativeWidgetPeer.md b/Documentation/Reference/extensions/NativeWidgetPeer.md deleted file mode 100644 index 86a0410..0000000 --- a/Documentation/Reference/extensions/NativeWidgetPeer.md +++ /dev/null @@ -1,23 +0,0 @@ -**EXTENSION** - -# `NativeWidgetPeer` - -## Methods -### `update(_:modifiers:)` - -A `Libadwaita.NativeWidgetPeer` is static. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - -### `container(modifiers:)` - -A `Libadwaita.NativeWidgetPeer`'s container is itself. -- Parameter modifiers: Modify views before being updated. -- Returns: The view storage. - -### `modifier(code:)` - -Get a modifier stirng. -- Parameter code: The modifier. -- Returns: The string. diff --git a/Documentation/Reference/extensions/NavigationView.md b/Documentation/Reference/extensions/NavigationView.md deleted file mode 100644 index b266b0a..0000000 --- a/Documentation/Reference/extensions/NavigationView.md +++ /dev/null @@ -1,18 +0,0 @@ -**EXTENSION** - -# `NavigationView` - -## Properties -### `componentID` - -The ID for the component field in a content storage. - -## Methods -### `init(_:_:content:initialView:)` - -Initialize a navigation view. -- Parameters: - - stack: The navigation stack for pushing and popping. - - initialTitle: The title of the initial view. - - content: The view for a path component. - - initialView: The view that is displayed when the path is empty. diff --git a/Documentation/Reference/extensions/OpaquePointer.md b/Documentation/Reference/extensions/OpaquePointer.md deleted file mode 100644 index f7ddc2a..0000000 --- a/Documentation/Reference/extensions/OpaquePointer.md +++ /dev/null @@ -1,9 +0,0 @@ -**EXTENSION** - -# `OpaquePointer` - -## Methods -### `cast()` - -Convert an opaque pointer into an unsafe mutable pointer with a defined type. -- Returns: The unsafe mutable pointer. diff --git a/Documentation/Reference/extensions/OverlaySplitView.md b/Documentation/Reference/extensions/OverlaySplitView.md deleted file mode 100644 index a2505ef..0000000 --- a/Documentation/Reference/extensions/OverlaySplitView.md +++ /dev/null @@ -1,18 +0,0 @@ -**EXTENSION** - -# `OverlaySplitView` - -## Methods -### `init(visible:sidebar:content:)` - -Initialize an overlay split view. -- Parameters: - - visible: Whether the sidebar is visible. - - sidebar: The sidebar content. - - content: The main content. - -### `trailingSidebar(_:)` - -The position of the sidebar. -- Parameter trailing: Whether the sidebar is at the trailing position. -- Returns: The navigation split view. diff --git a/Documentation/Reference/extensions/PasswordEntryRow.md b/Documentation/Reference/extensions/PasswordEntryRow.md deleted file mode 100644 index ca01011..0000000 --- a/Documentation/Reference/extensions/PasswordEntryRow.md +++ /dev/null @@ -1,20 +0,0 @@ -**EXTENSION** - -# `PasswordEntryRow` - -## Properties -### `textField` - -## Methods -### `init(_:text:)` - -Initialize an entry row. -- Parameters: - - title: The row's title. - - text: The text. - -### `onSubmit(_:)` - -Set the entry row's subtitle. -- Parameter subtitle: The subtitle. -- Returns: The entry row. diff --git a/Documentation/Reference/extensions/Popover.md b/Documentation/Reference/extensions/Popover.md deleted file mode 100644 index 4a18e7c..0000000 --- a/Documentation/Reference/extensions/Popover.md +++ /dev/null @@ -1,9 +0,0 @@ -**EXTENSION** - -# `Popover` - -## Methods -### `init(visible:)` - -Initialize either a horizontal or vertical clamp. -- Parameter vertical: Whether it is a vertical clamp. diff --git a/Documentation/Reference/extensions/ProgressBar.md b/Documentation/Reference/extensions/ProgressBar.md deleted file mode 100644 index 595af9b..0000000 --- a/Documentation/Reference/extensions/ProgressBar.md +++ /dev/null @@ -1,11 +0,0 @@ -**EXTENSION** - -# `ProgressBar` - -## Methods -### `init(value:total:)` - -Initialize a progress bar widget. -- Parameters: - - value: The value. - - total: The maximum value. diff --git a/Documentation/Reference/extensions/ScrollView.md b/Documentation/Reference/extensions/ScrollView.md deleted file mode 100644 index 9430d07..0000000 --- a/Documentation/Reference/extensions/ScrollView.md +++ /dev/null @@ -1,9 +0,0 @@ -**EXTENSION** - -# `ScrollView` - -## Methods -### `init(content:)` - -Initialize a `ScrollView`. -- Parameter content: The view content. diff --git a/Documentation/Reference/extensions/Set.md b/Documentation/Reference/extensions/Set.md deleted file mode 100644 index 508679c..0000000 --- a/Documentation/Reference/extensions/Set.md +++ /dev/null @@ -1,39 +0,0 @@ -**EXTENSION** - -# `Set` - -## Properties -### `all` - -Horizontal and vertical edges. - -### `vertical` - -Top and bottom edges. - -### `horizontal` - -Leading and trailing edges. - -### `top` - -Top edge. - -### `bottom` - -Bottom edge. - -### `leading` - -Leading edge. - -### `trailing` - -Trailing edge. - -## Methods -### `add(_:)` - -Add a collection of edges to a collection of edges. -- Parameter edges: The collection of edges. -- Returns: Both collections combined. diff --git a/Documentation/Reference/extensions/SpinRow.md b/Documentation/Reference/extensions/SpinRow.md deleted file mode 100644 index 993a60b..0000000 --- a/Documentation/Reference/extensions/SpinRow.md +++ /dev/null @@ -1,34 +0,0 @@ -**EXTENSION** - -# `SpinRow` - -## Methods -### `init(_:value:min:max:)` - -Initialize a spin row. -- Parameters: - - title: The row's title. - - value: The selected value. - - min: The minimum value. - - max: The maximum value. - -### `init(_:value:min:max:)` - -Initialize a spin row. -- Parameters: - - title: The row's title. - - value: The selected value. - - min: The minimum value. - - max: The maximum value. - -### `step(_:)` - -Set the difference a single click on the increase/decrease buttons makes. -- Parameter step: The increase/decrease step. -- Returns: The spin row. - -### `step(_:)` - -Set the difference a single click on the increase/decrease buttons makes. -- Parameter step: The increase/decrease step. -- Returns: The spin row. diff --git a/Documentation/Reference/extensions/State.md b/Documentation/Reference/extensions/State.md deleted file mode 100644 index 77b5bb3..0000000 --- a/Documentation/Reference/extensions/State.md +++ /dev/null @@ -1,27 +0,0 @@ -**EXTENSION** - -# `State` - -## Methods -### `init(wrappedValue:_:folder:forceUpdates:)` - -Initialize a property representing a state in the view. -- Parameters: - - wrappedValue: The wrapped value. - - key: The unique storage key of the property. - - folder: The path to the folder containing the JSON file. - - forceUpdates: Whether to force update all available views when the property gets modified. - -The folder path will be appended to the XDG data home directory. - -### `checkFile()` - -Check whether the settings file exists, and, if not, create it. - -### `readValue()` - -Update the local value with the value from the file. - -### `writeCodableValue()` - -Update the value on the file with the local value. diff --git a/Documentation/Reference/extensions/StatusPage.md b/Documentation/Reference/extensions/StatusPage.md deleted file mode 100644 index e128793..0000000 --- a/Documentation/Reference/extensions/StatusPage.md +++ /dev/null @@ -1,13 +0,0 @@ -**EXTENSION** - -# `StatusPage` - -## Methods -### `init(_:icon:description:content:)` - -Initialize a status page widget. -- Parameters: - - title: The title. - - icon: The icon. - - description: Additional details. - - content: Additional content. diff --git a/Documentation/Reference/extensions/String.md b/Documentation/Reference/extensions/String.md deleted file mode 100644 index d219da1..0000000 --- a/Documentation/Reference/extensions/String.md +++ /dev/null @@ -1,47 +0,0 @@ -**EXTENSION** - -# `String` - -## Properties -### `mainContent` - -A label for main content in a view storage. - -### `transition` - -A label for the transition data in a GTUI widget's fields. - -### `navigationLabel` - -A label for the navigation label in a GTUI widget's fields. - -## Methods -### `ctrl()` - -Add the Ctrl key to a shortcut. -- Returns: The shortcut. - -### `shift()` - -Add the Shift key to a shortcut. -- Returns: The shortcut. - -### `alt()` - -Add the Alt key to a shortcut. -- Returns: The shortcut. - -### `meta()` - -Add the Meta key to a shortcut. -- Returns: The shortcut. - -### `super()` - -Add the Super key to a shortcut. -- Returns: The shortcut. - -### `hyper()` - -Add the Hyper key to a shortcut. -- Returns: The shortcut. diff --git a/Documentation/Reference/extensions/SwitchRow.md b/Documentation/Reference/extensions/SwitchRow.md deleted file mode 100644 index 25f977c..0000000 --- a/Documentation/Reference/extensions/SwitchRow.md +++ /dev/null @@ -1,11 +0,0 @@ -**EXTENSION** - -# `SwitchRow` - -## Methods -### `init(_:isOn:)` - -Initialize a switch row. -- Parameters: - - title: The row's title. - - isOn: Whether the switch is on. diff --git a/Documentation/Reference/extensions/Text.md b/Documentation/Reference/extensions/Text.md deleted file mode 100644 index 125688b..0000000 --- a/Documentation/Reference/extensions/Text.md +++ /dev/null @@ -1,9 +0,0 @@ -**EXTENSION** - -# `Text` - -## Methods -### `init(_:)` - -Initialize a text widget. -- Parameter text: The content. diff --git a/Documentation/Reference/extensions/ToastOverlay.md b/Documentation/Reference/extensions/ToastOverlay.md deleted file mode 100644 index a3027bc..0000000 --- a/Documentation/Reference/extensions/ToastOverlay.md +++ /dev/null @@ -1,19 +0,0 @@ -**EXTENSION** - -# `ToastOverlay` - -## Methods -### `init(_:signal:)` - -Initialize a toast overlay. -- Parameters: - - title: The toast's title. - - signal: The signal for adding a toast. - -### `action(button:handler:)` - -Add an action button to the toast. -- Parameters: - - button: The button's label. - - handler: The handler. -- Returns: The toast overlay. diff --git a/Documentation/Reference/extensions/Toggle.md b/Documentation/Reference/extensions/Toggle.md deleted file mode 100644 index 2c5ec13..0000000 --- a/Documentation/Reference/extensions/Toggle.md +++ /dev/null @@ -1,24 +0,0 @@ -**EXTENSION** - -# `Toggle` - -## Methods -### `init(_:icon:isOn:)` - -Initialize a toggle button. -- Parameters: - - label: The button's label. - - icon: The button's icon. - - isOn: Whether the toggle is on. - -### `init(_:isOn:)` - -Initialize a toggle button. -- Parameters: - - label: The buttons label. - - isOn: Whether the toggle is on. - -### `checkButton()` - -Use the check button style. -- Returns: The toggle. diff --git a/Documentation/Reference/extensions/UInt.md b/Documentation/Reference/extensions/UInt.md deleted file mode 100644 index b30342c..0000000 --- a/Documentation/Reference/extensions/UInt.md +++ /dev/null @@ -1,8 +0,0 @@ -**EXTENSION** - -# `UInt` - -## Properties -### `cInt` - -Convert an unsigned integer into the C form. diff --git a/Documentation/Reference/extensions/UnsafeMutablePointer.md b/Documentation/Reference/extensions/UnsafeMutablePointer.md deleted file mode 100644 index 543b4ac..0000000 --- a/Documentation/Reference/extensions/UnsafeMutablePointer.md +++ /dev/null @@ -1,14 +0,0 @@ -**EXTENSION** - -# `UnsafeMutablePointer` - -## Methods -### `opaque()` - -Convert into an opaque pointer. -- Returns: The opaque pointer. - -### `cast()` - -Convert into an unsafe mutable pointer of another type. -- Returns: The unsafe mutable pointer. diff --git a/Documentation/Reference/extensions/UnsafeMutableRawPointer.md b/Documentation/Reference/extensions/UnsafeMutableRawPointer.md deleted file mode 100644 index c8b9bc6..0000000 --- a/Documentation/Reference/extensions/UnsafeMutableRawPointer.md +++ /dev/null @@ -1,9 +0,0 @@ -**EXTENSION** - -# `UnsafeMutableRawPointer` - -## Methods -### `cast()` - -Convert into an unsafe mutable pointer of a certain type. -- Returns: The unsafe mutable pointer. diff --git a/Documentation/Reference/extensions/VStack.md b/Documentation/Reference/extensions/VStack.md deleted file mode 100644 index 2f2e334..0000000 --- a/Documentation/Reference/extensions/VStack.md +++ /dev/null @@ -1,11 +0,0 @@ -**EXTENSION** - -# `VStack` - -## Methods -### `init(content:)` - -Initialize a `VStack`. -- Parameter content: The view content. - -### `init(horizontal:content:)` diff --git a/Documentation/Reference/extensions/View.md b/Documentation/Reference/extensions/View.md deleted file mode 100644 index a0a9ab9..0000000 --- a/Documentation/Reference/extensions/View.md +++ /dev/null @@ -1,242 +0,0 @@ -**EXTENSION** - -# `View` - -## Methods -### `widget(modifiers:)` - -Wrap the view into a widget. -- Parameter modifiers: Modify views before being updated. -- Returns: The widget. - -### `updateStorage(_:modifiers:updateProperties:)` - -Update a storage to a view. -- Parameters: - - storage: The storage. - - modifiers: Modify views before being updated. - - updateProperties: Whether to update properties. - -### `getState()` - -### `storage(modifiers:)` - -Get a storage. -- Parameter modifiers: Modify views before being updated. -- Returns: The storage. - -### `getModified(modifiers:)` - -### `inspectOnAppear(_:)` - -Run a function on the widget when it appears for the first time. -- Parameter closure: The function. -- Returns: A view. - -### `onAppear(_:)` - -Run a function when the view appears for the first time. -- Parameter closure: The function. -- Returns: A view. - -### `onClick(handler:)` - -Run a function when the widget gets clicked. -- Parameter handler: The function. -- Returns: A view. - -### `frame(maxSize:)` - -Set the view's maximum width. -- Parameter maxSize: The maximum width. -- Returns: A view. - -### `frame(maxWidth:)` - -Set the view's maximum width. -- Parameter maxWidth: The maximum width. -- Returns: A view. - -### `frame(maxHeight:)` - -Set the view's maximum height. -- Parameter maxHeight: The maximum height. -- Returns: A view. - -### `modifyContent(_:modify:)` - -Replace every occurrence of a certain view type in the content. -- Parameters: - - type: The view type. - - modify: Modify the view. -- Returns: A view. - -### `freeze(_:)` - -Prevent a view from being updated. -- Parameter freeze: Whether to freeze the view. -- Returns: A view. - -### `inspect(_:)` - -Modify a GTUI widget before being displayed and when being updated. -- Parameter modify: Modify the widget. -- Returns: A view. - -### `padding(_:_:)` - -Add padding around a view. -- Parameters: - - padding: The size of the padding. - - edges: The edges which are affected by the padding. -- Returns: A view. - -### `hexpand(_:)` - -Enable or disable the horizontal expansion. -- Parameter enabled: Whether it is enabled or disabled. -- Returns: A view. - -### `vexpand(_:)` - -Enable or disable the vertical expansion. -- Parameter enabled: Whether it is enabled or disabled. -- Returns: A view. - -### `halign(_:)` - -Set the horizontal alignment. -- Parameter align: The alignment. -- Returns: A view. - -### `valign(_:)` - -Set the vertical alignment. -- Parameter align: The alignment. -- Returns: A view. - -### `frame(minWidth:minHeight:)` - -Set the view's minimal width or height. -- Parameters: - - minWidth: The minimal width. - - minHeight: The minimal height. -- Returns: A view. - -### `transition(_:)` - -Set the view's transition. -- Parameter transition: The transition. -- Returns: A view. - -### `navigationTitle(_:)` - -Set the view's navigation title. -- Parameter label: The navigation title. -- Returns: A view. - -### `style(_:)` - -Add a style class to the view. -- Parameter style: The style class. -- Returns: A view. - -### `onUpdate(_:)` - -Run a function when the view gets an update. -- Parameter onUpdate: The function. -- Returns: A view. - -### `insensitive(_:)` - -Make the view insensitive (useful e.g. in overlays). -- Parameter insensitive: Whether the view is insensitive. -- Returns: A view. - -### `visible(_:)` - -Set the view's visibility. -- Parameter visible: Whether the view is visible. -- Returns: A view. - -### `focused(_:)` - -Bind to the view's focus. -- Parameter focus: Whether the view is focused. -- Returns: A view. - -### `focus(_:)` - -Bind a signal that focuses the view. -- Parameter focus: Whether the view is focused. -- Returns: A view. - -### `tooltip(_:)` - -Add a tooltip to the widget. -- Parameter tooltip: The tooltip text. -- Returns: A view. - -### `stopModifiers()` - -Remove all of the content modifiers for the wrapped views. -- Returns: A view. - -### `popover(visible:content:)` - -Add a popover on top of the view. -- Parameters: - - visible: Whether the popover is displayed. - - content: The popover's content. -- Returns: The view. - -### `toast(_:signal:)` - -Present a toast when the signal gets activated. -- Parameters: - - title: The title of the toast. - - signal: The signal which activates the presentation of a toast. -- Returns: A view. - -### `toast(_:signal:button:handler:)` - -Present a toast with a button when the signal gets activated. -- Parameters: - - title: The title of the toast. - - signal: The signal which activates the presentation of a toast. - - button: The button's label. - - handler: The handler for the button. -- Returns: A view. - -### `verticalCenter()` - -Wrap the view in a vertical stack and center vertically. -- Returns: The view. - -### `horizontalCenter()` - -Wrap the view in a horizontal stack and center horizontally. -- Returns: The view. - -### `topToolbar(visible:_:)` - -Add a top toolbar to the view. -- Parameters: - - toolbar: The toolbar's content. - - visible: Whether the toolbar is visible. -- Returns: A view. - -### `bottomToolbar(visible:_:)` - -Add a bottom toolbar to the view. -- Parameters: - - toolbar: The toolbar's content. - - visible: Whether the toolbar is visible. -- Returns: A view. - -### `overlay(_:)` - -Add an overlay view. -- Parameters: - - overlay: The overlay view. -- Returns: A view. diff --git a/Documentation/Reference/extensions/Widget.md b/Documentation/Reference/extensions/Widget.md deleted file mode 100644 index 6a38c6e..0000000 --- a/Documentation/Reference/extensions/Widget.md +++ /dev/null @@ -1,8 +0,0 @@ -**EXTENSION** - -# `Widget` - -## Properties -### `view` - -A widget's view is empty. diff --git a/Documentation/Reference/extensions/WindowScene.md b/Documentation/Reference/extensions/WindowScene.md deleted file mode 100644 index 89264b5..0000000 --- a/Documentation/Reference/extensions/WindowScene.md +++ /dev/null @@ -1,27 +0,0 @@ -**EXTENSION** - -# `WindowScene` - -## Properties -### `scene` - -The window scene's body is itself. - -## Methods -### `appKeyboardShortcut(_:action:)` - -Add a keyboard shortcut that is available for the whole app. -- Parameters: - - shortcut: The keyboard shortcut. - - The closure to execute. - -### `updateAppShortcuts(app:)` - -Update the app shortcuts. - -Call this function in types of window scene. - -### `quitShortcut()` - -Add the shortcut "q" which terminates the application. -- Returns: The app. diff --git a/Documentation/Reference/extensions/WindowSceneGroup.md b/Documentation/Reference/extensions/WindowSceneGroup.md deleted file mode 100644 index 24907c6..0000000 --- a/Documentation/Reference/extensions/WindowSceneGroup.md +++ /dev/null @@ -1,17 +0,0 @@ -**EXTENSION** - -# `WindowSceneGroup` - -## Methods -### `windows()` - -Get the windows described by the group. -- Returns: The windows. - -### `update(_:app:force:)` - -Update the windows described by the group. -- Parameters: - - storage: The window's storage. - - app: The application. - - force: Whether to force update all the views. diff --git a/Documentation/Reference/methods/filedialog_on_open_cb(ptr_file_userData_).md b/Documentation/Reference/methods/filedialog_on_open_cb(ptr_file_userData_).md deleted file mode 100644 index d660bc8..0000000 --- a/Documentation/Reference/methods/filedialog_on_open_cb(ptr_file_userData_).md +++ /dev/null @@ -1,7 +0,0 @@ -### `filedialog_on_open_cb(ptr:file:userData:)` - -Run when a file should be opened. -- Parameters: - - ptr: The pointer. - - file: The path to the file. - - userData: The file dialog data. diff --git a/Documentation/Reference/methods/filedialog_on_save_cb(ptr_file_userData_).md b/Documentation/Reference/methods/filedialog_on_save_cb(ptr_file_userData_).md deleted file mode 100644 index dfc0b3a..0000000 --- a/Documentation/Reference/methods/filedialog_on_save_cb(ptr_file_userData_).md +++ /dev/null @@ -1,7 +0,0 @@ -### `filedialog_on_save_cb(ptr:file:userData:)` - -Run when a file should be saved. -- Parameters: - - ptr: The pointer. - - file: The path to the file. - - userData: The file dialog data. diff --git a/Documentation/Reference/protocols/App.md b/Documentation/Reference/protocols/App.md deleted file mode 100644 index 21da6c6..0000000 --- a/Documentation/Reference/protocols/App.md +++ /dev/null @@ -1,37 +0,0 @@ -**PROTOCOL** - -# `App` - -A structure conforming to `App` is the entry point of your app. - -```swift -@main -struct Test: App { - - let id = "io.github.AparokshaUI.TestApp" - var app: GTUIApp! - - var scene: Scene { - WindowScene() - } - -} -``` - -## Properties -### `id` - -The app's application ID. - -### `scene` - -The app's windows. - -### `app` - -The app. - -## Methods -### `init()` - -An app has to have an `init()` initializer. diff --git a/Documentation/Reference/protocols/MenuItem.md b/Documentation/Reference/protocols/MenuItem.md deleted file mode 100644 index c58eefa..0000000 --- a/Documentation/Reference/protocols/MenuItem.md +++ /dev/null @@ -1,14 +0,0 @@ -**PROTOCOL** - -# `MenuItem` - -A structure representing the content for a certain menu item type. - -## Methods -### `addMenuItem(menu:app:window:)` - -Add the menu item to a certain menu. -- Parameters: - - menu: The menu. - - app: The application containing the menu. - - window: The application window containing the menu. diff --git a/Documentation/Reference/protocols/MenuItemGroup.md b/Documentation/Reference/protocols/MenuItemGroup.md deleted file mode 100644 index eda9fe4..0000000 --- a/Documentation/Reference/protocols/MenuItemGroup.md +++ /dev/null @@ -1,10 +0,0 @@ -**PROTOCOL** - -# `MenuItemGroup` - -A structure conforming to `MenuItemGroup` can be added to the content accepting a menu. - -## Properties -### `content` - -The menu's content. diff --git a/Documentation/Reference/protocols/Observable.md b/Documentation/Reference/protocols/Observable.md deleted file mode 100644 index 47e54dc..0000000 --- a/Documentation/Reference/protocols/Observable.md +++ /dev/null @@ -1,34 +0,0 @@ -**PROTOCOL** - -# `Observable` - -A protocol allowing a class to be observed by a view, window or app. - -Views, windows and apps will automatically observe all of its children with an observable type. - -```swift -@Observable -class ViewState { - - var boolean = false - -} - -@View -struct TestView { - - private let state = ViewState() - - var view: Body { - // ... - } - -} -``` - -## Properties -### `didChange` - -This function gets called when a property changes. - -A view will automatically add a function to this variable. diff --git a/Documentation/Reference/protocols/StateProtocol.md b/Documentation/Reference/protocols/StateProtocol.md deleted file mode 100644 index be56774..0000000 --- a/Documentation/Reference/protocols/StateProtocol.md +++ /dev/null @@ -1,10 +0,0 @@ -**PROTOCOL** - -# `StateProtocol` - -An interface for accessing `State` without specifying the generic type. - -## Properties -### `content` - -The class storing the value. diff --git a/Documentation/Reference/protocols/View.md b/Documentation/Reference/protocols/View.md deleted file mode 100644 index 324f2f3..0000000 --- a/Documentation/Reference/protocols/View.md +++ /dev/null @@ -1,21 +0,0 @@ -**PROTOCOL** - -# `View` - -A structure conforming to `View` is referred to as a view. -It can be part of a body. - -```swift -struct Test: View { - - var view: Body { - AnotherView() - } - -} -``` - -## Properties -### `view` - -The view's content. diff --git a/Documentation/Reference/protocols/ViewSwitcherOption.md b/Documentation/Reference/protocols/ViewSwitcherOption.md deleted file mode 100644 index 44343b8..0000000 --- a/Documentation/Reference/protocols/ViewSwitcherOption.md +++ /dev/null @@ -1,19 +0,0 @@ -**PROTOCOL** - -# `ViewSwitcherOption` - -The protocol an element type for view switcher has to conform to. - -## Properties -### `title` - -The title displayed in the switcher and used for identification. - -### `icon` - -A symbolic representation in the view switcher. - -## Methods -### `init(title:)` - -Get the element from the title. diff --git a/Documentation/Reference/protocols/Widget.md b/Documentation/Reference/protocols/Widget.md deleted file mode 100644 index 6497a04..0000000 --- a/Documentation/Reference/protocols/Widget.md +++ /dev/null @@ -1,19 +0,0 @@ -**PROTOCOL** - -# `Widget` - -A widget is a view that know about its GTUI widget. - -## Methods -### `container(modifiers:)` - -The view storage. -- Parameter modifiers: Modify views before being updated. - -### `update(_:modifiers:updateProperties:)` - -Update the stored content. -- Parameters: - - storage: The storage to update. - - modifiers: Modify views before being updated - - updateProperties: Whether to update the view's properties. diff --git a/Documentation/Reference/protocols/WindowScene.md b/Documentation/Reference/protocols/WindowScene.md deleted file mode 100644 index 259a400..0000000 --- a/Documentation/Reference/protocols/WindowScene.md +++ /dev/null @@ -1,37 +0,0 @@ -**PROTOCOL** - -# `WindowScene` - -A structure representing the content for a certain window type. - -## Properties -### `id` - -The window type's identifier. - -### `parentID` - -The identifier of the window's parent window. - -### `open` - -The number of instances of the window at the startup. - -### `appShortcuts` - -The keyboard shortcuts on the application's level. - -## Methods -### `createWindow(app:)` - -Get the storage for the window. -- Parameter app: The application. -- Returns: The storage. - -### `update(_:app:force:)` - -Update a window storage's content. -- Parameters: - - storage: The storage to update. - - app: The application. - - force: Whether to force update all the views. diff --git a/Documentation/Reference/protocols/WindowSceneGroup.md b/Documentation/Reference/protocols/WindowSceneGroup.md deleted file mode 100644 index a2bd7e0..0000000 --- a/Documentation/Reference/protocols/WindowSceneGroup.md +++ /dev/null @@ -1,10 +0,0 @@ -**PROTOCOL** - -# `WindowSceneGroup` - -A structure conforming to `WindowScene` can be added to an app's `scene`. - -## Properties -### `scene` - -The group's content. diff --git a/Documentation/Reference/protocols/WindowType.md b/Documentation/Reference/protocols/WindowType.md deleted file mode 100644 index 68c7df6..0000000 --- a/Documentation/Reference/protocols/WindowType.md +++ /dev/null @@ -1,20 +0,0 @@ -**PROTOCOL** - -# `WindowType` - -A window type. - -## Properties -### `fields` - -A dictionary for custom data. - -## Methods -### `setParentWindow(_:)` - -Set a parent window. -- Parameter parent: The parent window. - -### `show()` - -Show the window. diff --git a/Documentation/Reference/protocols/WindowView.md b/Documentation/Reference/protocols/WindowView.md deleted file mode 100644 index 267719d..0000000 --- a/Documentation/Reference/protocols/WindowView.md +++ /dev/null @@ -1,13 +0,0 @@ -**PROTOCOL** - -# `WindowView` - -A special view that can access the window of the current instance -if located as the first view directly inside a window. - -## Methods -### `window(_:)` - -Modify the window. -- Parameter window: The window. -- Returns: The window. diff --git a/Documentation/Reference/structs/AboutWindow.md b/Documentation/Reference/structs/AboutWindow.md deleted file mode 100644 index 9f06ee2..0000000 --- a/Documentation/Reference/structs/AboutWindow.md +++ /dev/null @@ -1,110 +0,0 @@ -**STRUCT** - -# `AboutWindow` - -A structure representing an about window. - -## Properties -### `id` - -The window's identifier. - -### `open` - -Whether an instance of the window type should be opened when the app is starting up. - -### `parentID` - -The identifier of the window's parent. - -### `appShortcuts` - -The keyboard shortcuts on the app level. - -### `appName` - -The app's name. - -### `developer` - -The developer's name. - -### `version` - -The app version. - -### `icon` - -The app icon. - -### `website` - -The app's website. - -### `issues` - -The link for opening issues. - -### `path` - -The path to the app data file. - -## Methods -### `init(id:appName:developer:version:)` - -Create a window type with a certain identifier and content. -- Parameters: - - id: The identifier. - - appName: The app's name. - - developer: The developer's name. - - version: The app version. - -### `init(id:path:)` - -Create a window type with a certain identifier and content. -- Parameters: - - id: The identifier. - - path: The path to the app data file. - -### `icon(_:)` - -Set the app icon. -- Parameter icon: The app icon. -- Returns: The window. - -### `website(_:)` - -Set the app's website. -- Parameter url: The app's website. -- Returns: The window. - -### `issues(_:)` - -Set the app's website. -- Parameter url: The URL to the issue tracker. -- Returns: The window. - -### `createWindow(app:)` - -Get the storage for the window. -- Parameter app: The application. -- Returns: The storage. - -### `createGTUIWindow(app:)` - -Get the window. -- Parameter app: The application. -- Returns: The window. - -### `update(_:app:force:)` - -Update a window. -- Parameters: - - storage: The storage to update. - - app: The application. - - force: Whether to force update all the views. - -### `updateData(window:)` - -Update the data for a window. -- Parameter window: The window. diff --git a/Documentation/Reference/structs/ActionRow.md b/Documentation/Reference/structs/ActionRow.md deleted file mode 100644 index 89fbcc1..0000000 --- a/Documentation/Reference/structs/ActionRow.md +++ /dev/null @@ -1,233 +0,0 @@ -**STRUCT** - -# `ActionRow` - -A [class@Gtk.ListBoxRow] used to present actions. - -action-row - -The `AdwActionRow` widget can have a title, a subtitle and an icon. The row -can receive additional widgets at its end, or prefix widgets at its start. - -It is convenient to present a preference and its related actions. - -`AdwActionRow` is unactivatable by default, giving it an activatable widget -will automatically make it activatable, but unsetting it won't change the -row's activatability. - -## AdwActionRow as GtkBuildable - -The `AdwActionRow` implementation of the [iface@Gtk.Buildable] interface -supports adding a child at its end by specifying “suffix” or omitting the -“type” attribute of a element. - -It also supports adding a child as a prefix widget by specifying “prefix” as -the “type” attribute of a element. - -## CSS nodes - -`AdwActionRow` has a main CSS node with name `row`. - -It contains the subnode `box.header` for its main horizontal box, and -`box.title` for the vertical box containing the title and subtitle labels. - -It contains subnodes `label.title` and `label.subtitle` representing -respectively the title label and subtitle label. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `activatableWidget` - -The widget to activate when the row is activated. - -The row can be activated either by clicking on it, calling -[method@ActionRow.activate], or via mnemonics in the title. -See the [property@PreferencesRow:use-underline] property to enable -mnemonics. - -The target widget will be activated by emitting the -[signal@Gtk.Widget::mnemonic-activate] signal on it. - -### `iconName` - -The icon name for this row. - -### `subtitle` - -The subtitle for this row. - -The subtitle is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `subtitleLines` - -The number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `subtitleSelectable` - -Whether the user can copy the subtitle from the label. - -See also [property@Gtk.Label:selectable]. - -### `title` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleLines` - -The number of lines at the end of which the title label will be ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `titleSelectable` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline` - -Whether an embedded underline in the title indicates a mnemonic. - -### `activated` - -This signal is emitted after the row has been activated. - -### `suffix` - -The body for the widget "suffix". - -### `prefix` - -The body for the widget "prefix". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `ActionRow`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `activatableWidget(_:)` - -The widget to activate when the row is activated. - -The row can be activated either by clicking on it, calling -[method@ActionRow.activate], or via mnemonics in the title. -See the [property@PreferencesRow:use-underline] property to enable -mnemonics. - -The target widget will be activated by emitting the -[signal@Gtk.Widget::mnemonic-activate] signal on it. - -### `iconName(_:)` - -The icon name for this row. - -### `subtitle(_:)` - -The subtitle for this row. - -The subtitle is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `subtitleLines(_:)` - -The number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `subtitleSelectable(_:)` - -Whether the user can copy the subtitle from the label. - -See also [property@Gtk.Label:selectable]. - -### `title(_:)` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleLines(_:)` - -The number of lines at the end of which the title label will be ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `titleSelectable(_:)` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup(_:)` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline(_:)` - -Whether an embedded underline in the title indicates a mnemonic. - -### `activated(_:)` - -This signal is emitted after the row has been activated. - -### `suffix(_:)` - -Set the body for "suffix". -- Parameter body: The body. -- Returns: The widget. - -### `prefix(_:)` - -Set the body for "prefix". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/AppearObserver.md b/Documentation/Reference/structs/AppearObserver.md deleted file mode 100644 index 993c195..0000000 --- a/Documentation/Reference/structs/AppearObserver.md +++ /dev/null @@ -1,29 +0,0 @@ -**STRUCT** - -# `AppearObserver` - -A widget which executes a custom code when being rendered for the first time. - -## Properties -### `onAppear` - -The function. - -### `content` - -The content. - -## Methods -### `container(modifiers:)` - -Get the content's container. -- Parameter modifiers: Modify views before being updated. -- Returns: The content's container. - -### `update(_:modifiers:updateProperties:)` - -Update the content. -- Parameters: - - storage: The content's storage. - - modifiers: Modify views before being updated. - - updateProperties: Whether to update properties. diff --git a/Documentation/Reference/structs/ApplicationWindow.md b/Documentation/Reference/structs/ApplicationWindow.md deleted file mode 100644 index a086a32..0000000 --- a/Documentation/Reference/structs/ApplicationWindow.md +++ /dev/null @@ -1,78 +0,0 @@ -**STRUCT** - -# `ApplicationWindow` - -A structure representing an application window type. - -Note that multiple instances of a window can be opened at the same time. - -## Properties -### `id` - -The window's identifier. - -### `content` - -The window's content. - -### `open` - -Whether an instance of the window type should be opened when the app is starting up. - -### `shortcuts` - -The keyboard shortcuts. - -### `appShortcuts` - -The keyboard shortcuts on the app level. - -## Methods -### `init(id:open:content:)` - -Create a window type with a certain identifier and user interface. -- Parameters: - - id: The identifier. - - open: The number of instances of the window type when the app is starting. - - content: The window's content. - -### `createWindow(app:)` - -Get the storage for the window. -- Parameter app: The application. -- Returns: The storage. - -### `createGTUIWindow(app:)` - -Get the window. -- Parameter app: The application. -- Returns: The window. - -### `getViewStorage(window:)` - -Get the storage of the content view. -- Parameter window: The window. -- Returns: The storage of the content of the window. - -### `update(_:app:)` - -Update a window storage's content. -- Parameter storage: The storage to update. - -### `keyboardShortcut(_:action:)` - -Add a keyboard shortcut. -- Parameters: - - shortcut: The keyboard shortcut. - - action: The closure to execute when the keyboard shortcut is pressed. -- Returns: The window. - -### `updateShortcuts(window:)` - -Update the keyboard shortcuts. -- Parameter window: The application window. - -### `closeShortcut()` - -Add the shortcut "w" which closes the window. -- Returns: The window. diff --git a/Documentation/Reference/structs/Avatar.md b/Documentation/Reference/structs/Avatar.md deleted file mode 100644 index 0e00d9b..0000000 --- a/Documentation/Reference/structs/Avatar.md +++ /dev/null @@ -1,106 +0,0 @@ -**STRUCT** - -# `Avatar` - -A widget displaying an image, with a generated fallback. - -avatar - -`AdwAvatar` is a widget that shows a round avatar. - -`AdwAvatar` generates an avatar with the initials of the -[property@Avatar:text] on top of a colored background. - -The color is picked based on the hash of the [property@Avatar:text]. - -If [property@Avatar:show-initials] is set to `FALSE`, -[property@Avatar:icon-name] or `avatar-default-symbolic` is shown instead of -the initials. - -Use [property@Avatar:custom-image] to set a custom image. - -## CSS nodes - -`AdwAvatar` has a single CSS node with name `avatar`. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `iconName` - -The name of an icon to use as a fallback. - -If no name is set, `avatar-default-symbolic` will be used. - -### `showInitials` - -Whether initials are used instead of an icon on the fallback avatar. - -See [property@Avatar:icon-name] for how to change the fallback icon. - -### `size` - -The size of the avatar. - -### `text` - -Sets the text used to generate the fallback initials and color. - -It's only used to generate the color if [property@Avatar:show-initials] is -`FALSE`. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init(showInitials:size:)` - -Initialize `Avatar`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `iconName(_:)` - -The name of an icon to use as a fallback. - -If no name is set, `avatar-default-symbolic` will be used. - -### `showInitials(_:)` - -Whether initials are used instead of an icon on the fallback avatar. - -See [property@Avatar:icon-name] for how to change the fallback icon. - -### `size(_:)` - -The size of the avatar. - -### `text(_:)` - -Sets the text used to generate the fallback initials and color. - -It's only used to generate the color if [property@Avatar:show-initials] is -`FALSE`. diff --git a/Documentation/Reference/structs/Banner.md b/Documentation/Reference/structs/Banner.md deleted file mode 100644 index 12a7fcf..0000000 --- a/Documentation/Reference/structs/Banner.md +++ /dev/null @@ -1,121 +0,0 @@ -**STRUCT** - -# `Banner` - -A bar with contextual information. - -banner - -Banners are hidden by default, use [property@Banner:revealed] to show them. - -Banners have a title, set with [property@Banner:title]. Titles can be marked -up with Pango markup, use [property@Banner:use-markup] to enable it. - -The title will be shown centered or left-aligned depending on available -space. - -Banners can optionally have a button with text on it, set through -[property@Banner:button-label]. The button can be used with a `GAction`, -or with the [signal@Banner::button-clicked] signal. - -## CSS nodes - -`AdwBanner` has a main CSS node with the name `banner`. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `buttonLabel` - -The label to show on the button. - -If set to `""` or `NULL`, the button won't be shown. - -The button can be used with a `GAction`, or with the -[signal@Banner::button-clicked] signal. - -### `revealed` - -Whether the banner is currently revealed. - -### `title` - -The title for this banner. - -See also: [property@Banner:use-markup]. - -### `useMarkup` - -Whether to use Pango markup for the banner title. - -See also [func@Pango.parse_markup]. - -### `buttonClicked` - -This signal is emitted after the action button has been clicked. - -It can be used as an alternative to setting an action. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init(title:)` - -Initialize `Banner`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `buttonLabel(_:)` - -The label to show on the button. - -If set to `""` or `NULL`, the button won't be shown. - -The button can be used with a `GAction`, or with the -[signal@Banner::button-clicked] signal. - -### `revealed(_:)` - -Whether the banner is currently revealed. - -### `title(_:)` - -The title for this banner. - -See also: [property@Banner:use-markup]. - -### `useMarkup(_:)` - -Whether to use Pango markup for the banner title. - -See also [func@Pango.parse_markup]. - -### `buttonClicked(_:)` - -This signal is emitted after the action button has been clicked. - -It can be used as an alternative to setting an action. diff --git a/Documentation/Reference/structs/Bin.md b/Documentation/Reference/structs/Bin.md deleted file mode 100644 index 400fff3..0000000 --- a/Documentation/Reference/structs/Bin.md +++ /dev/null @@ -1,57 +0,0 @@ -**STRUCT** - -# `Bin` - -A widget with one child. - -bin - -The `AdwBin` widget has only one child, set with the [property@Bin:child] -property. - -It is useful for deriving subclasses, since it provides common code needed -for handling a single child widget. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `child` - -The child widget of the `AdwBin`. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `Bin`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `child(_:)` - -The child widget of the `AdwBin`. diff --git a/Documentation/Reference/structs/Binding.md b/Documentation/Reference/structs/Binding.md deleted file mode 100644 index 517de30..0000000 --- a/Documentation/Reference/structs/Binding.md +++ /dev/null @@ -1,68 +0,0 @@ -**STRUCT** - -# `Binding` - -A property wrapper for a property of a view that binds the property of the parent view. - -```swift -struct Grandparent: View { - - @State private var state = false - - var view: Body { - Parent(value: $state) - } -} - -struct Parent: View { - - @Binding var value: Bool - - var view: Body { - Child(value: $value) - } - -} - -struct Child: View { - - @Binding var value: Bool - - var view: Body { - // ... - } - -} -``` - -## Properties -### `wrappedValue` - -The value. - -### `projectedValue` - -Get the value as a binding using the `$` prefix. - -### `getValue` - -The closure for getting the value. - -### `setValue` - -The closure for settings the value. - -## Methods -### `init(get:set:)` - -Initialize a property that is bound from a parent view. -- Parameters: - - get: The closure for getting the value. - - set: The closure for setting the value. - -### `constant(_:)` - -Initialize a property that does not react to changes in the child view. -- Parameters: - - value: The constant value. -- Returns: The binding. diff --git a/Documentation/Reference/structs/Box.md b/Documentation/Reference/structs/Box.md deleted file mode 100644 index a85c0be..0000000 --- a/Documentation/Reference/structs/Box.md +++ /dev/null @@ -1,130 +0,0 @@ -**STRUCT** - -# `Box` - -The `GtkBox` widget arranges child widgets into a single row or column. - -![An example GtkBox](box.png) - -Whether it is a row or column depends on the value of its -[property@Gtk.Orientable:orientation] property. Within the other -dimension, all children are allocated the same size. Of course, the -[property@Gtk.Widget:halign] and [property@Gtk.Widget:valign] properties -can be used on the children to influence their allocation. - -Use repeated calls to [method@Gtk.Box.append] to pack widgets into a -`GtkBox` from start to end. Use [method@Gtk.Box.remove] to remove widgets -from the `GtkBox`. [method@Gtk.Box.insert_child_after] can be used to add -a child at a particular position. - -Use [method@Gtk.Box.set_homogeneous] to specify whether or not all children -of the `GtkBox` are forced to get the same amount of space. - -Use [method@Gtk.Box.set_spacing] to determine how much space will be minimally -placed between all children in the `GtkBox`. Note that spacing is added -*between* the children. - -Use [method@Gtk.Box.reorder_child_after] to move a child to a different -place in the box. - -# CSS nodes - -`GtkBox` uses a single CSS node with name box. - -# Accessibility - -Until GTK 4.10, `GtkBox` used the `GTK_ACCESSIBLE_ROLE_GROUP` role. - -Starting from GTK 4.12, `GtkBox` uses the `GTK_ACCESSIBLE_ROLE_GENERIC` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `baselineChild` - -The child that determines the baseline, in vertical orientation. - -### `homogeneous` - -Whether the children should all be the same size. - -### `spacing` - -The amount of space between children. - -### `append` - -The body for the widget "append". - -### `prepend` - -The body for the widget "prepend". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init(spacing:)` - -Initialize `Box`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `baselineChild(_:)` - -The child that determines the baseline, in vertical orientation. - -### `homogeneous(_:)` - -Whether the children should all be the same size. - -### `spacing(_:)` - -The amount of space between children. - -### `append(_:)` - -Set the body for "append". -- Parameter body: The body. -- Returns: The widget. - -### `prepend(_:)` - -Set the body for "prepend". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/Button.md b/Documentation/Reference/structs/Button.md deleted file mode 100644 index a506f18..0000000 --- a/Documentation/Reference/structs/Button.md +++ /dev/null @@ -1,180 +0,0 @@ -**STRUCT** - -# `Button` - -The `GtkButton` widget is generally used to trigger a callback function that is -called when the button is pressed. - -![An example GtkButton](button.png) - -The `GtkButton` widget can hold any valid child widget. That is, it can hold -almost any other standard `GtkWidget`. The most commonly used child is the -`GtkLabel`. - -# CSS nodes - -`GtkButton` has a single CSS node with name button. The node will get the -style classes .image-button or .text-button, if the content is just an -image or label, respectively. It may also receive the .flat style class. -When activating a button via the keyboard, the button will temporarily -gain the .keyboard-activating style class. - -Other style classes that are commonly used with `GtkButton` include -.suggested-action and .destructive-action. In special cases, buttons -can be made round by adding the .circular style class. - -Button-like widgets like [class@Gtk.ToggleButton], [class@Gtk.MenuButton], -[class@Gtk.VolumeButton], [class@Gtk.LockButton], [class@Gtk.ColorButton] -or [class@Gtk.FontButton] use style classes such as .toggle, .popup, .scale, -.lock, .color on the button node to differentiate themselves from a plain -`GtkButton`. - -# Accessibility - -`GtkButton` uses the %GTK_ACCESSIBLE_ROLE_BUTTON role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `actionName` - -action-name - -### `canShrink` - -Whether the size of the button can be made smaller than the natural -size of its contents. - -For text buttons, setting this property will allow ellipsizing the label. - -If the contents of a button are an icon or a custom widget, setting this -property has no effect. - -### `child` - -The child widget. - -### `hasFrame` - -Whether the button has a frame. - -### `iconName` - -The name of the icon used to automatically populate the button. - -### `label` - -Text of the label inside the button, if the button contains a label widget. - -### `useUnderline` - -If set, an underline in the text indicates that the following character is -to be used as mnemonic. - -### `activate` - -Emitted to animate press then release. - -This is an action signal. Applications should never connect -to this signal, but use the [signal@Gtk.Button::clicked] signal. - -The default bindings for this signal are all forms of the - and Enter keys. - -### `clicked` - -Emitted when the button has been activated (pressed and released). - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `Button`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `actionName(_:)` - -action-name - -### `canShrink(_:)` - -Whether the size of the button can be made smaller than the natural -size of its contents. - -For text buttons, setting this property will allow ellipsizing the label. - -If the contents of a button are an icon or a custom widget, setting this -property has no effect. - -### `child(_:)` - -The child widget. - -### `hasFrame(_:)` - -Whether the button has a frame. - -### `iconName(_:)` - -The name of the icon used to automatically populate the button. - -### `label(_:)` - -Text of the label inside the button, if the button contains a label widget. - -### `useUnderline(_:)` - -If set, an underline in the text indicates that the following character is -to be used as mnemonic. - -### `activate(_:)` - -Emitted to animate press then release. - -This is an action signal. Applications should never connect -to this signal, but use the [signal@Gtk.Button::clicked] signal. - -The default bindings for this signal are all forms of the - and Enter keys. - -### `clicked(_:)` - -Emitted when the button has been activated (pressed and released). diff --git a/Documentation/Reference/structs/ButtonContent.md b/Documentation/Reference/structs/ButtonContent.md deleted file mode 100644 index baaee89..0000000 --- a/Documentation/Reference/structs/ButtonContent.md +++ /dev/null @@ -1,127 +0,0 @@ -**STRUCT** - -# `ButtonContent` - -A helper widget for creating buttons. - -button-content - -`AdwButtonContent` is a box-like widget with an icon and a label. - -It's intended to be used as a direct child of [class@Gtk.Button], -[class@Gtk.MenuButton] or [class@SplitButton], when they need to have both an -icon and a label, as follows: - -```xml -document-open-symbolic_OpenTrue -``` - -`AdwButtonContent` handles style classes and connecting the mnemonic to the -button automatically. - -## CSS nodes - -``` -buttoncontent -├── image -╰── label -``` - -`AdwButtonContent`'s CSS node is called `buttoncontent`. It contains the -subnodes `image` and `label`. - -When inside a `GtkButton` or `AdwSplitButton`, the button will receive the -`.image-text-button` style class. When inside a `GtkMenuButton`, the -internal `GtkButton` will receive it instead. - -## Accessibility - -`AdwButtonContent` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `canShrink` - -Whether the button can be smaller than the natural size of its contents. - -If set to `TRUE`, the label will ellipsize. - -See [property@Gtk.Button:can-shrink]. - -### `iconName` - -The name of the displayed icon. - -If empty, the icon is not shown. - -### `label` - -The displayed label. - -### `useUnderline` - -Whether an underline in the text indicates a mnemonic. - -The mnemonic can be used to activate the parent button. - -See [property@ButtonContent:label]. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `ButtonContent`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `canShrink(_:)` - -Whether the button can be smaller than the natural size of its contents. - -If set to `TRUE`, the label will ellipsize. - -See [property@Gtk.Button:can-shrink]. - -### `iconName(_:)` - -The name of the displayed icon. - -If empty, the icon is not shown. - -### `label(_:)` - -The displayed label. - -### `useUnderline(_:)` - -Whether an underline in the text indicates a mnemonic. - -The mnemonic can be used to activate the parent button. - -See [property@ButtonContent:label]. diff --git a/Documentation/Reference/structs/Carousel.md b/Documentation/Reference/structs/Carousel.md deleted file mode 100644 index 7705511..0000000 --- a/Documentation/Reference/structs/Carousel.md +++ /dev/null @@ -1,155 +0,0 @@ -**STRUCT** - -# `Carousel` - -A paginated scrolling widget. - -carousel - -The `AdwCarousel` widget can be used to display a set of pages with -swipe-based navigation between them. - -[class@CarouselIndicatorDots] and [class@CarouselIndicatorLines] can be used -to provide page indicators for `AdwCarousel`. - -## CSS nodes - -`AdwCarousel` has a single CSS node with name `carousel`. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `allowLongSwipes` - -Whether to allow swiping for more than one page at a time. - -If the value is `FALSE`, each swipe can only move to the adjacent pages. - -### `allowMouseDrag` - -Sets whether the `AdwCarousel` can be dragged with mouse pointer. - -If the value is `FALSE`, dragging is only available on touch. - -### `allowScrollWheel` - -Whether the widget will respond to scroll wheel events. - -If the value is `FALSE`, wheel events will be ignored. - -### `interactive` - -Whether the carousel can be navigated. - -This can be used to temporarily disable the carousel to only allow -navigating it in a certain state. - -### `nPages` - -The number of pages in a `AdwCarousel`. - -### `revealDuration` - -Page reveal duration, in milliseconds. - -Reveal duration is used when animating adding or removing pages. - -### `spacing` - -Spacing between pages in pixels. - -### `pageChanged` - -This signal is emitted after a page has been changed. - -It can be used to implement "infinite scrolling" by amending the pages -after every scroll. Note that an empty carousel is indicated by -`(int)index == -1`. - -### `elements` - -The dynamic widget elements. - -### `content` - -The dynamic widget content. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init(_:content:)` - -Initialize `Carousel`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `allowLongSwipes(_:)` - -Whether to allow swiping for more than one page at a time. - -If the value is `FALSE`, each swipe can only move to the adjacent pages. - -### `allowMouseDrag(_:)` - -Sets whether the `AdwCarousel` can be dragged with mouse pointer. - -If the value is `FALSE`, dragging is only available on touch. - -### `allowScrollWheel(_:)` - -Whether the widget will respond to scroll wheel events. - -If the value is `FALSE`, wheel events will be ignored. - -### `interactive(_:)` - -Whether the carousel can be navigated. - -This can be used to temporarily disable the carousel to only allow -navigating it in a certain state. - -### `nPages(_:)` - -The number of pages in a `AdwCarousel`. - -### `revealDuration(_:)` - -Page reveal duration, in milliseconds. - -Reveal duration is used when animating adding or removing pages. - -### `spacing(_:)` - -Spacing between pages in pixels. - -### `pageChanged(_:)` - -This signal is emitted after a page has been changed. - -It can be used to implement "infinite scrolling" by amending the pages -after every scroll. Note that an empty carousel is indicated by -`(int)index == -1`. diff --git a/Documentation/Reference/structs/CenterBox.md b/Documentation/Reference/structs/CenterBox.md deleted file mode 100644 index 0bc80ee..0000000 --- a/Documentation/Reference/structs/CenterBox.md +++ /dev/null @@ -1,148 +0,0 @@ -**STRUCT** - -# `CenterBox` - -`GtkCenterBox` arranges three children in a row, keeping the middle child -centered as well as possible. - -![An example GtkCenterBox](centerbox.png) - -To add children to `GtkCenterBox`, use [method@Gtk.CenterBox.set_start_widget], -[method@Gtk.CenterBox.set_center_widget] and -[method@Gtk.CenterBox.set_end_widget]. - -The sizing and positioning of children can be influenced with the -align and expand properties of the children. - -# GtkCenterBox as GtkBuildable - -The `GtkCenterBox` implementation of the `GtkBuildable` interface -supports placing children in the 3 positions by specifying “start”, “center” -or “end” as the “type” attribute of a `` element. - -# CSS nodes - -`GtkCenterBox` uses a single CSS node with the name “box”, - -The first child of the `GtkCenterBox` will be allocated depending on the -text direction, i.e. in left-to-right layouts it will be allocated on the -left and in right-to-left layouts on the right. - -In vertical orientation, the nodes of the children are arranged from top to -bottom. - -# Accessibility - -Until GTK 4.10, `GtkCenterBox` used the `GTK_ACCESSIBLE_ROLE_GROUP` role. - -Starting from GTK 4.12, `GtkCenterBox` uses the `GTK_ACCESSIBLE_ROLE_GENERIC` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `centerWidget` - -The widget that is placed at the center position. - -### `endWidget` - -The widget that is placed at the end position. - -In vertical orientation, the end position is at the bottom. -In horizontal orientation, the end position is at the trailing -edge wrt. to the text direction. - -### `shrinkCenterLast` - -Whether to shrink the center widget after other children. - -By default, when there's no space to give all three children their -natural widths, the start and end widgets start shrinking and the -center child keeps natural width until they reach minimum width. - -If set to `FALSE`, start and end widgets keep natural width and the -center widget starts shrinking instead. - -### `startWidget` - -The widget that is placed at the start position. - -In vertical orientation, the start position is at the top. -In horizontal orientation, the start position is at the leading -edge wrt. to the text direction. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `CenterBox`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `centerWidget(_:)` - -The widget that is placed at the center position. - -### `endWidget(_:)` - -The widget that is placed at the end position. - -In vertical orientation, the end position is at the bottom. -In horizontal orientation, the end position is at the trailing -edge wrt. to the text direction. - -### `shrinkCenterLast(_:)` - -Whether to shrink the center widget after other children. - -By default, when there's no space to give all three children their -natural widths, the start and end widgets start shrinking and the -center child keeps natural width until they reach minimum width. - -If set to `FALSE`, start and end widgets keep natural width and the -center widget starts shrinking instead. - -### `startWidget(_:)` - -The widget that is placed at the start position. - -In vertical orientation, the start position is at the top. -In horizontal orientation, the start position is at the leading -edge wrt. to the text direction. diff --git a/Documentation/Reference/structs/CheckButton.md b/Documentation/Reference/structs/CheckButton.md deleted file mode 100644 index 2dddd21..0000000 --- a/Documentation/Reference/structs/CheckButton.md +++ /dev/null @@ -1,207 +0,0 @@ -**STRUCT** - -# `CheckButton` - -A `GtkCheckButton` places a label next to an indicator. - -![Example GtkCheckButtons](check-button.png) - -A `GtkCheckButton` is created by calling either [ctor@Gtk.CheckButton.new] -or [ctor@Gtk.CheckButton.new_with_label]. - -The state of a `GtkCheckButton` can be set specifically using -[method@Gtk.CheckButton.set_active], and retrieved using -[method@Gtk.CheckButton.get_active]. - -# Inconsistent state - -In addition to "on" and "off", check buttons can be an -"in between" state that is neither on nor off. This can be used -e.g. when the user has selected a range of elements (such as some -text or spreadsheet cells) that are affected by a check button, -and the current values in that range are inconsistent. - -To set a `GtkCheckButton` to inconsistent state, use -[method@Gtk.CheckButton.set_inconsistent]. - -# Grouping - -Check buttons can be grouped together, to form mutually exclusive -groups - only one of the buttons can be toggled at a time, and toggling -another one will switch the currently toggled one off. - -Grouped check buttons use a different indicator, and are commonly referred -to as *radio buttons*. - -![Example GtkCheckButtons](radio-button.png) - -To add a `GtkCheckButton` to a group, use [method@Gtk.CheckButton.set_group]. - -When the code must keep track of the state of a group of radio buttons, it -is recommended to keep track of such state through a stateful -`GAction` with a target for each button. Using the `toggled` signals to keep -track of the group changes and state is discouraged. - -# CSS nodes - -``` -checkbutton[.text-button] -├── check -╰── [label] -``` - -A `GtkCheckButton` has a main node with name checkbutton. If the -[property@Gtk.CheckButton:label] or [property@Gtk.CheckButton:child] -properties are set, it contains a child widget. The indicator node -is named check when no group is set, and radio if the checkbutton -is grouped together with other checkbuttons. - -# Accessibility - -`GtkCheckButton` uses the %GTK_ACCESSIBLE_ROLE_CHECKBOX role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `actionName` - -action-name - -### `active` - -If the check button is active. - -Setting `active` to %TRUE will add the `:checked:` state to both -the check button and the indicator CSS node. - -### `child` - -The child widget. - -### `inconsistent` - -If the check button is in an “in between” state. - -The inconsistent state only affects visual appearance, -not the semantics of the button. - -### `label` - -Text of the label inside the check button, if it contains a label widget. - -### `useUnderline` - -If set, an underline in the text indicates that the following -character is to be used as mnemonic. - -### `activate` - -Emitted to when the check button is activated. - -The `::activate` signal on `GtkCheckButton` is an action signal and -emitting it causes the button to animate press then release. - -Applications should never connect to this signal, but use the -[signal@Gtk.CheckButton::toggled] signal. - -The default bindings for this signal are all forms of the - and Enter keys. - -### `toggled` - -Emitted when the buttons's [property@Gtk.CheckButton:active] -property changes. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `CheckButton`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `actionName(_:)` - -action-name - -### `active(_:)` - -If the check button is active. - -Setting `active` to %TRUE will add the `:checked:` state to both -the check button and the indicator CSS node. - -### `child(_:)` - -The child widget. - -### `inconsistent(_:)` - -If the check button is in an “in between” state. - -The inconsistent state only affects visual appearance, -not the semantics of the button. - -### `label(_:)` - -Text of the label inside the check button, if it contains a label widget. - -### `useUnderline(_:)` - -If set, an underline in the text indicates that the following -character is to be used as mnemonic. - -### `activate(_:)` - -Emitted to when the check button is activated. - -The `::activate` signal on `GtkCheckButton` is an action signal and -emitting it causes the button to animate press then release. - -Applications should never connect to this signal, but use the -[signal@Gtk.CheckButton::toggled] signal. - -The default bindings for this signal are all forms of the - and Enter keys. - -### `toggled(_:)` - -Emitted when the buttons's [property@Gtk.CheckButton:active] -property changes. diff --git a/Documentation/Reference/structs/Clamp.md b/Documentation/Reference/structs/Clamp.md deleted file mode 100644 index a5a44f0..0000000 --- a/Documentation/Reference/structs/Clamp.md +++ /dev/null @@ -1,112 +0,0 @@ -**STRUCT** - -# `Clamp` - -A widget constraining its child to a given size. - -clamp-wideclamp-narrow - -The `AdwClamp` widget constrains the size of the widget it contains to a -given maximum size. It will constrain the width if it is horizontal, or the -height if it is vertical. The expansion of the child from its minimum to its -maximum size is eased out for a smooth transition. - -If the child requires more than the requested maximum size, it will be -allocated the minimum size it can fit in instead. - -`AdwClamp` can scale with the text scale factor, use the -[property@ClampLayout:unit] property to enable that behavior. - -## CSS nodes - -`AdwClamp` has a single CSS node with name `clamp`. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `child` - -The child widget of the `AdwClamp`. - -### `maximumSize` - -The maximum size allocated to the child. - -It is the width if the clamp is horizontal, or the height if it is vertical. - -### `tighteningThreshold` - -The size above which the child is clamped. - -Starting from this size, the clamp will tighten its grip on the child, -slowly allocating less and less of the available size up to the maximum -allocated size. Below that threshold and below the maximum size, the child -will be allocated all the available size. - -If the threshold is greater than the maximum size to allocate to the child, -the child will be allocated all the size up to the maximum. -If the threshold is lower than the minimum size to allocate to the child, -that size will be used as the tightening threshold. - -Effectively, tightening the grip on the child before it reaches its maximum -size makes transitions to and from the maximum size smoother when resizing. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `Clamp`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `child(_:)` - -The child widget of the `AdwClamp`. - -### `maximumSize(_:)` - -The maximum size allocated to the child. - -It is the width if the clamp is horizontal, or the height if it is vertical. - -### `tighteningThreshold(_:)` - -The size above which the child is clamped. - -Starting from this size, the clamp will tighten its grip on the child, -slowly allocating less and less of the available size up to the maximum -allocated size. Below that threshold and below the maximum size, the child -will be allocated all the available size. - -If the threshold is greater than the maximum size to allocate to the child, -the child will be allocated all the size up to the maximum. -If the threshold is lower than the minimum size to allocate to the child, -that size will be used as the tightening threshold. - -Effectively, tightening the grip on the child before it reaches its maximum -size makes transitions to and from the maximum size smoother when resizing. diff --git a/Documentation/Reference/structs/ComboRow.md b/Documentation/Reference/structs/ComboRow.md deleted file mode 100644 index e5af96c..0000000 --- a/Documentation/Reference/structs/ComboRow.md +++ /dev/null @@ -1,291 +0,0 @@ -**STRUCT** - -# `ComboRow` - -A [class@Gtk.ListBoxRow] used to choose from a list of items. - -combo-row - -The `AdwComboRow` widget allows the user to choose from a list of valid -choices. The row displays the selected choice. When activated, the row -displays a popover which allows the user to make a new choice. - -Example of an `AdwComboRow` UI definition: -```xml -Combo RowFooBarBaz -``` - -The [property@ComboRow:selected] and [property@ComboRow:selected-item] -properties can be used to keep track of the selected item and react to their -changes. - -`AdwComboRow` mirrors [class@Gtk.DropDown], see that widget for details. - -`AdwComboRow` is [property@Gtk.ListBoxRow:activatable] if a model is set. - -## CSS nodes - -`AdwComboRow` has a main CSS node with name `row` and the `.combo` style -class. - -Its popover has the node named `popover` with the `.menu` style class, it -contains a [class@Gtk.ScrolledWindow], which in turn contains a -[class@Gtk.ListView], both are accessible via their regular nodes. - -## Accessibility - -`AdwComboRow` uses the `GTK_ACCESSIBLE_ROLE_COMBO_BOX` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `activatableWidget` - -The widget to activate when the row is activated. - -The row can be activated either by clicking on it, calling -[method@ActionRow.activate], or via mnemonics in the title. -See the [property@PreferencesRow:use-underline] property to enable -mnemonics. - -The target widget will be activated by emitting the -[signal@Gtk.Widget::mnemonic-activate] signal on it. - -### `enableSearch` - -Whether to show a search entry in the popup. - -If set to `TRUE`, a search entry will be shown in the popup that -allows to search for items in the list. - -Search requires [property@ComboRow:expression] to be set. - -### `iconName` - -The icon name for this row. - -### `selected` - -The position of the selected item. - -If no item is selected, the property has the value -[const@Gtk.INVALID_LIST_POSITION] - -### `subtitle` - -The subtitle for this row. - -The subtitle is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `subtitleLines` - -The number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `subtitleSelectable` - -Whether the user can copy the subtitle from the label. - -See also [property@Gtk.Label:selectable]. - -### `title` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleLines` - -The number of lines at the end of which the title label will be ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `titleSelectable` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useSubtitle` - -Whether to use the current value as the subtitle. - -If you use a custom list item factory, you will need to give the row a -name conversion expression with [property@ComboRow:expression]. - -If set to `TRUE`, you should not access [property@ActionRow:subtitle]. - -The subtitle is interpreted as Pango markup if -[property@PreferencesRow:use-markup] is set to `TRUE`. - -### `useUnderline` - -Whether an embedded underline in the title indicates a mnemonic. - -### `activated` - -This signal is emitted after the row has been activated. - -### `suffix` - -The body for the widget "suffix". - -### `prefix` - -The body for the widget "prefix". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `ComboRow`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `activatableWidget(_:)` - -The widget to activate when the row is activated. - -The row can be activated either by clicking on it, calling -[method@ActionRow.activate], or via mnemonics in the title. -See the [property@PreferencesRow:use-underline] property to enable -mnemonics. - -The target widget will be activated by emitting the -[signal@Gtk.Widget::mnemonic-activate] signal on it. - -### `enableSearch(_:)` - -Whether to show a search entry in the popup. - -If set to `TRUE`, a search entry will be shown in the popup that -allows to search for items in the list. - -Search requires [property@ComboRow:expression] to be set. - -### `iconName(_:)` - -The icon name for this row. - -### `selected(_:)` - -The position of the selected item. - -If no item is selected, the property has the value -[const@Gtk.INVALID_LIST_POSITION] - -### `subtitle(_:)` - -The subtitle for this row. - -The subtitle is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `subtitleLines(_:)` - -The number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `subtitleSelectable(_:)` - -Whether the user can copy the subtitle from the label. - -See also [property@Gtk.Label:selectable]. - -### `title(_:)` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleLines(_:)` - -The number of lines at the end of which the title label will be ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `titleSelectable(_:)` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup(_:)` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useSubtitle(_:)` - -Whether to use the current value as the subtitle. - -If you use a custom list item factory, you will need to give the row a -name conversion expression with [property@ComboRow:expression]. - -If set to `TRUE`, you should not access [property@ActionRow:subtitle]. - -The subtitle is interpreted as Pango markup if -[property@PreferencesRow:use-markup] is set to `TRUE`. - -### `useUnderline(_:)` - -Whether an embedded underline in the title indicates a mnemonic. - -### `activated(_:)` - -This signal is emitted after the row has been activated. - -### `suffix(_:)` - -Set the body for "suffix". -- Parameter body: The body. -- Returns: The widget. - -### `prefix(_:)` - -Set the body for "prefix". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/Container.md b/Documentation/Reference/structs/Container.md deleted file mode 100644 index 95af77e..0000000 --- a/Documentation/Reference/structs/Container.md +++ /dev/null @@ -1,60 +0,0 @@ -**STRUCT** - -# `Container` - -A container widget. - -## Properties -### `elements` - -The elements. - -### `content` - -The content. - -### `container` - -Get the container for initialization. - -### `elementsID` - -The identifier of the elements storage. - -## Methods -### `init(_:content:container:)` - -Initialize `Container`. -- Parameters: - - elements: The elements. - - content: The view for an element. - - container: Get the initial Libadwaita container widget. - -### `update(_:modifiers:)` - -Update a view storage. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - -### `container(modifiers:)` - -Get a view storage. -- Parameter modifiers: Modify views before being updated. -- Returns: The view storage. - -### `updateContainer(_:content:modifiers:)` - -Update the container's content. -- Parameters: - - container: The container. - - content: The content's view storage. - - modifiers: The view modifiers. - -### `getWidget(element:modifiers:)` - -Get the view storage of an element. -- Parameters: - - element: The element. - - modifiers: The modifiers. -- Returns: The view storage. diff --git a/Documentation/Reference/structs/ContentModifier.md b/Documentation/Reference/structs/ContentModifier.md deleted file mode 100644 index 0332511..0000000 --- a/Documentation/Reference/structs/ContentModifier.md +++ /dev/null @@ -1,34 +0,0 @@ -**STRUCT** - -# `ContentModifier` - -A widget which replaces views of a specific type in its content. - -## Properties -### `content` - -The wrapped view. - -### `modify` - -The closure for the modification. - -## Methods -### `container(modifiers:)` - -Get the content's container. -- Parameter modifiers: Modify views before being updated. -- Returns: The content's container. - -### `update(_:modifiers:updateProperties:)` - -Update the content. -- Parameters: - - storage: The content's storage. - - modifiers: Modify views before being updated. - - updateProperties: Whether to update properties. - -### `modifyView(_:)` - -Apply the modifier to a view. -- Parameter view: The view. diff --git a/Documentation/Reference/structs/EitherView.md b/Documentation/Reference/structs/EitherView.md deleted file mode 100644 index 6183301..0000000 --- a/Documentation/Reference/structs/EitherView.md +++ /dev/null @@ -1,64 +0,0 @@ -**STRUCT** - -# `EitherView` - -An equivalent to GtkStack for two views. - -## Properties -### `trueView` - -The view that is displayed when `isTrue` is true. - -### `falseView` - -The view that is displayed when `isTrue` is false. - -### `isTrue` - -The state. - -## Methods -### `init(_:_:else:)` - -Initialize an `EitherView`. -- Parameters: - - isTrue: The state. - - _: The view that is presented if `isTrue` is true. - - else: The view that is presented if `isTrue` is false. - -### `init(_:_:else:)` - -Initialize an `EitherView`. -- Parameters: - - isTrue: The state. - - trueView: The view that is presented if `isTrue` is true. - - falseView: The view that is presented if `isTrue` is false. - -### `update(_:modifiers:)` - -Update an `EitherView`'s storage. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - -### `updateContent(_:state:stack:modifiers:)` - -Update the content of a view in the view storage. -- Parameters: - - storage: The view storage. - - state: Whether it is the true or false view. - - stack: The stack. - - modifiers: Modify views before being updated. - -### `setVisible(_:view:)` - -Set the visible content page. -- Parameters: - - stack: The stack. - - view: The visible view. - -### `container(modifiers:)` - -Get a GtkStack view storage. -- Parameter modifiers: Modify views before being updated. -- Returns: The view storage. diff --git a/Documentation/Reference/structs/EntryRow.md b/Documentation/Reference/structs/EntryRow.md deleted file mode 100644 index 0352511..0000000 --- a/Documentation/Reference/structs/EntryRow.md +++ /dev/null @@ -1,205 +0,0 @@ -**STRUCT** - -# `EntryRow` - -A [class@Gtk.ListBoxRow] with an embedded text entry. - -entry-row - -`AdwEntryRow` has a title that doubles as placeholder text. It shows an icon -indicating that it's editable and can receive additional widgets before or -after the editable part. - -If [property@EntryRow:show-apply-button] is set to `TRUE`, `AdwEntryRow` can -show an apply button when editing its contents. This can be useful if -changing its contents can result in an expensive operation, such as network -activity. - -`AdwEntryRow` provides only minimal API and should be used with the -[iface@Gtk.Editable] API. - -See also [class@PasswordEntryRow]. - -## AdwEntryRow as GtkBuildable - -The `AdwEntryRow` implementation of the [iface@Gtk.Buildable] interface -supports adding a child at its end by specifying “suffix” or omitting the -“type” attribute of a element. - -It also supports adding a child as a prefix widget by specifying “prefix” as -the “type” attribute of a element. - -## CSS nodes - -`AdwEntryRow` has a single CSS node with name `row` and the `.entry` style -class. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `activatesDefault` - -Whether activating the embedded entry can activate the default widget. - -### `enableEmojiCompletion` - -Whether to suggest emoji replacements on the entry row. - -Emoji replacement is done with :-delimited names, like `:heart:`. - -### `showApplyButton` - -Whether to show the apply button. - -When set to `TRUE`, typing text in the entry will reveal an apply button. -Clicking it or pressing the Enter key will hide the button and -emit the [signal@EntryRow::apply] signal. - -This is useful if changing the entry contents can trigger an expensive -operation, e.g. network activity, to avoid triggering it after typing every -character. - -### `title` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleSelectable` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline` - -Whether an embedded underline in the title indicates a mnemonic. - -### `apply` - -Emitted when the apply button is pressed. - -See [property@EntryRow:show-apply-button]. - -### `entryActivated` - -Emitted when the embedded entry is activated. - -### `suffix` - -The body for the widget "suffix". - -### `prefix` - -The body for the widget "prefix". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `EntryRow`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `activatesDefault(_:)` - -Whether activating the embedded entry can activate the default widget. - -### `enableEmojiCompletion(_:)` - -Whether to suggest emoji replacements on the entry row. - -Emoji replacement is done with :-delimited names, like `:heart:`. - -### `showApplyButton(_:)` - -Whether to show the apply button. - -When set to `TRUE`, typing text in the entry will reveal an apply button. -Clicking it or pressing the Enter key will hide the button and -emit the [signal@EntryRow::apply] signal. - -This is useful if changing the entry contents can trigger an expensive -operation, e.g. network activity, to avoid triggering it after typing every -character. - -### `title(_:)` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleSelectable(_:)` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup(_:)` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline(_:)` - -Whether an embedded underline in the title indicates a mnemonic. - -### `apply(_:)` - -Emitted when the apply button is pressed. - -See [property@EntryRow:show-apply-button]. - -### `entryActivated(_:)` - -Emitted when the embedded entry is activated. - -### `suffix(_:)` - -Set the body for "suffix". -- Parameter body: The body. -- Returns: The widget. - -### `prefix(_:)` - -Set the body for "prefix". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/ExpanderRow.md b/Documentation/Reference/structs/ExpanderRow.md deleted file mode 100644 index 56bf794..0000000 --- a/Documentation/Reference/structs/ExpanderRow.md +++ /dev/null @@ -1,217 +0,0 @@ -**STRUCT** - -# `ExpanderRow` - -A [class@Gtk.ListBoxRow] used to reveal widgets. - -expander-row - -The `AdwExpanderRow` widget allows the user to reveal or hide widgets below -it. It also allows the user to enable the expansion of the row, allowing to -disable all that the row contains. - -## AdwExpanderRow as GtkBuildable - -The `AdwExpanderRow` implementation of the [iface@Gtk.Buildable] interface -supports adding a child as an suffix widget by specifying “suffix” as the -“type” attribute of a element. - -It also supports adding it as a prefix widget by specifying “prefix” as the -“type” attribute of a element. - -## CSS nodes - -`AdwExpanderRow` has a main CSS node with name `row` and the `.expander` -style class. It has the `.empty` style class when it contains no children. - -It contains the subnodes `row.header` for its main embedded row, -`list.nested` for the list it can expand, and `image.expander-row-arrow` for -its arrow. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `enableExpansion` - -Whether expansion is enabled. - -### `expanded` - -Whether the row is expanded. - -### `iconName` - -The icon name for this row. - -### `showEnableSwitch` - -Whether the switch enabling the expansion is visible. - -### `subtitle` - -The subtitle for this row. - -The subtitle is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `subtitleLines` - -The number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `title` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleLines` - -The number of lines at the end of which the title label will be ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `titleSelectable` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline` - -Whether an embedded underline in the title indicates a mnemonic. - -### `rows` - -The body for the widget "rows". - -### `suffix` - -The body for the widget "suffix". - -### `prefix` - -The body for the widget "prefix". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `ExpanderRow`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `enableExpansion(_:)` - -Whether expansion is enabled. - -### `expanded(_:)` - -Whether the row is expanded. - -### `iconName(_:)` - -The icon name for this row. - -### `showEnableSwitch(_:)` - -Whether the switch enabling the expansion is visible. - -### `subtitle(_:)` - -The subtitle for this row. - -The subtitle is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `subtitleLines(_:)` - -The number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `title(_:)` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleLines(_:)` - -The number of lines at the end of which the title label will be ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `titleSelectable(_:)` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup(_:)` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline(_:)` - -Whether an embedded underline in the title indicates a mnemonic. - -### `rows(_:)` - -Set the body for "rows". -- Parameter body: The body. -- Returns: The widget. - -### `suffix(_:)` - -Set the body for "suffix". -- Parameter body: The body. -- Returns: The widget. - -### `prefix(_:)` - -Set the body for "prefix". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/FileDialog.md b/Documentation/Reference/structs/FileDialog.md deleted file mode 100644 index 410a8e0..0000000 --- a/Documentation/Reference/structs/FileDialog.md +++ /dev/null @@ -1,86 +0,0 @@ -**STRUCT** - -# `FileDialog` - -A structure representing a file dialog window. - -## Properties -### `id` - -The window's identifier. - -### `importer` - -Whether the window is an importer. - -### `open` - -Whether an instance of the window type should be opened when the app is starting up. - -### `parentID` - -The identifier of the window's parent. - -### `appShortcuts` - -The keyboard shortcuts on the app level. - -### `initialFolder` - -The initial folder. - -### `initialName` - -The initial file name for the file exporter. - -### `extensions` - -The accepted extensions for the file importer. - -### `result` - -The closure to run when the import or export is successful. - -### `cancel` - -The closure to run when the import or export is not successful. - -## Methods -### `init(importer:initialFolder:extensions:onOpen:onClose:)` - -Create an importer file dialog window. -- Parameters: - - importer: The window's identifier. - - initialFolder: The URL to the folder open when being opened. - - extensions: The accepted file extensions. - - folders: Whether folders are accepted. - - onOpen: Run this when a file for importing has been chosen. - - onClose: Run this when the user cancelled the action. - -### `init(exporter:initialFolder:initialName:onSave:onClose:)` - -Create an exporter file dialog window. -- Parameters: - - exporter: The window's identifier. - - initialFolder: The URL to the folder open when being opened. - - initialName: The default file name. - - onSave: Run this when a path for exporting has been chosen. - - onClose: Run this when the user cancelled the action. - -### `createWindow(app:)` - -Get the storage for the window. -- Parameter app: The application. -- Returns: The storage. - -### `update(_:app:force:)` - -Update a window. -- Parameters: - - storage: The storage to update. - - app: The application. - -### `update(window:)` - -Update the window. -- Parameter window: The window. diff --git a/Documentation/Reference/structs/FlowBox.md b/Documentation/Reference/structs/FlowBox.md deleted file mode 100644 index 006391d..0000000 --- a/Documentation/Reference/structs/FlowBox.md +++ /dev/null @@ -1,302 +0,0 @@ -**STRUCT** - -# `FlowBox` - -A `GtkFlowBox` puts child widgets in reflowing grid. - -For instance, with the horizontal orientation, the widgets will be -arranged from left to right, starting a new row under the previous -row when necessary. Reducing the width in this case will require more -rows, so a larger height will be requested. - -Likewise, with the vertical orientation, the widgets will be arranged -from top to bottom, starting a new column to the right when necessary. -Reducing the height will require more columns, so a larger width will -be requested. - -The size request of a `GtkFlowBox` alone may not be what you expect; -if you need to be able to shrink it along both axes and dynamically -reflow its children, you may have to wrap it in a `GtkScrolledWindow` -to enable that. - -The children of a `GtkFlowBox` can be dynamically sorted and filtered. - -Although a `GtkFlowBox` must have only `GtkFlowBoxChild` children, you -can add any kind of widget to it via [method@Gtk.FlowBox.insert], and a -`GtkFlowBoxChild` widget will automatically be inserted between the box -and the widget. - -Also see [class@Gtk.ListBox]. - -# CSS nodes - -``` -flowbox -├── flowboxchild -│ ╰── ├── flowboxchild -│ ╰── ┊ -╰── [rubberband] -``` - -`GtkFlowBox` uses a single CSS node with name flowbox. `GtkFlowBoxChild` -uses a single CSS node with name flowboxchild. For rubberband selection, -a subnode with name rubberband is used. - -# Accessibility - -`GtkFlowBox` uses the %GTK_ACCESSIBLE_ROLE_GRID role, and `GtkFlowBoxChild` -uses the %GTK_ACCESSIBLE_ROLE_GRID_CELL role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `acceptUnpairedRelease` - -accept-unpaired-release - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `activateOnSingleClick` - -Determines whether children can be activated with a single -click, or require a double-click. - -### `columnSpacing` - -The amount of horizontal space between two children. - -### `homogeneous` - -Determines whether all children should be allocated the -same size. - -### `maxChildrenPerLine` - -The maximum amount of children to request space for consecutively -in the given orientation. - -### `minChildrenPerLine` - -The minimum number of children to allocate consecutively -in the given orientation. - -Setting the minimum children per line ensures -that a reasonably small height will be requested -for the overall minimum width of the box. - -### `rowSpacing` - -The amount of vertical space between two children. - -### `activateCursorChild` - -Emitted when the user activates the @box. - -This is a [keybinding signal](class.SignalAction.html). - -### `childActivated` - -Emitted when a child has been activated by the user. - -### `moveCursor` - -Emitted when the user initiates a cursor movement. - -This is a [keybinding signal](class.SignalAction.html). -Applications should not connect to it, but may emit it with -g_signal_emit_by_name() if they need to control the cursor -programmatically. - -The default bindings for this signal come in two variants, -the variant with the Shift modifier extends the selection, -the variant without the Shift modifier does not. -There are too many key combinations to list them all here. - -- , , , -move by individual children -- Home, End move to the ends of the box -- PgUp, PgDn move vertically by pages - -### `selectAll` - -Emitted to select all children of the box, -if the selection mode permits it. - -This is a [keybinding signal](class.SignalAction.html). - -The default bindings for this signal is Ctrl-a. - -### `selectedChildrenChanged` - -Emitted when the set of selected children changes. - -Use [method@Gtk.FlowBox.selected_foreach] or -[method@Gtk.FlowBox.get_selected_children] to obtain the -selected children. - -### `toggleCursorChild` - -Emitted to toggle the selection of the child that has the focus. - -This is a [keybinding signal](class.SignalAction.html). - -The default binding for this signal is Ctrl-Space. - -### `unselectAll` - -Emitted to unselect all children of the box, -if the selection mode permits it. - -This is a [keybinding signal](class.SignalAction.html). - -The default bindings for this signal is Ctrl-Shift-a. - -### `elements` - -The dynamic widget elements. - -### `content` - -The dynamic widget content. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init(_:content:)` - -Initialize `FlowBox`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `acceptUnpairedRelease(_:)` - -accept-unpaired-release - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `activateOnSingleClick(_:)` - -Determines whether children can be activated with a single -click, or require a double-click. - -### `columnSpacing(_:)` - -The amount of horizontal space between two children. - -### `homogeneous(_:)` - -Determines whether all children should be allocated the -same size. - -### `maxChildrenPerLine(_:)` - -The maximum amount of children to request space for consecutively -in the given orientation. - -### `minChildrenPerLine(_:)` - -The minimum number of children to allocate consecutively -in the given orientation. - -Setting the minimum children per line ensures -that a reasonably small height will be requested -for the overall minimum width of the box. - -### `rowSpacing(_:)` - -The amount of vertical space between two children. - -### `activateCursorChild(_:)` - -Emitted when the user activates the @box. - -This is a [keybinding signal](class.SignalAction.html). - -### `childActivated(_:)` - -Emitted when a child has been activated by the user. - -### `moveCursor(_:)` - -Emitted when the user initiates a cursor movement. - -This is a [keybinding signal](class.SignalAction.html). -Applications should not connect to it, but may emit it with -g_signal_emit_by_name() if they need to control the cursor -programmatically. - -The default bindings for this signal come in two variants, -the variant with the Shift modifier extends the selection, -the variant without the Shift modifier does not. -There are too many key combinations to list them all here. - -- , , , -move by individual children -- Home, End move to the ends of the box -- PgUp, PgDn move vertically by pages - -### `selectAll(_:)` - -Emitted to select all children of the box, -if the selection mode permits it. - -This is a [keybinding signal](class.SignalAction.html). - -The default bindings for this signal is Ctrl-a. - -### `selectedChildrenChanged(_:)` - -Emitted when the set of selected children changes. - -Use [method@Gtk.FlowBox.selected_foreach] or -[method@Gtk.FlowBox.get_selected_children] to obtain the -selected children. - -### `toggleCursorChild(_:)` - -Emitted to toggle the selection of the child that has the focus. - -This is a [keybinding signal](class.SignalAction.html). - -The default binding for this signal is Ctrl-Space. - -### `unselectAll(_:)` - -Emitted to unselect all children of the box, -if the selection mode permits it. - -This is a [keybinding signal](class.SignalAction.html). - -The default bindings for this signal is Ctrl-Shift-a. diff --git a/Documentation/Reference/structs/ForEach.md b/Documentation/Reference/structs/ForEach.md deleted file mode 100644 index ac41cce..0000000 --- a/Documentation/Reference/structs/ForEach.md +++ /dev/null @@ -1,37 +0,0 @@ -**STRUCT** - -# `ForEach` - -A dynamic list but without a list design in the user interface. - -## Properties -### `elements` - -The dynamic widget elements. - -### `content` - -The dynamic widget content. - -### `horizontal` - -Whether the list is horizontal. - -## Methods -### `init(_:horizontal:content:)` - -Initialize `ForEach`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. diff --git a/Documentation/Reference/structs/Form.md b/Documentation/Reference/structs/Form.md deleted file mode 100644 index 21a1bf4..0000000 --- a/Documentation/Reference/structs/Form.md +++ /dev/null @@ -1,20 +0,0 @@ -**STRUCT** - -# `Form` - -A list with no dynamic content styled as a boxed list. - -## Properties -### `content` - -The content. - -### `view` - -The view's body. - -## Methods -### `init(content:)` - -Initialize a `Form`. -- Parameter content: The view content, usually different kind of rows. diff --git a/Documentation/Reference/structs/FormSection.md b/Documentation/Reference/structs/FormSection.md deleted file mode 100644 index 6540548..0000000 --- a/Documentation/Reference/structs/FormSection.md +++ /dev/null @@ -1,64 +0,0 @@ -**STRUCT** - -# `FormSection` - -A section usually groups forms. - -## Properties -### `title` - -The title. - -### `content` - -The content. - -### `description` - -The description. - -### `suffix` - -The suffix. - -### `suffixID` - -The identifier for the suffix content. - -## Methods -### `init(_:content:)` - -Initialize a form section. -- Parameters: - - title: The title. - - content: The content, usually one or more forms. - -### `update(_:modifiers:)` - -Update a view storage. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - -### `container(modifiers:)` - -Get a view storage. -- Parameter modifiers: Modify views before being updated. -- Returns: The view storage. - -### `update(group:)` - -Update the form section. -- Parameter group: The form section. - -### `description(_:)` - -Set the form section's description. -- Parameter description: The description. -- Returns: The form section. - -### `suffix(_:)` - -Set the form section's suffix view. -- Parameter suffix: The suffix. -- Returns: The form section. diff --git a/Documentation/Reference/structs/Freeze.md b/Documentation/Reference/structs/Freeze.md deleted file mode 100644 index a54cd48..0000000 --- a/Documentation/Reference/structs/Freeze.md +++ /dev/null @@ -1,29 +0,0 @@ -**STRUCT** - -# `Freeze` - -State whether to update the child views or not. - -## Properties -### `freeze` - -Whether not to update the child view. - -### `content` - -The wrapped view. - -## Methods -### `container(modifiers:)` - -Get the content's container. -- Parameter modifiers: Modify views before being updated. -- Returns: The content's container. - -### `update(_:modifiers:updateProperties:)` - -Update the content. -- Parameters: - - storage: The content's storage. - - modifiers: Modify views before being updated. - - updateProperties: Whether to update properties. diff --git a/Documentation/Reference/structs/HStack.md b/Documentation/Reference/structs/HStack.md deleted file mode 100644 index 42e828c..0000000 --- a/Documentation/Reference/structs/HStack.md +++ /dev/null @@ -1,20 +0,0 @@ -**STRUCT** - -# `HStack` - -A horizontal GtkBox equivalent. - -## Properties -### `content` - -The content. - -### `view` - -The view's body. - -## Methods -### `init(content:)` - -Initialize a `HStack`. -- Parameter content: The view content. diff --git a/Documentation/Reference/structs/HeaderBar.md b/Documentation/Reference/structs/HeaderBar.md deleted file mode 100644 index b37abfe..0000000 --- a/Documentation/Reference/structs/HeaderBar.md +++ /dev/null @@ -1,256 +0,0 @@ -**STRUCT** - -# `HeaderBar` - -A title bar widget. - -header-bar - -`AdwHeaderBar` is similar to [class@Gtk.HeaderBar], but provides additional -features compared to it. Refer to `GtkHeaderBar` for details. It is typically -used as a top bar within [class@ToolbarView]. - -## Navigation View Integration - -When placed inside an [class@NavigationPage], `AdwHeaderBar` will display the -page title instead of window title. - -When used together with [class@NavigationView] or [class@NavigationSplitView], -it will also display a back button that can be used to go back to the previous -page. The button also has a context menu, allowing to pop multiple pages at -once, potentially across multiple navigation views. In rare scenarios, set -[property@HeaderBar:show-back-button] to `FALSE` to disable the back button -if it's unwanted (e.g. in an extra header bar on the same page). - -## Split View Integration - -When placed inside `AdwNavigationSplitView` or `AdwOverlaySplitView`, -`AdwHeaderBar` will automatically hide the title buttons other than at the -edges of the window. - -## Centering Policy - -[property@HeaderBar:centering-policy] allows to enforce strict centering of -the title widget. This can be useful for entries inside [class@Clamp]. - -## Title Buttons - -Unlike `GtkHeaderBar`, `AdwHeaderBar` allows to toggle title button -visibility for each side individually, using the -[property@HeaderBar:show-start-title-buttons] and -[property@HeaderBar:show-end-title-buttons] properties. - -## CSS nodes - -``` -headerbar -╰── windowhandle -╰── box -├── widget -│ ╰── box.start -│ ├── windowcontrols.start -│ ├── widget -│ │ ╰── [button.back] -│ ╰── [other children] -├── widget -│ ╰── [Title Widget] -╰── widget -╰── box.end -├── [other children] -╰── windowcontrols.end -``` - -`AdwHeaderBar`'s CSS node is called `headerbar`. It contains a `windowhandle` -subnode, which contains a `box` subnode, which contains three `widget` -subnodes at the start, center and end of the header bar. The start and end -subnotes contain a `box` subnode with the `.start` and `.end` style classes -respectively, and the center node contains a node that represents the title. - -Each of the boxes contains a `windowcontrols` subnode, see -[class@Gtk.WindowControls] for details, as well as other children. - -When [property@HeaderBar:show-back-button] is `TRUE`, the start box also -contains a node with the name `widget` that contains a node with the name -`button` and `.back` style class. - -## Accessibility - -`AdwHeaderBar` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `decorationLayout` - -The decoration layout for buttons. - -If this property is not set, the -[property@Gtk.Settings:gtk-decoration-layout] setting is used. - -The format of the string is button names, separated by commas. A colon -separates the buttons that should appear at the start from those at the -end. Recognized button names are minimize, maximize, close and icon (the -window icon). - -For example, “icon:minimize,maximize,close” specifies an icon at the start, -and minimize, maximize and close buttons at the end. - -### `showBackButton` - -Whether the header bar can show the back button. - -The back button will never be shown unless the header bar is placed inside an -[class@NavigationView]. Usually, there is no reason to set this to `FALSE`. - -### `showEndTitleButtons` - -Whether to show title buttons at the end of the header bar. - -See [property@HeaderBar:show-start-title-buttons] for the other side. - -Which buttons are actually shown and where is determined by the -[property@HeaderBar:decoration-layout] property, and by the state of the -window (e.g. a close button will not be shown if the window can't be -closed). - -### `showStartTitleButtons` - -Whether to show title buttons at the start of the header bar. - -See [property@HeaderBar:show-end-title-buttons] for the other side. - -Which buttons are actually shown and where is determined by the -[property@HeaderBar:decoration-layout] property, and by the state of the -window (e.g. a close button will not be shown if the window can't be -closed). - -### `showTitle` - -Whether the title widget should be shown. - -### `titleWidget` - -The title widget to display. - -When set to `NULL`, the header bar will display the title of the window it -is contained in. - -To use a different title, use [class@WindowTitle]: - -```xml -Title -``` - -### `start` - -The body for the widget "start". - -### `end` - -The body for the widget "end". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `HeaderBar`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `decorationLayout(_:)` - -The decoration layout for buttons. - -If this property is not set, the -[property@Gtk.Settings:gtk-decoration-layout] setting is used. - -The format of the string is button names, separated by commas. A colon -separates the buttons that should appear at the start from those at the -end. Recognized button names are minimize, maximize, close and icon (the -window icon). - -For example, “icon:minimize,maximize,close” specifies an icon at the start, -and minimize, maximize and close buttons at the end. - -### `showBackButton(_:)` - -Whether the header bar can show the back button. - -The back button will never be shown unless the header bar is placed inside an -[class@NavigationView]. Usually, there is no reason to set this to `FALSE`. - -### `showEndTitleButtons(_:)` - -Whether to show title buttons at the end of the header bar. - -See [property@HeaderBar:show-start-title-buttons] for the other side. - -Which buttons are actually shown and where is determined by the -[property@HeaderBar:decoration-layout] property, and by the state of the -window (e.g. a close button will not be shown if the window can't be -closed). - -### `showStartTitleButtons(_:)` - -Whether to show title buttons at the start of the header bar. - -See [property@HeaderBar:show-end-title-buttons] for the other side. - -Which buttons are actually shown and where is determined by the -[property@HeaderBar:decoration-layout] property, and by the state of the -window (e.g. a close button will not be shown if the window can't be -closed). - -### `showTitle(_:)` - -Whether the title widget should be shown. - -### `titleWidget(_:)` - -The title widget to display. - -When set to `NULL`, the header bar will display the title of the window it -is contained in. - -To use a different title, use [class@WindowTitle]: - -```xml -Title -``` - -### `start(_:)` - -Set the body for "start". -- Parameter body: The body. -- Returns: The widget. - -### `end(_:)` - -Set the body for "end". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/InspectorWrapper.md b/Documentation/Reference/structs/InspectorWrapper.md deleted file mode 100644 index 0d41c6c..0000000 --- a/Documentation/Reference/structs/InspectorWrapper.md +++ /dev/null @@ -1,29 +0,0 @@ -**STRUCT** - -# `InspectorWrapper` - -A widget which executes a custom code on the GTUI widget when being created and updated. - -## Properties -### `modify` - -The custom code to edit the widget. - -### `content` - -The wrapped view. - -## Methods -### `container(modifiers:)` - -Get the content's container. -- Parameter modifiers: Modify views before being updated. -- Returns: The content's container. - -### `update(_:modifiers:updateProperties:)` - -Update the content. -- Parameters: - - storage: The content's storage. - - modifiers: Modify views before being updated. - - updateProperties: Whether to update properties. diff --git a/Documentation/Reference/structs/Label.md b/Documentation/Reference/structs/Label.md deleted file mode 100644 index 20f628a..0000000 --- a/Documentation/Reference/structs/Label.md +++ /dev/null @@ -1,429 +0,0 @@ -**STRUCT** - -# `Label` - -The `GtkLabel` widget displays a small amount of text. - -As the name implies, most labels are used to label another widget -such as a [class@Button]. - -![An example GtkLabel](label.png) - -# CSS nodes - -``` -label -├── [selection] -├── [link] -┊ -╰── [link] -``` - -`GtkLabel` has a single CSS node with the name label. A wide variety -of style classes may be applied to labels, such as .title, .subtitle, -.dim-label, etc. In the `GtkShortcutsWindow`, labels are used with the -.keycap style class. - -If the label has a selection, it gets a subnode with name selection. - -If the label has links, there is one subnode per link. These subnodes -carry the link or visited state depending on whether they have been -visited. In this case, label node also gets a .link style class. - -# GtkLabel as GtkBuildable - -The GtkLabel implementation of the GtkBuildable interface supports a -custom `` element, which supports any number of `` -elements. The `` element has attributes named “name“, “value“, -“start“ and “end“ and allows you to specify [struct@Pango.Attribute] -values for this label. - -An example of a UI definition fragment specifying Pango attributes: -```xml - -``` - -The start and end attributes specify the range of characters to which the -Pango attribute applies. If start and end are not specified, the attribute is -applied to the whole text. Note that specifying ranges does not make much -sense with translatable attributes. Use markup embedded in the translatable -content instead. - -# Accessibility - -`GtkLabel` uses the %GTK_ACCESSIBLE_ROLE_LABEL role. - -# Mnemonics - -Labels may contain “mnemonics”. Mnemonics are underlined characters in the -label, used for keyboard navigation. Mnemonics are created by providing a -string with an underscore before the mnemonic character, such as `"_File"`, -to the functions [ctor@Gtk.Label.new_with_mnemonic] or -[method@Gtk.Label.set_text_with_mnemonic]. - -Mnemonics automatically activate any activatable widget the label is -inside, such as a [class@Gtk.Button]; if the label is not inside the -mnemonic’s target widget, you have to tell the label about the target -using [method@Gtk.Label.set_mnemonic_widget]. - -Here’s a simple example where the label is inside a button: - -```c -// Pressing Alt+H will activate this button -GtkWidget *button = gtk_button_new (); -GtkWidget *label = gtk_label_new_with_mnemonic ("_Hello"); -gtk_button_set_child (GTK_BUTTON (button), label); -``` - -There’s a convenience function to create buttons with a mnemonic label -already inside: - -```c -// Pressing Alt+H will activate this button -GtkWidget *button = gtk_button_new_with_mnemonic ("_Hello"); -``` - -To create a mnemonic for a widget alongside the label, such as a -[class@Gtk.Entry], you have to point the label at the entry with -[method@Gtk.Label.set_mnemonic_widget]: - -```c -// Pressing Alt+H will focus the entry -GtkWidget *entry = gtk_entry_new (); -GtkWidget *label = gtk_label_new_with_mnemonic ("_Hello"); -gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry); -``` - -# Markup (styled text) - -To make it easy to format text in a label (changing colors, -fonts, etc.), label text can be provided in a simple -markup format: - -Here’s how to create a label with a small font: -```c -GtkWidget *label = gtk_label_new (NULL); -gtk_label_set_markup (GTK_LABEL (label), "Small text"); -``` - -(See the Pango manual for complete documentation] of available -tags, [func@Pango.parse_markup]) - -The markup passed to [method@Gtk.Label.set_markup] must be valid; for example, -literal `<`, `>` and `&` characters must be escaped as `<`, `>`, and `&`. -If you pass text obtained from the user, file, or a network to -[method@Gtk.Label.set_markup], you’ll want to escape it with -[func@GLib.markup_escape_text] or [func@GLib.markup_printf_escaped]. - -Markup strings are just a convenient way to set the [struct@Pango.AttrList] -on a label; [method@Gtk.Label.set_attributes] may be a simpler way to set -attributes in some cases. Be careful though; [struct@Pango.AttrList] tends -to cause internationalization problems, unless you’re applying attributes -to the entire string (i.e. unless you set the range of each attribute -to [0, %G_MAXINT)). The reason is that specifying the start_index and -end_index for a [struct@Pango.Attribute] requires knowledge of the exact -string being displayed, so translations will cause problems. - -# Selectable labels - -Labels can be made selectable with [method@Gtk.Label.set_selectable]. -Selectable labels allow the user to copy the label contents to -the clipboard. Only labels that contain useful-to-copy information -— such as error messages — should be made selectable. - -# Text layout - -A label can contain any number of paragraphs, but will have -performance problems if it contains more than a small number. -Paragraphs are separated by newlines or other paragraph separators -understood by Pango. - -Labels can automatically wrap text if you call [method@Gtk.Label.set_wrap]. - -[method@Gtk.Label.set_justify] sets how the lines in a label align -with one another. If you want to set how the label as a whole aligns -in its available space, see the [property@Gtk.Widget:halign] and -[property@Gtk.Widget:valign] properties. - -The [property@Gtk.Label:width-chars] and [property@Gtk.Label:max-width-chars] -properties can be used to control the size allocation of ellipsized or -wrapped labels. For ellipsizing labels, if either is specified (and less -than the actual text size), it is used as the minimum width, and the actual -text size is used as the natural width of the label. For wrapping labels, -width-chars is used as the minimum width, if specified, and max-width-chars -is used as the natural width. Even if max-width-chars specified, wrapping -labels will be rewrapped to use all of the available width. - -# Links - -GTK supports markup for clickable hyperlinks in addition to regular Pango -markup. The markup for links is borrowed from HTML, using the `` with -“href“, “title“ and “class“ attributes. GTK renders links similar to the -way they appear in web browsers, with colored, underlined text. The “title“ -attribute is displayed as a tooltip on the link. The “class“ attribute is -used as style class on the CSS node for the link. - -An example looks like this: - -```c -const char *text = -"Go to the " -"" -"GTK website for more..."; -GtkWidget *label = gtk_label_new (NULL); -gtk_label_set_markup (GTK_LABEL (label), text); -``` - -It is possible to implement custom handling for links and their tooltips -with the [signal@Gtk.Label::activate-link] signal and the -[method@Gtk.Label.get_current_uri] function. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `label` - -The contents of the label. - -If the string contains Pango markup (see [func@Pango.parse_markup]), -you will have to set the [property@Gtk.Label:use-markup] property to -%TRUE in order for the label to display the markup attributes. See also -[method@Gtk.Label.set_markup] for a convenience function that sets both -this property and the [property@Gtk.Label:use-markup] property at the -same time. - -If the string contains underlines acting as mnemonics, you will have to -set the [property@Gtk.Label:use-underline] property to %TRUE in order -for the label to display them. - -### `lines` - -The number of lines to which an ellipsized, wrapping label -should be limited. - -This property has no effect if the label is not wrapping or ellipsized. -Set this property to -1 if you don't want to limit the number of lines. - -### `maxWidthChars` - -The desired maximum width of the label, in characters. - -If this property is set to -1, the width will be calculated automatically. - -See the section on [text layout](class.Label.html#text-layout) for details of how -[property@Gtk.Label:width-chars] and [property@Gtk.Label:max-width-chars] -determine the width of ellipsized and wrapped labels. - -### `mnemonicKeyval` - -The mnemonic accelerator key for the label. - -### `mnemonicWidget` - -The widget to be activated when the labels mnemonic key is pressed. - -### `selectable` - -Whether the label text can be selected with the mouse. - -### `singleLineMode` - -Whether the label is in single line mode. - -In single line mode, the height of the label does not depend on the -actual text, it is always set to ascent + descent of the font. This -can be an advantage in situations where resizing the label because -of text changes would be distracting, e.g. in a statusbar. - -### `useMarkup` - -%TRUE if the text of the label includes Pango markup. - -See [func@Pango.parse_markup]. - -### `useUnderline` - -%TRUE if the text of the label indicates a mnemonic with an _ -before the mnemonic character. - -### `widthChars` - -The desired width of the label, in characters. - -If this property is set to -1, the width will be calculated automatically. - -See the section on [text layout](class.Label.html#text-layout) for details of how -[property@Gtk.Label:width-chars] and [property@Gtk.Label:max-width-chars] -determine the width of ellipsized and wrapped labels. - -### `wrap` - -%TRUE if the label text will wrap if it gets too wide. - -### `xalign` - -The horizontal alignment of the label text inside its size allocation. - -Compare this to [property@Gtk.Widget:halign], which determines how the -labels size allocation is positioned in the space available for the label. - -### `yalign` - -The vertical alignment of the label text inside its size allocation. - -Compare this to [property@Gtk.Widget:valign], which determines how the -labels size allocation is positioned in the space available for the label. - -### `copyClipboard` - -Gets emitted to copy the selection to the clipboard. - -The ::copy-clipboard signal is a [keybinding signal](class.SignalAction.html). - -The default binding for this signal is Ctrl+c. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init(label:)` - -Initialize `Label`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `label(_:)` - -The contents of the label. - -If the string contains Pango markup (see [func@Pango.parse_markup]), -you will have to set the [property@Gtk.Label:use-markup] property to -%TRUE in order for the label to display the markup attributes. See also -[method@Gtk.Label.set_markup] for a convenience function that sets both -this property and the [property@Gtk.Label:use-markup] property at the -same time. - -If the string contains underlines acting as mnemonics, you will have to -set the [property@Gtk.Label:use-underline] property to %TRUE in order -for the label to display them. - -### `lines(_:)` - -The number of lines to which an ellipsized, wrapping label -should be limited. - -This property has no effect if the label is not wrapping or ellipsized. -Set this property to -1 if you don't want to limit the number of lines. - -### `maxWidthChars(_:)` - -The desired maximum width of the label, in characters. - -If this property is set to -1, the width will be calculated automatically. - -See the section on [text layout](class.Label.html#text-layout) for details of how -[property@Gtk.Label:width-chars] and [property@Gtk.Label:max-width-chars] -determine the width of ellipsized and wrapped labels. - -### `mnemonicKeyval(_:)` - -The mnemonic accelerator key for the label. - -### `mnemonicWidget(_:)` - -The widget to be activated when the labels mnemonic key is pressed. - -### `selectable(_:)` - -Whether the label text can be selected with the mouse. - -### `singleLineMode(_:)` - -Whether the label is in single line mode. - -In single line mode, the height of the label does not depend on the -actual text, it is always set to ascent + descent of the font. This -can be an advantage in situations where resizing the label because -of text changes would be distracting, e.g. in a statusbar. - -### `useMarkup(_:)` - -%TRUE if the text of the label includes Pango markup. - -See [func@Pango.parse_markup]. - -### `useUnderline(_:)` - -%TRUE if the text of the label indicates a mnemonic with an _ -before the mnemonic character. - -### `widthChars(_:)` - -The desired width of the label, in characters. - -If this property is set to -1, the width will be calculated automatically. - -See the section on [text layout](class.Label.html#text-layout) for details of how -[property@Gtk.Label:width-chars] and [property@Gtk.Label:max-width-chars] -determine the width of ellipsized and wrapped labels. - -### `wrap(_:)` - -%TRUE if the label text will wrap if it gets too wide. - -### `xalign(_:)` - -The horizontal alignment of the label text inside its size allocation. - -Compare this to [property@Gtk.Widget:halign], which determines how the -labels size allocation is positioned in the space available for the label. - -### `yalign(_:)` - -The vertical alignment of the label text inside its size allocation. - -Compare this to [property@Gtk.Widget:valign], which determines how the -labels size allocation is positioned in the space available for the label. - -### `copyClipboard(_:)` - -Gets emitted to copy the selection to the clipboard. - -The ::copy-clipboard signal is a [keybinding signal](class.SignalAction.html). - -The default binding for this signal is Ctrl+c. diff --git a/Documentation/Reference/structs/LevelBar.md b/Documentation/Reference/structs/LevelBar.md deleted file mode 100644 index 8a586f5..0000000 --- a/Documentation/Reference/structs/LevelBar.md +++ /dev/null @@ -1,209 +0,0 @@ -**STRUCT** - -# `LevelBar` - -`GtkLevelBar` is a widget that can be used as a level indicator. - -Typical use cases are displaying the strength of a password, or -showing the charge level of a battery. - -![An example GtkLevelBar](levelbar.png) - -Use [method@Gtk.LevelBar.set_value] to set the current value, and -[method@Gtk.LevelBar.add_offset_value] to set the value offsets at which -the bar will be considered in a different state. GTK will add a few -offsets by default on the level bar: %GTK_LEVEL_BAR_OFFSET_LOW, -%GTK_LEVEL_BAR_OFFSET_HIGH and %GTK_LEVEL_BAR_OFFSET_FULL, with -values 0.25, 0.75 and 1.0 respectively. - -Note that it is your responsibility to update preexisting offsets -when changing the minimum or maximum value. GTK will simply clamp -them to the new range. - -## Adding a custom offset on the bar - -```c -static GtkWidget * -create_level_bar (void) -{ -GtkWidget *widget; -GtkLevelBar *bar; - -widget = gtk_level_bar_new (); -bar = GTK_LEVEL_BAR (widget); - -// This changes the value of the default low offset - -gtk_level_bar_add_offset_value (bar, -GTK_LEVEL_BAR_OFFSET_LOW, -0.10); - -// This adds a new offset to the bar; the application will -// be able to change its color CSS like this: -// -// levelbar block.my-offset { -// background-color: magenta; -// border-style: solid; -// border-color: black; -// border-width: 1px; -// } - -gtk_level_bar_add_offset_value (bar, "my-offset", 0.60); - -return widget; -} -``` - -The default interval of values is between zero and one, but it’s possible -to modify the interval using [method@Gtk.LevelBar.set_min_value] and -[method@Gtk.LevelBar.set_max_value]. The value will be always drawn in -proportion to the admissible interval, i.e. a value of 15 with a specified -interval between 10 and 20 is equivalent to a value of 0.5 with an interval -between 0 and 1. When %GTK_LEVEL_BAR_MODE_DISCRETE is used, the bar level -is rendered as a finite number of separated blocks instead of a single one. -The number of blocks that will be rendered is equal to the number of units -specified by the admissible interval. - -For instance, to build a bar rendered with five blocks, it’s sufficient to -set the minimum value to 0 and the maximum value to 5 after changing the -indicator mode to discrete. - -# GtkLevelBar as GtkBuildable - -The `GtkLevelBar` implementation of the `GtkBuildable` interface supports a -custom `` element, which can contain any number of `` elements, -each of which must have "name" and "value" attributes. - -# CSS nodes - -``` -levelbar[.discrete] -╰── trough -├── block.filled.level-name -┊ -├── block.empty -┊ -``` - -`GtkLevelBar` has a main CSS node with name levelbar and one of the style -classes .discrete or .continuous and a subnode with name trough. Below the -trough node are a number of nodes with name block and style class .filled -or .empty. In continuous mode, there is exactly one node of each, in discrete -mode, the number of filled and unfilled nodes corresponds to blocks that are -drawn. The block.filled nodes also get a style class .level-name corresponding -to the level for the current value. - -In horizontal orientation, the nodes are always arranged from left to right, -regardless of text direction. - -# Accessibility - -`GtkLevelBar` uses the %GTK_ACCESSIBLE_ROLE_METER role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `inverted` - -Whether the `GtkLeveBar` is inverted. - -Level bars normally grow from top to bottom or left to right. -Inverted level bars grow in the opposite direction. - -### `maxValue` - -Determines the maximum value of the interval that can be displayed by the bar. - -### `minValue` - -Determines the minimum value of the interval that can be displayed by the bar. - -### `value` - -Determines the currently filled value of the level bar. - -### `offsetChanged` - -Emitted when an offset specified on the bar changes value. - -This typically is the result of a [method@Gtk.LevelBar.add_offset_value] -call. - -The signal supports detailed connections; you can connect to the -detailed signal "changed::x" in order to only receive callbacks when -the value of offset "x" changes. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `LevelBar`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `inverted(_:)` - -Whether the `GtkLeveBar` is inverted. - -Level bars normally grow from top to bottom or left to right. -Inverted level bars grow in the opposite direction. - -### `maxValue(_:)` - -Determines the maximum value of the interval that can be displayed by the bar. - -### `minValue(_:)` - -Determines the minimum value of the interval that can be displayed by the bar. - -### `value(_:)` - -Determines the currently filled value of the level bar. - -### `offsetChanged(_:)` - -Emitted when an offset specified on the bar changes value. - -This typically is the result of a [method@Gtk.LevelBar.add_offset_value] -call. - -The signal supports detailed connections; you can connect to the -detailed signal "changed::x" in order to only receive callbacks when -the value of offset "x" changes. diff --git a/Documentation/Reference/structs/LinkButton.md b/Documentation/Reference/structs/LinkButton.md deleted file mode 100644 index a3af692..0000000 --- a/Documentation/Reference/structs/LinkButton.md +++ /dev/null @@ -1,196 +0,0 @@ -**STRUCT** - -# `LinkButton` - -A `GtkLinkButton` is a button with a hyperlink. - -![An example GtkLinkButton](link-button.png) - -It is useful to show quick links to resources. - -A link button is created by calling either [ctor@Gtk.LinkButton.new] or -[ctor@Gtk.LinkButton.new_with_label]. If using the former, the URI you -pass to the constructor is used as a label for the widget. - -The URI bound to a `GtkLinkButton` can be set specifically using -[method@Gtk.LinkButton.set_uri]. - -By default, `GtkLinkButton` calls [method@Gtk.FileLauncher.launch] when the button -is clicked. This behaviour can be overridden by connecting to the -[signal@Gtk.LinkButton::activate-link] signal and returning %TRUE from -the signal handler. - -# CSS nodes - -`GtkLinkButton` has a single CSS node with name button. To differentiate -it from a plain `GtkButton`, it gets the .link style class. - -# Accessibility - -`GtkLinkButton` uses the %GTK_ACCESSIBLE_ROLE_LINK role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `actionName` - -action-name - -### `canShrink` - -Whether the size of the button can be made smaller than the natural -size of its contents. - -For text buttons, setting this property will allow ellipsizing the label. - -If the contents of a button are an icon or a custom widget, setting this -property has no effect. - -### `child` - -The child widget. - -### `hasFrame` - -Whether the button has a frame. - -### `iconName` - -The name of the icon used to automatically populate the button. - -### `label` - -Text of the label inside the button, if the button contains a label widget. - -### `uri` - -The URI bound to this button. - -### `useUnderline` - -If set, an underline in the text indicates that the following character is -to be used as mnemonic. - -### `visited` - -The 'visited' state of this button. - -A visited link is drawn in a different color. - -### `activate` - -Emitted to animate press then release. - -This is an action signal. Applications should never connect -to this signal, but use the [signal@Gtk.Button::clicked] signal. - -The default bindings for this signal are all forms of the - and Enter keys. - -### `clicked` - -Emitted when the button has been activated (pressed and released). - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init(uri:)` - -Initialize `LinkButton`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `actionName(_:)` - -action-name - -### `canShrink(_:)` - -Whether the size of the button can be made smaller than the natural -size of its contents. - -For text buttons, setting this property will allow ellipsizing the label. - -If the contents of a button are an icon or a custom widget, setting this -property has no effect. - -### `child(_:)` - -The child widget. - -### `hasFrame(_:)` - -Whether the button has a frame. - -### `iconName(_:)` - -The name of the icon used to automatically populate the button. - -### `label(_:)` - -Text of the label inside the button, if the button contains a label widget. - -### `uri(_:)` - -The URI bound to this button. - -### `useUnderline(_:)` - -If set, an underline in the text indicates that the following character is -to be used as mnemonic. - -### `visited(_:)` - -The 'visited' state of this button. - -A visited link is drawn in a different color. - -### `activate(_:)` - -Emitted to animate press then release. - -This is an action signal. Applications should never connect -to this signal, but use the [signal@Gtk.Button::clicked] signal. - -The default bindings for this signal are all forms of the - and Enter keys. - -### `clicked(_:)` - -Emitted when the button has been activated (pressed and released). diff --git a/Documentation/Reference/structs/List.md b/Documentation/Reference/structs/List.md deleted file mode 100644 index cf9f791..0000000 --- a/Documentation/Reference/structs/List.md +++ /dev/null @@ -1,69 +0,0 @@ -**STRUCT** - -# `List` - -A list box widget. - -## Properties -### `elements` - -The elements. - -### `content` - -The content. - -### `selection` - -The identifier of the selected element. - -### `elementsID` - -The identifier of the elements storage. - -## Methods -### `init(_:selection:content:)` - -Initialize `List`. -- Parameters: - - elements: The elements. - - selection: The identifier of the selected element. - - content: The view for an element. - -### `update(_:modifiers:)` - -Update a view storage. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - -### `container(modifiers:)` - -Get a view storage. -- Parameter modifiers: Modify views before being updated. -- Returns: The view storage. - -### `updateList(box:content:modifiers:)` - -Update the list's content and selection. -- Parameters: - - box: The list box. - - content: The content's view storage. - - modifiers: The view modifiers. - -### `updateSelection(box:)` - -Update the list's selection. -- Parameter box: The list box. - -### `getWidget(element:modifiers:)` - -Get the view storage of an element. -- Parameters: - - element: The element. - - modifiers: The modifiers. -- Returns: The view storage. - -### `sidebarStyle()` - -Add the "navigation-sidebar" style class. diff --git a/Documentation/Reference/structs/ListBox.md b/Documentation/Reference/structs/ListBox.md deleted file mode 100644 index 70459d6..0000000 --- a/Documentation/Reference/structs/ListBox.md +++ /dev/null @@ -1,235 +0,0 @@ -**STRUCT** - -# `ListBox` - -`GtkListBox` is a vertical list. - -A `GtkListBox` only contains `GtkListBoxRow` children. These rows can -by dynamically sorted and filtered, and headers can be added dynamically -depending on the row content. It also allows keyboard and mouse navigation -and selection like a typical list. - -Using `GtkListBox` is often an alternative to `GtkTreeView`, especially -when the list contents has a more complicated layout than what is allowed -by a `GtkCellRenderer`, or when the contents is interactive (i.e. has a -button in it). - -Although a `GtkListBox` must have only `GtkListBoxRow` children, you can -add any kind of widget to it via [method@Gtk.ListBox.prepend], -[method@Gtk.ListBox.append] and [method@Gtk.ListBox.insert] and a -`GtkListBoxRow` widget will automatically be inserted between the list -and the widget. - -`GtkListBoxRows` can be marked as activatable or selectable. If a row is -activatable, [signal@Gtk.ListBox::row-activated] will be emitted for it when -the user tries to activate it. If it is selectable, the row will be marked -as selected when the user tries to select it. - -# GtkListBox as GtkBuildable - -The `GtkListBox` implementation of the `GtkBuildable` interface supports -setting a child as the placeholder by specifying “placeholder” as the “type” -attribute of a `` element. See [method@Gtk.ListBox.set_placeholder] -for info. - -# CSS nodes - -|[ -list[.separators][.rich-list][.navigation-sidebar][.boxed-list] -╰── row[.activatable] -]| - -`GtkListBox` uses a single CSS node named list. It may carry the .separators -style class, when the [property@Gtk.ListBox:show-separators] property is set. -Each `GtkListBoxRow` uses a single CSS node named row. The row nodes get the -.activatable style class added when appropriate. - -It may also carry the .boxed-list style class. In this case, the list will be -automatically surrounded by a frame and have separators. - -The main list node may also carry style classes to select -the style of [list presentation](section-list-widget.html#list-styles): -.rich-list, .navigation-sidebar or .data-table. - -# Accessibility - -`GtkListBox` uses the %GTK_ACCESSIBLE_ROLE_LIST role and `GtkListBoxRow` uses -the %GTK_ACCESSIBLE_ROLE_LIST_ITEM role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `acceptUnpairedRelease` - -Whether to accept unpaired release events. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `activateOnSingleClick` - -Determines whether children can be activated with a single -click, or require a double-click. - -### `showSeparators` - -Whether to show separators between rows. - -### `activateCursorRow` - -activateCursorRow - -### `moveCursor` - -moveCursor - -### `rowActivated` - -Emitted when a row has been activated by the user. - -### `rowSelected` - -Emitted when a new row is selected, or (with a %NULL @row) -when the selection is cleared. - -When the @box is using %GTK_SELECTION_MULTIPLE, this signal will not -give you the full picture of selection changes, and you should use -the [signal@Gtk.ListBox::selected-rows-changed] signal instead. - -### `selectAll` - -Emitted to select all children of the box, if the selection -mode permits it. - -This is a [keybinding signal](class.SignalAction.html). - -The default binding for this signal is Ctrl-a. - -### `selectedRowsChanged` - -Emitted when the set of selected rows changes. - -### `toggleCursorRow` - -toggleCursorRow - -### `unselectAll` - -Emitted to unselect all children of the box, if the selection -mode permits it. - -This is a [keybinding signal](class.SignalAction.html). - -The default binding for this signal is -Ctrl-Shift-a. - -### `elements` - -The dynamic widget elements. - -### `content` - -The dynamic widget content. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init(_:content:)` - -Initialize `ListBox`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `acceptUnpairedRelease(_:)` - -Whether to accept unpaired release events. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `activateOnSingleClick(_:)` - -Determines whether children can be activated with a single -click, or require a double-click. - -### `showSeparators(_:)` - -Whether to show separators between rows. - -### `activateCursorRow(_:)` - -activateCursorRow - -### `moveCursor(_:)` - -moveCursor - -### `rowActivated(_:)` - -Emitted when a row has been activated by the user. - -### `rowSelected(_:)` - -Emitted when a new row is selected, or (with a %NULL @row) -when the selection is cleared. - -When the @box is using %GTK_SELECTION_MULTIPLE, this signal will not -give you the full picture of selection changes, and you should use -the [signal@Gtk.ListBox::selected-rows-changed] signal instead. - -### `selectAll(_:)` - -Emitted to select all children of the box, if the selection -mode permits it. - -This is a [keybinding signal](class.SignalAction.html). - -The default binding for this signal is Ctrl-a. - -### `selectedRowsChanged(_:)` - -Emitted when the set of selected rows changes. - -### `toggleCursorRow(_:)` - -toggleCursorRow - -### `unselectAll(_:)` - -Emitted to unselect all children of the box, if the selection -mode permits it. - -This is a [keybinding signal](class.SignalAction.html). - -The default binding for this signal is -Ctrl-Shift-a. diff --git a/Documentation/Reference/structs/Menu.md b/Documentation/Reference/structs/Menu.md deleted file mode 100644 index 5d57e87..0000000 --- a/Documentation/Reference/structs/Menu.md +++ /dev/null @@ -1,219 +0,0 @@ -**STRUCT** - -# `Menu` - -The `GtkMenuButton` widget is used to display a popup when clicked. - -![An example GtkMenuButton](menu-button.png) - -This popup can be provided either as a `GtkPopover` or as an abstract -`GMenuModel`. - -The `GtkMenuButton` widget can show either an icon (set with the -[property@Gtk.MenuButton:icon-name] property) or a label (set with the -[property@Gtk.MenuButton:label] property). If neither is explicitly set, -a [class@Gtk.Image] is automatically created, using an arrow image oriented -according to [property@Gtk.MenuButton:direction] or the generic -“open-menu-symbolic” icon if the direction is not set. - -The positioning of the popup is determined by the -[property@Gtk.MenuButton:direction] property of the menu button. - -For menus, the [property@Gtk.Widget:halign] and [property@Gtk.Widget:valign] -properties of the menu are also taken into account. For example, when the -direction is %GTK_ARROW_DOWN and the horizontal alignment is %GTK_ALIGN_START, -the menu will be positioned below the button, with the starting edge -(depending on the text direction) of the menu aligned with the starting -edge of the button. If there is not enough space below the button, the -menu is popped up above the button instead. If the alignment would move -part of the menu offscreen, it is “pushed in”. - -| | start | center | end | -| - | --- | --- | --- | -| **down** | ![](down-start.png) | ![](down-center.png) | ![](down-end.png) | -| **up** | ![](up-start.png) | ![](up-center.png) | ![](up-end.png) | -| **left** | ![](left-start.png) | ![](left-center.png) | ![](left-end.png) | -| **right** | ![](right-start.png) | ![](right-center.png) | ![](right-end.png) | - -# CSS nodes - -``` -menubutton -╰── button.toggle -╰── ╰── [arrow] -``` - -`GtkMenuButton` has a single CSS node with name `menubutton` -which contains a `button` node with a `.toggle` style class. - -If the button contains an icon, it will have the `.image-button` style class, -if it contains text, it will have `.text-button` style class. If an arrow is -visible in addition to an icon, text or a custom child, it will also have -`.arrow-button` style class. - -Inside the toggle button content, there is an `arrow` node for -the indicator, which will carry one of the `.none`, `.up`, `.down`, -`.left` or `.right` style classes to indicate the direction that -the menu will appear in. The CSS is expected to provide a suitable -image for each of these cases using the `-gtk-icon-source` property. - -Optionally, the `menubutton` node can carry the `.circular` style class -to request a round appearance. - -# Accessibility - -`GtkMenuButton` uses the %GTK_ACCESSIBLE_ROLE_BUTTON role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `active` - -Whether the menu button is active. - -### `alwaysShowArrow` - -Whether to show a dropdown arrow even when using an icon or a custom child. - -### `canShrink` - -Whether the size of the button can be made smaller than the natural -size of its contents. - -### `child` - -The child widget. - -### `hasFrame` - -Whether the button has a frame. - -### `iconName` - -The name of the icon used to automatically populate the button. - -### `label` - -The label for the button. - -### `menuModel` - -The `GMenuModel` from which the popup will be created. - -See [method@Gtk.MenuButton.set_menu_model] for the interaction -with the [property@Gtk.MenuButton:popover] property. - -### `primary` - -Whether the menu button acts as a primary menu. - -Primary menus can be opened using the F10 key - -### `useUnderline` - -If set an underscore in the text indicates a mnemonic. - -### `activate` - -Emitted to when the menu button is activated. - -The `::activate` signal on `GtkMenuButton` is an action signal and -emitting it causes the button to pop up its menu. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `Menu`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `active(_:)` - -Whether the menu button is active. - -### `alwaysShowArrow(_:)` - -Whether to show a dropdown arrow even when using an icon or a custom child. - -### `canShrink(_:)` - -Whether the size of the button can be made smaller than the natural -size of its contents. - -### `child(_:)` - -The child widget. - -### `hasFrame(_:)` - -Whether the button has a frame. - -### `iconName(_:)` - -The name of the icon used to automatically populate the button. - -### `label(_:)` - -The label for the button. - -### `menuModel(app:window:_:)` - -The `GMenuModel` from which the popup will be created. - -See [method@Gtk.MenuButton.set_menu_model] for the interaction -with the [property@Gtk.MenuButton:popover] property. - -### `primary(_:)` - -Whether the menu button acts as a primary menu. - -Primary menus can be opened using the F10 key - -### `useUnderline(_:)` - -If set an underscore in the text indicates a mnemonic. - -### `activate(_:)` - -Emitted to when the menu button is activated. - -The `::activate` signal on `GtkMenuButton` is an action signal and -emitting it causes the button to pop up its menu. diff --git a/Documentation/Reference/structs/MenuButton.md b/Documentation/Reference/structs/MenuButton.md deleted file mode 100644 index 8129038..0000000 --- a/Documentation/Reference/structs/MenuButton.md +++ /dev/null @@ -1,52 +0,0 @@ -**STRUCT** - -# `MenuButton` - -A button widget for menus. - -## Properties -### `label` - -The button's label. - -### `handler` - -The button's action handler. - -### `shortcut` - -The keyboard shortcut. - -### `preferApplicationWindow` - -Whether to prefer adding the action to the application window. - -### `filteredLabel` - -The action label. - -## Methods -### `init(_:window:handler:)` - -Initialize a menu button. -- Parameters: - - label: The buttons label. - - window: Whether to prefer adding the action to the application window. - - handler: The button's action handler. - -### `addMenuItem(menu:app:window:)` - -Add the button to a menu. -- Parameters: - - menu: The menu. - - app: The application containing the menu. - - window: The application window containing the menu. - -### `keyboardShortcut(_:)` - -Create a keyboard shortcut for an application from a button. - -Note that the keyboard shortcut is available after the view has been visible for the first time. -- Parameters: - - shortcut: The keyboard shortcut. -- Returns: The button. diff --git a/Documentation/Reference/structs/MenuSection.md b/Documentation/Reference/structs/MenuSection.md deleted file mode 100644 index 73e143b..0000000 --- a/Documentation/Reference/structs/MenuSection.md +++ /dev/null @@ -1,24 +0,0 @@ -**STRUCT** - -# `MenuSection` - -A section for menus. - -## Properties -### `sectionContent` - -The content of the section. - -## Methods -### `init(content:)` - -Initialize a section for menus. -- Parameter content: The content of the section. - -### `addMenuItem(menu:app:window:)` - -Add the section to a menu. -- Parameters: - - menu: The menu. - - app: The application containing the menu. - - window: The application window containing the menu. diff --git a/Documentation/Reference/structs/ModifierStopper.md b/Documentation/Reference/structs/ModifierStopper.md deleted file mode 100644 index 54e81be..0000000 --- a/Documentation/Reference/structs/ModifierStopper.md +++ /dev/null @@ -1,25 +0,0 @@ -**STRUCT** - -# `ModifierStopper` - -Remove all of the content modifiers for the wrapped views. - -## Properties -### `content` - -The wrapped view. - -## Methods -### `container(modifiers:)` - -Get the content's container. -- Parameter modifiers: Modify views before being updated. -- Returns: The content's container. - -### `update(_:modifiers:updateProperties:)` - -Update the content. -- Parameters: - - storage: The content's storage. - - modifiers: Modify views before being updated. - - updateProperties: Whether to update properties. diff --git a/Documentation/Reference/structs/NavigationSplitView.md b/Documentation/Reference/structs/NavigationSplitView.md deleted file mode 100644 index f1bb728..0000000 --- a/Documentation/Reference/structs/NavigationSplitView.md +++ /dev/null @@ -1,44 +0,0 @@ -**STRUCT** - -# `NavigationSplitView` - -A navigation split view widget. - -## Properties -### `sidebar` - -The sidebar's content. - -### `content` - -The split view's main content. - -### `sidebarID` - -The sidebar content's id. - -### `contentID` - -The main content's id. - -## Methods -### `init(sidebar:content:)` - -Initialize a navigation split view. -- Parameters: - - sidebar: The sidebar content. - - content: The main content. - -### `container(modifiers:)` - -Get the container of the navigation split view widget. -- Parameter modifiers: Modify views before being updated. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the view storage of the navigation split view widget. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - - updateProperties: Whether to update properties. diff --git a/Documentation/Reference/structs/NavigationView.NavigationStack.md b/Documentation/Reference/structs/NavigationView.NavigationStack.md deleted file mode 100644 index 440411f..0000000 --- a/Documentation/Reference/structs/NavigationView.NavigationStack.md +++ /dev/null @@ -1,24 +0,0 @@ -**STRUCT** - -# `NavigationView.NavigationStack` - -A stack controls a navigation view. - -## Properties -### `action` - -The action to run at the next view update, if any. - -## Methods -### `init()` - -Initialize a navigation stack. - -### `pop()` - -Remove the last item from the navigation view. - -### `push(_:)` - -Add a new item to the navigation view. -- Parameter component: The component's value. diff --git a/Documentation/Reference/structs/NavigationView.md b/Documentation/Reference/structs/NavigationView.md deleted file mode 100644 index 9e3d3b7..0000000 --- a/Documentation/Reference/structs/NavigationView.md +++ /dev/null @@ -1,248 +0,0 @@ -**STRUCT** - -# `NavigationView` - -A page-based navigation container. - -navigation-view - -`AdwNavigationView` presents one child at a time, similar to -[class@Gtk.Stack]. - -`AdwNavigationView` can only contain [class@NavigationPage] children. - -It maintains a navigation stack that can be controlled with -[method@NavigationView.push] and [method@NavigationView.pop]. The whole -navigation stack can also be replaced using [method@NavigationView.replace]. - -`AdwNavigationView` allows to manage pages statically or dynamically. - -Static pages can be added using the [method@NavigationView.add] method. The -`AdwNavigationView` will keep a reference to these pages, but they aren't -accessible to the user until [method@NavigationView.push] is called (except -for the first page, which is pushed automatically). Use the -[method@NavigationView.remove] method to remove them. This is useful for -applications that have a small number of unique pages and just need -navigation between them. - -Dynamic pages are automatically destroyed once they are popped off the -navigation stack. To add a page like this, push it using the -[method@NavigationView.push] method without calling -[method@NavigationView.add] first. - -## Tags - -Static pages, as well as any pages in the navigation stack, can be accessed -by their [property@NavigationPage:tag]. For example, -[method@NavigationView.push_by_tag] can be used to push a static page that's -not in the navigation stack without having to keep a reference to it manually. - -## Header Bar Integration - -When used inside `AdwNavigationView`, [class@HeaderBar] will automatically -display a back button that can be used to go back to the previous page when -possible. The button also has a context menu, allowing to pop multiple pages -at once, potentially across multiple navigation views. - -Set [property@HeaderBar:show-back-button] to `FALSE` to disable this behavior -if it's unwanted. - -`AdwHeaderBar` will also display the title of the `AdwNavigationPage` it's -placed into, so most applications shouldn't need to customize it at all. - -## Shortcuts and Gestures - -`AdwNavigationView` supports the following shortcuts for going to the -previous page: - -- Escape (unless [property@NavigationView:pop-on-escape] is set to -`FALSE`) -- Alt+ -- Back mouse button - -Additionally, it supports interactive gestures: - -- One-finger swipe towards the right on touchscreens -- Scrolling towards the right on touchpads (usually two-finger swipe) - -These gestures have transitions enabled regardless of the -[property@NavigationView:animate-transitions] value. - -Applications can also enable shortcuts for pushing another page onto the -navigation stack via connecting to the [signal@NavigationView::get-next-page] -signal, in that case the following shortcuts are supported: - -- Alt+ -- Forward mouse button -- Swipe/scrolling towards the left - -For right-to-left locales, the gestures and shortcuts are reversed. - -[property@NavigationPage:can-pop] can be used to disable them, along with the -header bar back buttons. - -## Actions - -`AdwNavigationView` defines actions for controlling the navigation stack. -actions for controlling the navigation stack: - -- `navigation.push` takes a string parameter specifying the tag of the page to -push, and is equivalent to calling [method@NavigationView.push_by_tag]. - -- `navigation.pop` doesn't take any parameters and pops the current page from -the navigation stack, equivalent to calling [method@NavigationView.pop]. - -## `AdwNavigationView` as `GtkBuildable` - -`AdwNavigationView` allows to add pages as children, equivalent to using the -[method@NavigationView.add] method. - -Example of an `AdwNavigationView` UI definition: - -```xml -Page 1Open Page 2centercenternavigation.push'page-2'Page 2page-2 -``` - -navigation-view-example - -## CSS nodes - -`AdwNavigationView` has a single CSS node with the name `navigation-view`. - -## Accessibility - -`AdwNavigationView` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `animateTransitions` - -Whether to animate page transitions. - -Gesture-based transitions are always animated. - -### `popOnEscape` - -Whether pressing Escape pops the current page. - -Applications using `AdwNavigationView` to implement a browser may want to -disable it. - -### `getNextPage` - -Emitted when a push shortcut or a gesture is triggered. - -To support the push shortcuts and gestures, the application is expected to -return the page to push in the handler. - -This signal can be emitted multiple times for the gestures, for example -when the gesture is cancelled by the user. As such, the application must -not make any irreversible changes in the handler, such as removing the page -from a forward stack. - -Instead, it should be done in the [signal@NavigationView::pushed] handler. - -### `popped` - -Emitted after @page has been popped from the navigation stack. - -See [method@NavigationView.pop]. - -When using [method@NavigationView.pop_to_page] or -[method@NavigationView.pop_to_tag], this signal is emitted for each of the -popped pages. - -### `pushed` - -Emitted after a page has been pushed to the navigation stack. - -See [method@NavigationView.push]. - -### `replaced` - -Emitted after the navigation stack has been replaced. - -See [method@NavigationView.replace]. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `NavigationView`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `animateTransitions(_:)` - -Whether to animate page transitions. - -Gesture-based transitions are always animated. - -### `popOnEscape(_:)` - -Whether pressing Escape pops the current page. - -Applications using `AdwNavigationView` to implement a browser may want to -disable it. - -### `getNextPage(_:)` - -Emitted when a push shortcut or a gesture is triggered. - -To support the push shortcuts and gestures, the application is expected to -return the page to push in the handler. - -This signal can be emitted multiple times for the gestures, for example -when the gesture is cancelled by the user. As such, the application must -not make any irreversible changes in the handler, such as removing the page -from a forward stack. - -Instead, it should be done in the [signal@NavigationView::pushed] handler. - -### `popped(_:)` - -Emitted after @page has been popped from the navigation stack. - -See [method@NavigationView.pop]. - -When using [method@NavigationView.pop_to_page] or -[method@NavigationView.pop_to_tag], this signal is emitted for each of the -popped pages. - -### `pushed(_:)` - -Emitted after a page has been pushed to the navigation stack. - -See [method@NavigationView.push]. - -### `replaced(_:)` - -Emitted after the navigation stack has been replaced. - -See [method@NavigationView.replace]. diff --git a/Documentation/Reference/structs/Overlay.md b/Documentation/Reference/structs/Overlay.md deleted file mode 100644 index 6dae2b0..0000000 --- a/Documentation/Reference/structs/Overlay.md +++ /dev/null @@ -1,136 +0,0 @@ -**STRUCT** - -# `Overlay` - -`GtkOverlay` is a container which contains a single main child, on top -of which it can place “overlay” widgets. - -![An example GtkOverlay](overlay.png) - -The position of each overlay widget is determined by its -[property@Gtk.Widget:halign] and [property@Gtk.Widget:valign] -properties. E.g. a widget with both alignments set to %GTK_ALIGN_START -will be placed at the top left corner of the `GtkOverlay` container, -whereas an overlay with halign set to %GTK_ALIGN_CENTER and valign set -to %GTK_ALIGN_END will be placed a the bottom edge of the `GtkOverlay`, -horizontally centered. The position can be adjusted by setting the margin -properties of the child to non-zero values. - -More complicated placement of overlays is possible by connecting -to the [signal@Gtk.Overlay::get-child-position] signal. - -An overlay’s minimum and natural sizes are those of its main child. -The sizes of overlay children are not considered when measuring these -preferred sizes. - -# GtkOverlay as GtkBuildable - -The `GtkOverlay` implementation of the `GtkBuildable` interface -supports placing a child as an overlay by specifying “overlay” as -the “type” attribute of a `` element. - -# CSS nodes - -`GtkOverlay` has a single CSS node with the name “overlay”. Overlay children -whose alignments cause them to be positioned at an edge get the style classes -“.left”, “.right”, “.top”, and/or “.bottom” according to their position. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `child` - -The main child widget. - -### `getChildPosition` - -Emitted to determine the position and size of any overlay -child widgets. - -A handler for this signal should fill @allocation with -the desired position and size for @widget, relative to -the 'main' child of @overlay. - -The default handler for this signal uses the @widget's -halign and valign properties to determine the position -and gives the widget its natural size (except that an -alignment of %GTK_ALIGN_FILL will cause the overlay to -be full-width/height). If the main child is a -`GtkScrolledWindow`, the overlays are placed relative -to its contents. - -### `overlay` - -The body for the widget "overlay". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `Overlay`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `child(_:)` - -The main child widget. - -### `getChildPosition(_:)` - -Emitted to determine the position and size of any overlay -child widgets. - -A handler for this signal should fill @allocation with -the desired position and size for @widget, relative to -the 'main' child of @overlay. - -The default handler for this signal uses the @widget's -halign and valign properties to determine the position -and gives the widget its natural size (except that an -alignment of %GTK_ALIGN_FILL will cause the overlay to -be full-width/height). If the main child is a -`GtkScrolledWindow`, the overlays are placed relative -to its contents. - -### `overlay(_:)` - -Set the body for "overlay". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/OverlaySplitView.md b/Documentation/Reference/structs/OverlaySplitView.md deleted file mode 100644 index 677feef..0000000 --- a/Documentation/Reference/structs/OverlaySplitView.md +++ /dev/null @@ -1,285 +0,0 @@ -**STRUCT** - -# `OverlaySplitView` - -A widget presenting sidebar and content side by side or as an overlay. - -overlay-split-viewoverlay-split-view-collapsed - -`AdwOverlaySplitView` has two children: sidebar and content, and displays -them side by side. - -When [property@OverlaySplitView:collapsed] is set to `TRUE`, the sidebar is -instead shown as an overlay above the content widget. - -The sidebar can be hidden or shown using the -[property@OverlaySplitView:show-sidebar] property. - -Sidebar can be displayed before or after the content, this can be controlled -with the [property@OverlaySplitView:sidebar-position] property. - -Collapsing the split view automatically hides the sidebar widget, and -uncollapsing it shows the sidebar. If this behavior is not desired, the -[property@OverlaySplitView:pin-sidebar] property can be used to override it. - -`AdwOverlaySplitView` supports an edge swipe gesture for showing the sidebar, -and a swipe from the sidebar for hiding it. Gestures are only supported on -touchscreen, but not touchpad. Gestures can be controlled with the -[property@OverlaySplitView:enable-show-gesture] and -[property@OverlaySplitView:enable-hide-gesture] properties. - -See also [class@NavigationSplitView]. - -`AdwOverlaySplitView` is typically used together with an [class@Breakpoint] -setting the `collapsed` property to `TRUE` on small widths, as follows: - -```xml -360200800800max-width: 400spTrue -``` - -`AdwOverlaySplitView` is often used for implementing the -[utility pane](https://developer.gnome.org/hig/patterns/containers/utility-panes.html) -pattern. - -## Sizing - -When not collapsed, `AdwOverlaySplitView` changes the sidebar width -depending on its own width. - -If possible, it tries to allocate a fraction of the total width, controlled -with the [property@OverlaySplitView:sidebar-width-fraction] property. - -The sidebar also has minimum and maximum sizes, controlled with the -[property@OverlaySplitView:min-sidebar-width] and -[property@OverlaySplitView:max-sidebar-width] properties. - -The minimum and maximum sizes are using the length unit specified with the -[property@OverlaySplitView:sidebar-width-unit]. - -By default, sidebar is using 25% of the total width, with 180sp as the -minimum size and 280sp as the maximum size. - -When collapsed, the preferred width fraction is ignored and the sidebar uses -[property@OverlaySplitView:max-sidebar-width] when possible. - -## Header Bar Integration - -When used inside `AdwOverlaySplitView`, [class@HeaderBar] will automatically -hide the window buttons in the middle. - -## `AdwOverlaySplitView` as `GtkBuildable` - -The `AdwOverlaySplitView` implementation of the [iface@Gtk.Buildable] -interface supports setting the sidebar widget by specifying “sidebar” as the -“type” attribute of a `` element, Specifying “content” child type or -omitting it results in setting the content widget. - -## CSS nodes - -`AdwOverlaySplitView` has a single CSS node with the name -`overlay-split-view`. - -It contains two nodes with the name `widget`, containing the sidebar and -content children. - -When not collapsed, they have the `.sidebar-view` and `.content-view` style -classes respectively. - -``` -overlay-split-view -├── widget.sidebar-pane -│ ╰── [sidebar child] -╰── widget.content-pane -╰── [content child] -``` - -When collapsed, the one containing the sidebar child has the `.background` -style class and the other one has no style classes. - -``` -overlay-split-view -├── widget.background -│ ╰── [sidebar child] -╰── widget -╰── [content child] -``` - -## Accessibility - -`AdwOverlaySplitView` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `collapsed` - -Whether the split view is collapsed. - -When collapsed, the sidebar widget is presented as an overlay above the -content widget, otherwise they are displayed side by side. - -### `content` - -The content widget. - -### `enableHideGesture` - -Whether the sidebar can be closed with a swipe gesture. - -Only touchscreen swipes are supported. - -### `enableShowGesture` - -Whether the sidebar can be opened with an edge swipe gesture. - -Only touchscreen swipes are supported. - -### `maxSidebarWidth` - -The maximum sidebar width. - -Maximum width is affected by -[property@OverlaySplitView:sidebar-width-unit]. - -The sidebar widget can still be allocated with larger width if its own -minimum width exceeds it. - -### `minSidebarWidth` - -The minimum sidebar width. - -Minimum width is affected by -[property@OverlaySplitView:sidebar-width-unit]. - -The sidebar widget can still be allocated with larger width if its own -minimum width exceeds it. - -### `pinSidebar` - -Whether the sidebar widget is pinned. - -By default, collapsing @self automatically hides the sidebar widget, and -uncollapsing it shows the sidebar. If set to `TRUE`, sidebar visibility -never changes on its own. - -### `showSidebar` - -Whether the sidebar widget is shown. - -### `sidebar` - -The sidebar widget. - -### `sidebarWidthFraction` - -The preferred sidebar width as a fraction of the total width. - -The preferred width is additionally limited by -[property@OverlaySplitView:min-sidebar-width] and -[property@OverlaySplitView:max-sidebar-width]. - -The sidebar widget can be allocated with larger width if its own minimum -width exceeds the preferred width. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `OverlaySplitView`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `collapsed(_:)` - -Whether the split view is collapsed. - -When collapsed, the sidebar widget is presented as an overlay above the -content widget, otherwise they are displayed side by side. - -### `content(_:)` - -The content widget. - -### `enableHideGesture(_:)` - -Whether the sidebar can be closed with a swipe gesture. - -Only touchscreen swipes are supported. - -### `enableShowGesture(_:)` - -Whether the sidebar can be opened with an edge swipe gesture. - -Only touchscreen swipes are supported. - -### `maxSidebarWidth(_:)` - -The maximum sidebar width. - -Maximum width is affected by -[property@OverlaySplitView:sidebar-width-unit]. - -The sidebar widget can still be allocated with larger width if its own -minimum width exceeds it. - -### `minSidebarWidth(_:)` - -The minimum sidebar width. - -Minimum width is affected by -[property@OverlaySplitView:sidebar-width-unit]. - -The sidebar widget can still be allocated with larger width if its own -minimum width exceeds it. - -### `pinSidebar(_:)` - -Whether the sidebar widget is pinned. - -By default, collapsing @self automatically hides the sidebar widget, and -uncollapsing it shows the sidebar. If set to `TRUE`, sidebar visibility -never changes on its own. - -### `showSidebar(_:)` - -Whether the sidebar widget is shown. - -### `sidebar(_:)` - -The sidebar widget. - -### `sidebarWidthFraction(_:)` - -The preferred sidebar width as a fraction of the total width. - -The preferred width is additionally limited by -[property@OverlaySplitView:min-sidebar-width] and -[property@OverlaySplitView:max-sidebar-width]. - -The sidebar widget can be allocated with larger width if its own minimum -width exceeds the preferred width. diff --git a/Documentation/Reference/structs/PasswordEntryRow.md b/Documentation/Reference/structs/PasswordEntryRow.md deleted file mode 100644 index a91f8dc..0000000 --- a/Documentation/Reference/structs/PasswordEntryRow.md +++ /dev/null @@ -1,190 +0,0 @@ -**STRUCT** - -# `PasswordEntryRow` - -A [class@EntryRow] tailored for entering secrets. - -password-entry-row - -It does not show its contents in clear text, does not allow to copy it to the -clipboard, and shows a warning when Caps Lock is engaged. If the underlying -platform allows it, `AdwPasswordEntryRow` will also place the text in a -non-pageable memory area, to avoid it being written out to disk by the -operating system. - -It offer a way to reveal the contents in clear text. - -## CSS Nodes - -`AdwPasswordEntryRow` has a single CSS node with name `row` that carries -`.entry` and `.password` style classes. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `activatesDefault` - -Whether activating the embedded entry can activate the default widget. - -### `enableEmojiCompletion` - -Whether to suggest emoji replacements on the entry row. - -Emoji replacement is done with :-delimited names, like `:heart:`. - -### `showApplyButton` - -Whether to show the apply button. - -When set to `TRUE`, typing text in the entry will reveal an apply button. -Clicking it or pressing the Enter key will hide the button and -emit the [signal@EntryRow::apply] signal. - -This is useful if changing the entry contents can trigger an expensive -operation, e.g. network activity, to avoid triggering it after typing every -character. - -### `title` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleSelectable` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline` - -Whether an embedded underline in the title indicates a mnemonic. - -### `apply` - -Emitted when the apply button is pressed. - -See [property@EntryRow:show-apply-button]. - -### `entryActivated` - -Emitted when the embedded entry is activated. - -### `suffix` - -The body for the widget "suffix". - -### `prefix` - -The body for the widget "prefix". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `PasswordEntryRow`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `activatesDefault(_:)` - -Whether activating the embedded entry can activate the default widget. - -### `enableEmojiCompletion(_:)` - -Whether to suggest emoji replacements on the entry row. - -Emoji replacement is done with :-delimited names, like `:heart:`. - -### `showApplyButton(_:)` - -Whether to show the apply button. - -When set to `TRUE`, typing text in the entry will reveal an apply button. -Clicking it or pressing the Enter key will hide the button and -emit the [signal@EntryRow::apply] signal. - -This is useful if changing the entry contents can trigger an expensive -operation, e.g. network activity, to avoid triggering it after typing every -character. - -### `title(_:)` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleSelectable(_:)` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup(_:)` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline(_:)` - -Whether an embedded underline in the title indicates a mnemonic. - -### `apply(_:)` - -Emitted when the apply button is pressed. - -See [property@EntryRow:show-apply-button]. - -### `entryActivated(_:)` - -Emitted when the embedded entry is activated. - -### `suffix(_:)` - -Set the body for "suffix". -- Parameter body: The body. -- Returns: The widget. - -### `prefix(_:)` - -Set the body for "prefix". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/Popover.md b/Documentation/Reference/structs/Popover.md deleted file mode 100644 index fc6637b..0000000 --- a/Documentation/Reference/structs/Popover.md +++ /dev/null @@ -1,184 +0,0 @@ -**STRUCT** - -# `Popover` - -`GtkPopover` is a bubble-like context popup. - -![An example GtkPopover](popover.png) - -It is primarily meant to provide context-dependent information -or options. Popovers are attached to a parent widget. By default, -they point to the whole widget area, although this behavior can be -changed with [method@Gtk.Popover.set_pointing_to]. - -The position of a popover relative to the widget it is attached to -can also be changed with [method@Gtk.Popover.set_position] - -By default, `GtkPopover` performs a grab, in order to ensure input -events get redirected to it while it is shown, and also so the popover -is dismissed in the expected situations (clicks outside the popover, -or the Escape key being pressed). If no such modal behavior is desired -on a popover, [method@Gtk.Popover.set_autohide] may be called on it to -tweak its behavior. - -## GtkPopover as menu replacement - -`GtkPopover` is often used to replace menus. The best was to do this -is to use the [class@Gtk.PopoverMenu] subclass which supports being -populated from a `GMenuModel` with [ctor@Gtk.PopoverMenu.new_from_model]. - -```xml -
horizontal-buttonsCutapp.cutedit-cut-symbolicCopyapp.copyedit-copy-symbolicPasteapp.pasteedit-paste-symbolic
-``` - -# CSS nodes - -``` -popover.background[.menu] -├── arrow -╰── contents -╰── -``` - -`GtkPopover` has a main node with name `popover`, an arrow with name `arrow`, -and another node for the content named `contents`. The `popover` node always -gets the `.background` style class. It also gets the `.menu` style class -if the popover is menu-like, e.g. is a [class@Gtk.PopoverMenu]. - -Particular uses of `GtkPopover`, such as touch selection popups or -magnifiers in `GtkEntry` or `GtkTextView` get style classes like -`.touch-selection` or `.magnifier` to differentiate from plain popovers. - -When styling a popover directly, the `popover` node should usually -not have any background. The visible part of the popover can have -a shadow. To specify it in CSS, set the box-shadow of the `contents` node. - -Note that, in order to accomplish appropriate arrow visuals, `GtkPopover` -uses custom drawing for the `arrow` node. This makes it possible for the -arrow to change its shape dynamically, but it also limits the possibilities -of styling it using CSS. In particular, the `arrow` gets drawn over the -`content` node's border and shadow, so they look like one shape, which -means that the border width of the `content` node and the `arrow` node should -be the same. The arrow also does not support any border shape other than -solid, no border-radius, only one border width (border-bottom-width is -used) and no box-shadow. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `autohide` - -Whether to dismiss the popover on outside clicks. - -### `cascadePopdown` - -Whether the popover pops down after a child popover. - -This is used to implement the expected behavior of submenus. - -### `child` - -The child widget. - -### `defaultWidget` - -The default widget inside the popover. - -### `hasArrow` - -Whether to draw an arrow. - -### `mnemonicsVisible` - -Whether mnemonics are currently visible in this popover. - -### `activateDefault` - -Emitted whend the user activates the default widget. - -This is a [keybinding signal](class.SignalAction.html). - -### `closed` - -Emitted when the popover is closed. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `Popover`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `autohide(_:)` - -Whether to dismiss the popover on outside clicks. - -### `cascadePopdown(_:)` - -Whether the popover pops down after a child popover. - -This is used to implement the expected behavior of submenus. - -### `child(_:)` - -The child widget. - -### `defaultWidget(_:)` - -The default widget inside the popover. - -### `hasArrow(_:)` - -Whether to draw an arrow. - -### `mnemonicsVisible(_:)` - -Whether mnemonics are currently visible in this popover. - -### `activateDefault(_:)` - -Emitted whend the user activates the default widget. - -This is a [keybinding signal](class.SignalAction.html). - -### `closed(_:)` - -Emitted when the popover is closed. diff --git a/Documentation/Reference/structs/PreferencesGroup.md b/Documentation/Reference/structs/PreferencesGroup.md deleted file mode 100644 index 1723559..0000000 --- a/Documentation/Reference/structs/PreferencesGroup.md +++ /dev/null @@ -1,112 +0,0 @@ -**STRUCT** - -# `PreferencesGroup` - -A group of preference rows. - -preferences-group - -An `AdwPreferencesGroup` represents a group or tightly related preferences, -which in turn are represented by [class@PreferencesRow]. - -To summarize the role of the preferences it gathers, a group can have both a -title and a description. The title will be used by [class@PreferencesWindow] -to let the user look for a preference. - -## AdwPreferencesGroup as GtkBuildable - -The `AdwPreferencesGroup` implementation of the [iface@Gtk.Buildable] interface -supports adding [class@PreferencesRow]s to the list by omitting "type". If "type" -is omitted and the widget isn't a [class@PreferencesRow] the child is added to -a box below the list. - -When the "type" attribute of a child is `header-suffix`, the child -is set as the suffix on the end of the title and description. - -## CSS nodes - -`AdwPreferencesGroup` has a single CSS node with name `preferencesgroup`. - -## Accessibility - -`AdwPreferencesGroup` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `description` - -The description for this group of preferences. - -### `headerSuffix` - -The header suffix widget. - -Displayed above the list, next to the title and description. - -Suffixes are commonly used to show a button or a spinner for the whole -group. - -### `title` - -The title for this group of preferences. - -### `child` - -The body for the widget "child". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `PreferencesGroup`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `description(_:)` - -The description for this group of preferences. - -### `headerSuffix(_:)` - -The header suffix widget. - -Displayed above the list, next to the title and description. - -Suffixes are commonly used to show a button or a spinner for the whole -group. - -### `title(_:)` - -The title for this group of preferences. - -### `child(_:)` - -Set the body for "child". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/PreferencesPage.md b/Documentation/Reference/structs/PreferencesPage.md deleted file mode 100644 index 3dc4ac4..0000000 --- a/Documentation/Reference/structs/PreferencesPage.md +++ /dev/null @@ -1,104 +0,0 @@ -**STRUCT** - -# `PreferencesPage` - -A page from [class@PreferencesWindow]. - -preferences-page - -The `AdwPreferencesPage` widget gathers preferences groups into a single page -of a preferences window. - -## CSS nodes - -`AdwPreferencesPage` has a single CSS node with name `preferencespage`. - -## Accessibility - -`AdwPreferencesPage` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `description` - -The description to be displayed at the top of the page. - -### `iconName` - -The icon name for this page. - -### `name` - -The name of this page. - -### `title` - -The title for this page. - -### `useUnderline` - -Whether an embedded underline in the title indicates a mnemonic. - -### `child` - -The body for the widget "child". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `PreferencesPage`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `description(_:)` - -The description to be displayed at the top of the page. - -### `iconName(_:)` - -The icon name for this page. - -### `name(_:)` - -The name of this page. - -### `title(_:)` - -The title for this page. - -### `useUnderline(_:)` - -Whether an embedded underline in the title indicates a mnemonic. - -### `child(_:)` - -Set the body for "child". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/PreferencesRow.md b/Documentation/Reference/structs/PreferencesRow.md deleted file mode 100644 index 575db78..0000000 --- a/Documentation/Reference/structs/PreferencesRow.md +++ /dev/null @@ -1,99 +0,0 @@ -**STRUCT** - -# `PreferencesRow` - -A [class@Gtk.ListBoxRow] used to present preferences. - -The `AdwPreferencesRow` widget has a title that [class@PreferencesWindow] -will use to let the user look for a preference. It doesn't present the title -in any way and lets you present the preference as you please. - -[class@ActionRow] and its derivatives are convenient to use as preference -rows as they take care of presenting the preference's title while letting you -compose the inputs of the preference around it. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `title` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleSelectable` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline` - -Whether an embedded underline in the title indicates a mnemonic. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `PreferencesRow`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `title(_:)` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleSelectable(_:)` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup(_:)` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline(_:)` - -Whether an embedded underline in the title indicates a mnemonic. diff --git a/Documentation/Reference/structs/ProgressBar.md b/Documentation/Reference/structs/ProgressBar.md deleted file mode 100644 index 7658ea8..0000000 --- a/Documentation/Reference/structs/ProgressBar.md +++ /dev/null @@ -1,156 +0,0 @@ -**STRUCT** - -# `ProgressBar` - -`GtkProgressBar` is typically used to display the progress of a long -running operation. - -It provides a visual clue that processing is underway. `GtkProgressBar` -can be used in two different modes: percentage mode and activity mode. - -![An example GtkProgressBar](progressbar.png) - -When an application can determine how much work needs to take place -(e.g. read a fixed number of bytes from a file) and can monitor its -progress, it can use the `GtkProgressBar` in percentage mode and the -user sees a growing bar indicating the percentage of the work that -has been completed. In this mode, the application is required to call -[method@Gtk.ProgressBar.set_fraction] periodically to update the progress bar. - -When an application has no accurate way of knowing the amount of work -to do, it can use the `GtkProgressBar` in activity mode, which shows -activity by a block moving back and forth within the progress area. In -this mode, the application is required to call [method@Gtk.ProgressBar.pulse] -periodically to update the progress bar. - -There is quite a bit of flexibility provided to control the appearance -of the `GtkProgressBar`. Functions are provided to control the orientation -of the bar, optional text can be displayed along with the bar, and the -step size used in activity mode can be set. - -# CSS nodes - -``` -progressbar[.osd] -├── [text] -╰── trough[.empty][.full] -╰── progress[.pulse] -``` - -`GtkProgressBar` has a main CSS node with name progressbar and subnodes with -names text and trough, of which the latter has a subnode named progress. The -text subnode is only present if text is shown. The progress subnode has the -style class .pulse when in activity mode. It gets the style classes .left, -.right, .top or .bottom added when the progress 'touches' the corresponding -end of the GtkProgressBar. The .osd class on the progressbar node is for use -in overlays like the one Epiphany has for page loading progress. - -# Accessibility - -`GtkProgressBar` uses the %GTK_ACCESSIBLE_ROLE_PROGRESS_BAR role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `fraction` - -The fraction of total work that has been completed. - -### `inverted` - -Invert the direction in which the progress bar grows. - -### `pulseStep` - -The fraction of total progress to move the bounding block when pulsed. - -### `showText` - -Sets whether the progress bar will show a text in addition -to the bar itself. - -The shown text is either the value of the [property@Gtk.ProgressBar:text] -property or, if that is %NULL, the [property@Gtk.ProgressBar:fraction] -value, as a percentage. - -To make a progress bar that is styled and sized suitably for showing text -(even if the actual text is blank), set [property@Gtk.ProgressBar:show-text] -to %TRUE and [property@Gtk.ProgressBar:text] to the empty string (not %NULL). - -### `text` - -Text to be displayed in the progress bar. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `ProgressBar`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `fraction(_:)` - -The fraction of total work that has been completed. - -### `inverted(_:)` - -Invert the direction in which the progress bar grows. - -### `pulseStep(_:)` - -The fraction of total progress to move the bounding block when pulsed. - -### `showText(_:)` - -Sets whether the progress bar will show a text in addition -to the bar itself. - -The shown text is either the value of the [property@Gtk.ProgressBar:text] -property or, if that is %NULL, the [property@Gtk.ProgressBar:fraction] -value, as a percentage. - -To make a progress bar that is styled and sized suitably for showing text -(even if the actual text is blank), set [property@Gtk.ProgressBar:show-text] -to %TRUE and [property@Gtk.ProgressBar:text] to the empty string (not %NULL). - -### `text(_:)` - -Text to be displayed in the progress bar. diff --git a/Documentation/Reference/structs/SceneStorage.ViewStorage.md b/Documentation/Reference/structs/SceneStorage.ViewStorage.md deleted file mode 100644 index 9788119..0000000 --- a/Documentation/Reference/structs/SceneStorage.ViewStorage.md +++ /dev/null @@ -1,8 +0,0 @@ -**STRUCT** - -# `SceneStorage.ViewStorage` - -## Properties -### `view` - -### `content` diff --git a/Documentation/Reference/structs/SceneStorage.WindowStorage.md b/Documentation/Reference/structs/SceneStorage.WindowStorage.md deleted file mode 100644 index 44cf00c..0000000 --- a/Documentation/Reference/structs/SceneStorage.WindowStorage.md +++ /dev/null @@ -1,8 +0,0 @@ -**STRUCT** - -# `SceneStorage.WindowStorage` - -## Properties -### `window` - -### `views` diff --git a/Documentation/Reference/structs/SceneStorage.md b/Documentation/Reference/structs/SceneStorage.md deleted file mode 100644 index 4b20a74..0000000 --- a/Documentation/Reference/structs/SceneStorage.md +++ /dev/null @@ -1,11 +0,0 @@ -**STRUCT** - -# `SceneStorage` - -## Properties -### `app` - -### `windows` - -## Methods -### `init()` diff --git a/Documentation/Reference/structs/ScrollView.md b/Documentation/Reference/structs/ScrollView.md deleted file mode 100644 index 24ed87f..0000000 --- a/Documentation/Reference/structs/ScrollView.md +++ /dev/null @@ -1,29 +0,0 @@ -**STRUCT** - -# `ScrollView` - -A GtkScrolledWindow equivalent. - -## Properties -### `content` - -The content. - -## Methods -### `init(content:)` - -Initialize a `ScrollView`. -- Parameter content: The view content. - -### `update(_:modifiers:)` - -Update a view storage. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - -### `container(modifiers:)` - -Get a view storage. -- Parameter modifiers: Modify views before being updated. -- Returns: The view storage. diff --git a/Documentation/Reference/structs/ScrolledWindow.md b/Documentation/Reference/structs/ScrolledWindow.md deleted file mode 100644 index a8c5ea5..0000000 --- a/Documentation/Reference/structs/ScrolledWindow.md +++ /dev/null @@ -1,330 +0,0 @@ -**STRUCT** - -# `ScrolledWindow` - -`GtkScrolledWindow` is a container that makes its child scrollable. - -It does so using either internally added scrollbars or externally -associated adjustments, and optionally draws a frame around the child. - -Widgets with native scrolling support, i.e. those whose classes implement -the [iface@Gtk.Scrollable] interface, are added directly. For other types -of widget, the class [class@Gtk.Viewport] acts as an adaptor, giving -scrollability to other widgets. [method@Gtk.ScrolledWindow.set_child] -intelligently accounts for whether or not the added child is a `GtkScrollable`. -If it isn’t, then it wraps the child in a `GtkViewport`. Therefore, you can -just add any child widget and not worry about the details. - -If [method@Gtk.ScrolledWindow.set_child] has added a `GtkViewport` for you, -it will be automatically removed when you unset the child. -Unless [property@Gtk.ScrolledWindow:hscrollbar-policy] and -[property@Gtk.ScrolledWindow:vscrollbar-policy] are %GTK_POLICY_NEVER or -%GTK_POLICY_EXTERNAL, `GtkScrolledWindow` adds internal `GtkScrollbar` widgets -around its child. The scroll position of the child, and if applicable the -scrollbars, is controlled by the [property@Gtk.ScrolledWindow:hadjustment] -and [property@Gtk.ScrolledWindow:vadjustment] that are associated with the -`GtkScrolledWindow`. See the docs on [class@Gtk.Scrollbar] for the details, -but note that the “step_increment” and “page_increment” fields are only -effective if the policy causes scrollbars to be present. - -If a `GtkScrolledWindow` doesn’t behave quite as you would like, or -doesn’t have exactly the right layout, it’s very possible to set up -your own scrolling with `GtkScrollbar` and for example a `GtkGrid`. - -# Touch support - -`GtkScrolledWindow` has built-in support for touch devices. When a -touchscreen is used, swiping will move the scrolled window, and will -expose 'kinetic' behavior. This can be turned off with the -[property@Gtk.ScrolledWindow:kinetic-scrolling] property if it is undesired. - -`GtkScrolledWindow` also displays visual 'overshoot' indication when -the content is pulled beyond the end, and this situation can be -captured with the [signal@Gtk.ScrolledWindow::edge-overshot] signal. - -If no mouse device is present, the scrollbars will overlaid as -narrow, auto-hiding indicators over the content. If traditional -scrollbars are desired although no mouse is present, this behaviour -can be turned off with the [property@Gtk.ScrolledWindow:overlay-scrolling] -property. - -# CSS nodes - -`GtkScrolledWindow` has a main CSS node with name scrolledwindow. -It gets a .frame style class added when [property@Gtk.ScrolledWindow:has-frame] -is %TRUE. - -It uses subnodes with names overshoot and undershoot to draw the overflow -and underflow indications. These nodes get the .left, .right, .top or .bottom -style class added depending on where the indication is drawn. - -`GtkScrolledWindow` also sets the positional style classes (.left, .right, -.top, .bottom) and style classes related to overlay scrolling -(.overlay-indicator, .dragging, .hovering) on its scrollbars. - -If both scrollbars are visible, the area where they meet is drawn -with a subnode named junction. - -# Accessibility - -Until GTK 4.10, `GtkScrolledWindow` used the `GTK_ACCESSIBLE_ROLE_GROUP` role. - -Starting from GTK 4.12, `GtkScrolledWindow` uses the `GTK_ACCESSIBLE_ROLE_GENERIC` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `child` - -The child widget. - -When setting this property, if the child widget does not implement -[iface@Gtk.Scrollable], the scrolled window will add the child to -a [class@Gtk.Viewport] and then set the viewport as the child. - -### `hasFrame` - -Whether to draw a frame around the contents. - -### `kineticScrolling` - -Whether kinetic scrolling is enabled or not. - -Kinetic scrolling only applies to devices with source %GDK_SOURCE_TOUCHSCREEN. - -### `maxContentHeight` - -The maximum content height of @scrolled_window. - -### `maxContentWidth` - -The maximum content width of @scrolled_window. - -### `minContentHeight` - -The minimum content height of @scrolled_window. - -### `minContentWidth` - -The minimum content width of @scrolled_window. - -### `overlayScrolling` - -Whether overlay scrolling is enabled or not. - -If it is, the scrollbars are only added as traditional widgets -when a mouse is present. Otherwise, they are overlaid on top of -the content, as narrow indicators. - -Note that overlay scrolling can also be globally disabled, with -the [property@Gtk.Settings:gtk-overlay-scrolling] setting. - -### `propagateNaturalHeight` - -Whether the natural height of the child should be calculated and propagated -through the scrolled window’s requested natural height. - -This is useful in cases where an attempt should be made to allocate exactly -enough space for the natural size of the child. - -### `propagateNaturalWidth` - -Whether the natural width of the child should be calculated and propagated -through the scrolled window’s requested natural width. - -This is useful in cases where an attempt should be made to allocate exactly -enough space for the natural size of the child. - -### `edgeOvershot` - -Emitted whenever user initiated scrolling makes the scrolled -window firmly surpass the limits defined by the adjustment -in that orientation. - -A similar behavior without edge resistance is provided by the -[signal@Gtk.ScrolledWindow::edge-reached] signal. - -Note: The @pos argument is LTR/RTL aware, so callers should be -aware too if intending to provide behavior on horizontal edges. - -### `edgeReached` - -Emitted whenever user-initiated scrolling makes the scrolled -window exactly reach the lower or upper limits defined by the -adjustment in that orientation. - -A similar behavior with edge resistance is provided by the -[signal@Gtk.ScrolledWindow::edge-overshot] signal. - -Note: The @pos argument is LTR/RTL aware, so callers should be -aware too if intending to provide behavior on horizontal edges. - -### `moveFocusOut` - -Emitted when focus is moved away from the scrolled window by a -keybinding. - -This is a [keybinding signal](class.SignalAction.html). - -The default bindings for this signal are -`Ctrl + Tab` to move forward and `Ctrl + Shift + Tab` to -move backward. - -### `scrollChild` - -Emitted when a keybinding that scrolls is pressed. - -This is a [keybinding signal](class.SignalAction.html). - -The horizontal or vertical adjustment is updated which triggers a -signal that the scrolled window’s child may listen to and scroll itself. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `ScrolledWindow`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `child(_:)` - -The child widget. - -When setting this property, if the child widget does not implement -[iface@Gtk.Scrollable], the scrolled window will add the child to -a [class@Gtk.Viewport] and then set the viewport as the child. - -### `hasFrame(_:)` - -Whether to draw a frame around the contents. - -### `kineticScrolling(_:)` - -Whether kinetic scrolling is enabled or not. - -Kinetic scrolling only applies to devices with source %GDK_SOURCE_TOUCHSCREEN. - -### `maxContentHeight(_:)` - -The maximum content height of @scrolled_window. - -### `maxContentWidth(_:)` - -The maximum content width of @scrolled_window. - -### `minContentHeight(_:)` - -The minimum content height of @scrolled_window. - -### `minContentWidth(_:)` - -The minimum content width of @scrolled_window. - -### `overlayScrolling(_:)` - -Whether overlay scrolling is enabled or not. - -If it is, the scrollbars are only added as traditional widgets -when a mouse is present. Otherwise, they are overlaid on top of -the content, as narrow indicators. - -Note that overlay scrolling can also be globally disabled, with -the [property@Gtk.Settings:gtk-overlay-scrolling] setting. - -### `propagateNaturalHeight(_:)` - -Whether the natural height of the child should be calculated and propagated -through the scrolled window’s requested natural height. - -This is useful in cases where an attempt should be made to allocate exactly -enough space for the natural size of the child. - -### `propagateNaturalWidth(_:)` - -Whether the natural width of the child should be calculated and propagated -through the scrolled window’s requested natural width. - -This is useful in cases where an attempt should be made to allocate exactly -enough space for the natural size of the child. - -### `edgeOvershot(_:)` - -Emitted whenever user initiated scrolling makes the scrolled -window firmly surpass the limits defined by the adjustment -in that orientation. - -A similar behavior without edge resistance is provided by the -[signal@Gtk.ScrolledWindow::edge-reached] signal. - -Note: The @pos argument is LTR/RTL aware, so callers should be -aware too if intending to provide behavior on horizontal edges. - -### `edgeReached(_:)` - -Emitted whenever user-initiated scrolling makes the scrolled -window exactly reach the lower or upper limits defined by the -adjustment in that orientation. - -A similar behavior with edge resistance is provided by the -[signal@Gtk.ScrolledWindow::edge-overshot] signal. - -Note: The @pos argument is LTR/RTL aware, so callers should be -aware too if intending to provide behavior on horizontal edges. - -### `moveFocusOut(_:)` - -Emitted when focus is moved away from the scrolled window by a -keybinding. - -This is a [keybinding signal](class.SignalAction.html). - -The default bindings for this signal are -`Ctrl + Tab` to move forward and `Ctrl + Shift + Tab` to -move backward. - -### `scrollChild(_:)` - -Emitted when a keybinding that scrolls is pressed. - -This is a [keybinding signal](class.SignalAction.html). - -The horizontal or vertical adjustment is updated which triggers a -signal that the scrolled window’s child may listen to and scroll itself. diff --git a/Documentation/Reference/structs/SearchBar.md b/Documentation/Reference/structs/SearchBar.md deleted file mode 100644 index 3b7d8bf..0000000 --- a/Documentation/Reference/structs/SearchBar.md +++ /dev/null @@ -1,128 +0,0 @@ -**STRUCT** - -# `SearchBar` - -`GtkSearchBar` is a container made to have a search entry. - -![An example GtkSearchBar](search-bar.png) - -It can also contain additional widgets, such as drop-down menus, -or buttons. The search bar would appear when a search is started -through typing on the keyboard, or the application’s search mode -is toggled on. - -For keyboard presses to start a search, the search bar must be told -of a widget to capture key events from through -[method@Gtk.SearchBar.set_key_capture_widget]. This widget will -typically be the top-level window, or a parent container of the -search bar. Common shortcuts such as Ctrl+F should be handled as an -application action, or through the menu items. - -You will also need to tell the search bar about which entry you -are using as your search entry using [method@Gtk.SearchBar.connect_entry]. - -## Creating a search bar - -The following example shows you how to create a more complex search -entry. - -[A simple example](https://gitlab.gnome.org/GNOME/gtk/tree/main/examples/search-bar.c) - -# CSS nodes - -``` -searchbar -╰── revealer -╰── box -├── [child] -╰── [button.close] -``` - -`GtkSearchBar` has a main CSS node with name searchbar. It has a child -node with name revealer that contains a node with name box. The box node -contains both the CSS node of the child widget as well as an optional button -node which gets the .close style class applied. - -# Accessibility - -`GtkSearchBar` uses the %GTK_ACCESSIBLE_ROLE_SEARCH role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `child` - -The child widget. - -### `keyCaptureWidget` - -The key capture widget. - -### `searchModeEnabled` - -Whether the search mode is on and the search bar shown. - -### `showCloseButton` - -Whether to show the close button in the search bar. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `SearchBar`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `child(_:)` - -The child widget. - -### `keyCaptureWidget(_:)` - -The key capture widget. - -### `searchModeEnabled(_:)` - -Whether the search mode is on and the search bar shown. - -### `showCloseButton(_:)` - -Whether to show the close button in the search bar. diff --git a/Documentation/Reference/structs/SearchEntry.md b/Documentation/Reference/structs/SearchEntry.md deleted file mode 100644 index 6c9ca38..0000000 --- a/Documentation/Reference/structs/SearchEntry.md +++ /dev/null @@ -1,358 +0,0 @@ -**STRUCT** - -# `SearchEntry` - -`GtkSearchEntry` is an entry widget that has been tailored for use -as a search entry. - -The main API for interacting with a `GtkSearchEntry` as entry -is the `GtkEditable` interface. - -![An example GtkSearchEntry](search-entry.png) - -It will show an inactive symbolic “find” icon when the search -entry is empty, and a symbolic “clear” icon when there is text. -Clicking on the “clear” icon will empty the search entry. - -To make filtering appear more reactive, it is a good idea to -not react to every change in the entry text immediately, but -only after a short delay. To support this, `GtkSearchEntry` -emits the [signal@Gtk.SearchEntry::search-changed] signal which -can be used instead of the [signal@Gtk.Editable::changed] signal. - -The [signal@Gtk.SearchEntry::previous-match], -[signal@Gtk.SearchEntry::next-match] and -[signal@Gtk.SearchEntry::stop-search] signals can be used to -implement moving between search results and ending the search. - -Often, `GtkSearchEntry` will be fed events by means of being -placed inside a [class@Gtk.SearchBar]. If that is not the case, -you can use [method@Gtk.SearchEntry.set_key_capture_widget] to -let it capture key input from another widget. - -`GtkSearchEntry` provides only minimal API and should be used with -the [iface@Gtk.Editable] API. - -## CSS Nodes - -``` -entry.search -╰── text -``` - -`GtkSearchEntry` has a single CSS node with name entry that carries -a `.search` style class, and the text node is a child of that. - -## Accessibility - -`GtkSearchEntry` uses the %GTK_ACCESSIBLE_ROLE_SEARCH_BOX role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `activatesDefault` - -Whether to activate the default widget when Enter is pressed. - -### `cursorPosition` - -The current position of the insertion cursor in chars. - -### `editable` - -Whether the entry contents can be edited. - -### `enableUndo` - -If undo/redo should be enabled for the editable. - -### `maxWidthChars` - -The desired maximum width of the entry, in characters. - -### `placeholderText` - -The text that will be displayed in the `GtkSearchEntry` -when it is empty and unfocused. - -### `searchDelay` - -The delay in milliseconds from last keypress to the search -changed signal. - -### `selectionBound` - -The position of the opposite end of the selection from the cursor in chars. - -### `text` - -The contents of the entry. - -### `widthChars` - -Number of characters to leave space for in the entry. - -### `xalign` - -The horizontal alignment, from 0 (left) to 1 (right). - -Reversed for RTL layouts. - -### `activate` - -Emitted when the entry is activated. - -The keybindings for this signal are all forms of the Enter key. - -### `changed` - -Emitted at the end of a single user-visible operation on the -contents. - -E.g., a paste operation that replaces the contents of the -selection will cause only one signal emission (even though it -is implemented by first deleting the selection, then inserting -the new content, and may cause multiple ::notify::text signals -to be emitted). - -### `deleteText` - -Emitted when text is deleted from the widget by the user. - -The default handler for this signal will normally be responsible for -deleting the text, so by connecting to this signal and then stopping -the signal with g_signal_stop_emission(), it is possible to modify the -range of deleted text, or prevent it from being deleted entirely. - -The @start_pos and @end_pos parameters are interpreted as for -[method@Gtk.Editable.delete_text]. - -### `insertText` - -Emitted when text is inserted into the widget by the user. - -The default handler for this signal will normally be responsible -for inserting the text, so by connecting to this signal and then -stopping the signal with g_signal_stop_emission(), it is possible -to modify the inserted text, or prevent it from being inserted entirely. - -### `nextMatch` - -Emitted when the user initiates a move to the next match -for the current search string. - -This is a [keybinding signal](class.SignalAction.html). - -Applications should connect to it, to implement moving -between matches. - -The default bindings for this signal is Ctrl-g. - -### `previousMatch` - -Emitted when the user initiates a move to the previous match -for the current search string. - -This is a [keybinding signal](class.SignalAction.html). - -Applications should connect to it, to implement moving -between matches. - -The default bindings for this signal is Ctrl-Shift-g. - -### `searchChanged` - -Emitted with a delay. The length of the delay can be -changed with the [property@Gtk.SearchEntry:search-delay] -property. - -### `searchStarted` - -Emitted when the user initiated a search on the entry. - -### `stopSearch` - -Emitted when the user stops a search via keyboard input. - -This is a [keybinding signal](class.SignalAction.html). - -Applications should connect to it, to implement hiding -the search entry in this case. - -The default bindings for this signal is Escape. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `SearchEntry`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `activatesDefault(_:)` - -Whether to activate the default widget when Enter is pressed. - -### `cursorPosition(_:)` - -The current position of the insertion cursor in chars. - -### `editable(_:)` - -Whether the entry contents can be edited. - -### `enableUndo(_:)` - -If undo/redo should be enabled for the editable. - -### `maxWidthChars(_:)` - -The desired maximum width of the entry, in characters. - -### `placeholderText(_:)` - -The text that will be displayed in the `GtkSearchEntry` -when it is empty and unfocused. - -### `searchDelay(_:)` - -The delay in milliseconds from last keypress to the search -changed signal. - -### `selectionBound(_:)` - -The position of the opposite end of the selection from the cursor in chars. - -### `text(_:)` - -The contents of the entry. - -### `widthChars(_:)` - -Number of characters to leave space for in the entry. - -### `xalign(_:)` - -The horizontal alignment, from 0 (left) to 1 (right). - -Reversed for RTL layouts. - -### `activate(_:)` - -Emitted when the entry is activated. - -The keybindings for this signal are all forms of the Enter key. - -### `changed(_:)` - -Emitted at the end of a single user-visible operation on the -contents. - -E.g., a paste operation that replaces the contents of the -selection will cause only one signal emission (even though it -is implemented by first deleting the selection, then inserting -the new content, and may cause multiple ::notify::text signals -to be emitted). - -### `deleteText(_:)` - -Emitted when text is deleted from the widget by the user. - -The default handler for this signal will normally be responsible for -deleting the text, so by connecting to this signal and then stopping -the signal with g_signal_stop_emission(), it is possible to modify the -range of deleted text, or prevent it from being deleted entirely. - -The @start_pos and @end_pos parameters are interpreted as for -[method@Gtk.Editable.delete_text]. - -### `insertText(_:)` - -Emitted when text is inserted into the widget by the user. - -The default handler for this signal will normally be responsible -for inserting the text, so by connecting to this signal and then -stopping the signal with g_signal_stop_emission(), it is possible -to modify the inserted text, or prevent it from being inserted entirely. - -### `nextMatch(_:)` - -Emitted when the user initiates a move to the next match -for the current search string. - -This is a [keybinding signal](class.SignalAction.html). - -Applications should connect to it, to implement moving -between matches. - -The default bindings for this signal is Ctrl-g. - -### `previousMatch(_:)` - -Emitted when the user initiates a move to the previous match -for the current search string. - -This is a [keybinding signal](class.SignalAction.html). - -Applications should connect to it, to implement moving -between matches. - -The default bindings for this signal is Ctrl-Shift-g. - -### `searchChanged(_:)` - -Emitted with a delay. The length of the delay can be -changed with the [property@Gtk.SearchEntry:search-delay] -property. - -### `searchStarted(_:)` - -Emitted when the user initiated a search on the entry. - -### `stopSearch(_:)` - -Emitted when the user stops a search via keyboard input. - -This is a [keybinding signal](class.SignalAction.html). - -Applications should connect to it, to implement hiding -the search entry in this case. - -The default bindings for this signal is Escape. diff --git a/Documentation/Reference/structs/Signal.md b/Documentation/Reference/structs/Signal.md deleted file mode 100644 index c7e8aa3..0000000 --- a/Documentation/Reference/structs/Signal.md +++ /dev/null @@ -1,27 +0,0 @@ -**STRUCT** - -# `Signal` - -A type that signalizes an action. - -## Properties -### `boolean` - -An action is signalized by toggling a boolean to `true` and back to `false`. - -### `id` - -A signal has a unique identifier. - -### `update` - -Whether the action has caused an update. - -## Methods -### `init()` - -Initialize a signal. - -### `signal()` - -Activate a signal. diff --git a/Documentation/Reference/structs/SpinRow.md b/Documentation/Reference/structs/SpinRow.md deleted file mode 100644 index 79a3eab..0000000 --- a/Documentation/Reference/structs/SpinRow.md +++ /dev/null @@ -1,312 +0,0 @@ -**STRUCT** - -# `SpinRow` - -An [class@ActionRow] with an embedded spin button. - -spin-row - -Example of an `AdwSpinRow` UI definition: - -```xml -Spin Row010050101 -``` - -See [class@Gtk.SpinButton] for details. - -## CSS nodes - -`AdwSpinRow` has the same structure as [class@ActionRow], as well as the -`.spin` style class on the main node. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `activatableWidget` - -The widget to activate when the row is activated. - -The row can be activated either by clicking on it, calling -[method@ActionRow.activate], or via mnemonics in the title. -See the [property@PreferencesRow:use-underline] property to enable -mnemonics. - -The target widget will be activated by emitting the -[signal@Gtk.Widget::mnemonic-activate] signal on it. - -### `climbRate` - -The acceleration rate when you hold down a button or key. - -### `digits` - -The number of decimal places to display. - -### `iconName` - -The icon name for this row. - -### `numeric` - -Whether non-numeric characters should be ignored. - -### `snapToTicks` - -Whether invalid values are snapped to the nearest step increment. - -### `subtitle` - -The subtitle for this row. - -The subtitle is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `subtitleLines` - -The number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `subtitleSelectable` - -Whether the user can copy the subtitle from the label. - -See also [property@Gtk.Label:selectable]. - -### `title` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleLines` - -The number of lines at the end of which the title label will be ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `titleSelectable` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline` - -Whether an embedded underline in the title indicates a mnemonic. - -### `value` - -The current value. - -### `wrap` - -Whether the spin row should wrap upon reaching its limits. - -### `activated` - -This signal is emitted after the row has been activated. - -### `input` - -Emitted to convert the user's input into a double value. - -The signal handler is expected to use [method@Gtk.Editable.get_text] to -retrieve the text of the spinbutton and set new_value to the new value. - -The default conversion uses [func@GLib.strtod]. - -See [signal@Gtk.SpinButton::input]. - -### `output` - -Emitted to tweak the formatting of the value for display. - -See [signal@Gtk.SpinButton::output]. - -### `wrapped` - -Emitted right after the spinbutton wraps. - -See [signal@Gtk.SpinButton::wrapped]. - -### `suffix` - -The body for the widget "suffix". - -### `prefix` - -The body for the widget "prefix". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init(climbRate:digits:)` - -Initialize `SpinRow`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `activatableWidget(_:)` - -The widget to activate when the row is activated. - -The row can be activated either by clicking on it, calling -[method@ActionRow.activate], or via mnemonics in the title. -See the [property@PreferencesRow:use-underline] property to enable -mnemonics. - -The target widget will be activated by emitting the -[signal@Gtk.Widget::mnemonic-activate] signal on it. - -### `climbRate(_:)` - -The acceleration rate when you hold down a button or key. - -### `digits(_:)` - -The number of decimal places to display. - -### `iconName(_:)` - -The icon name for this row. - -### `numeric(_:)` - -Whether non-numeric characters should be ignored. - -### `snapToTicks(_:)` - -Whether invalid values are snapped to the nearest step increment. - -### `subtitle(_:)` - -The subtitle for this row. - -The subtitle is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `subtitleLines(_:)` - -The number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `subtitleSelectable(_:)` - -Whether the user can copy the subtitle from the label. - -See also [property@Gtk.Label:selectable]. - -### `title(_:)` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleLines(_:)` - -The number of lines at the end of which the title label will be ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `titleSelectable(_:)` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup(_:)` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline(_:)` - -Whether an embedded underline in the title indicates a mnemonic. - -### `value(_:)` - -The current value. - -### `wrap(_:)` - -Whether the spin row should wrap upon reaching its limits. - -### `activated(_:)` - -This signal is emitted after the row has been activated. - -### `input(_:)` - -Emitted to convert the user's input into a double value. - -The signal handler is expected to use [method@Gtk.Editable.get_text] to -retrieve the text of the spinbutton and set new_value to the new value. - -The default conversion uses [func@GLib.strtod]. - -See [signal@Gtk.SpinButton::input]. - -### `output(_:)` - -Emitted to tweak the formatting of the value for display. - -See [signal@Gtk.SpinButton::output]. - -### `wrapped(_:)` - -Emitted right after the spinbutton wraps. - -See [signal@Gtk.SpinButton::wrapped]. - -### `suffix(_:)` - -Set the body for "suffix". -- Parameter body: The body. -- Returns: The widget. - -### `prefix(_:)` - -Set the body for "prefix". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/Spinner.md b/Documentation/Reference/structs/Spinner.md deleted file mode 100644 index ffaee28..0000000 --- a/Documentation/Reference/structs/Spinner.md +++ /dev/null @@ -1,75 +0,0 @@ -**STRUCT** - -# `Spinner` - -A `GtkSpinner` widget displays an icon-size spinning animation. - -It is often used as an alternative to a [class@Gtk.ProgressBar] -for displaying indefinite activity, instead of actual progress. - -![An example GtkSpinner](spinner.png) - -To start the animation, use [method@Gtk.Spinner.start], to stop it -use [method@Gtk.Spinner.stop]. - -# CSS nodes - -`GtkSpinner` has a single CSS node with the name spinner. -When the animation is active, the :checked pseudoclass is -added to this node. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `spinning` - -Whether the spinner is spinning - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `Spinner`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `spinning(_:)` - -Whether the spinner is spinning diff --git a/Documentation/Reference/structs/SplitButton.md b/Documentation/Reference/structs/SplitButton.md deleted file mode 100644 index 09f3451..0000000 --- a/Documentation/Reference/structs/SplitButton.md +++ /dev/null @@ -1,204 +0,0 @@ -**STRUCT** - -# `SplitButton` - -A combined button and dropdown widget. - -split-button - -`AdwSplitButton` is typically used to present a set of actions in a menu, -but allow access to one of them with a single click. - -The API is very similar to [class@Gtk.Button] and [class@Gtk.MenuButton], see -their documentation for details. - -## CSS nodes - -``` -splitbutton[.image-button][.text-button] -├── button -│ ╰── ├── separator -╰── menubutton -╰── button.toggle -╰── arrow -``` - -`AdwSplitButton`'s CSS node is called `splitbutton`. It contains the css -nodes: `button`, `separator`, `menubutton`. See [class@Gtk.MenuButton] -documentation for the `menubutton` contents. - -The main CSS node will contain the `.image-button` or `.text-button` style -classes matching the button contents. The nested button nodes will never -contain them. - -## Accessibility - -`AdwSplitButton` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `canShrink` - -Whether the button can be smaller than the natural size of its contents. - -If set to `TRUE`, the label will ellipsize. - -See [property@Gtk.Button:can-shrink] and -[property@Gtk.MenuButton:can-shrink]. - -### `child` - -The child widget. - -Setting the child widget will set [property@SplitButton:label] and -[property@SplitButton:icon-name] to `NULL`. - -### `dropdownTooltip` - -The tooltip of the dropdown button. - -The tooltip can be marked up with the Pango text markup language. - -### `iconName` - -The name of the icon used to automatically populate the button. - -Setting the icon name will set [property@SplitButton:label] and -[property@SplitButton:child] to `NULL`. - -### `label` - -The label for the button. - -Setting the label will set [property@SplitButton:icon-name] and -[property@SplitButton:child] to `NULL`. - -### `menuModel` - -The `GMenuModel` from which the popup will be created. - -If the menu model is `NULL`, the dropdown is disabled. - -A [class@Gtk.Popover] will be created from the menu model with -[ctor@Gtk.PopoverMenu.new_from_model]. Actions will be connected as -documented for this function. - -If [property@SplitButton:popover] is already set, it will be dissociated -from the button, and the property is set to `NULL`. - -### `useUnderline` - -Whether an underline in the text indicates a mnemonic. - -See [property@SplitButton:label]. - -### `activate` - -Emitted to animate press then release. - -This is an action signal. Applications should never connect to this signal, -but use the [signal@SplitButton::clicked] signal. - -### `clicked` - -Emitted when the button has been activated (pressed and released). - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `SplitButton`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `canShrink(_:)` - -Whether the button can be smaller than the natural size of its contents. - -If set to `TRUE`, the label will ellipsize. - -See [property@Gtk.Button:can-shrink] and -[property@Gtk.MenuButton:can-shrink]. - -### `child(_:)` - -The child widget. - -Setting the child widget will set [property@SplitButton:label] and -[property@SplitButton:icon-name] to `NULL`. - -### `dropdownTooltip(_:)` - -The tooltip of the dropdown button. - -The tooltip can be marked up with the Pango text markup language. - -### `iconName(_:)` - -The name of the icon used to automatically populate the button. - -Setting the icon name will set [property@SplitButton:label] and -[property@SplitButton:child] to `NULL`. - -### `label(_:)` - -The label for the button. - -Setting the label will set [property@SplitButton:icon-name] and -[property@SplitButton:child] to `NULL`. - -### `menuModel(app:window:_:)` - -The `GMenuModel` from which the popup will be created. - -If the menu model is `NULL`, the dropdown is disabled. - -A [class@Gtk.Popover] will be created from the menu model with -[ctor@Gtk.PopoverMenu.new_from_model]. Actions will be connected as -documented for this function. - -If [property@SplitButton:popover] is already set, it will be dissociated -from the button, and the property is set to `NULL`. - -### `useUnderline(_:)` - -Whether an underline in the text indicates a mnemonic. - -See [property@SplitButton:label]. - -### `activate(_:)` - -Emitted to animate press then release. - -This is an action signal. Applications should never connect to this signal, -but use the [signal@SplitButton::clicked] signal. - -### `clicked(_:)` - -Emitted when the button has been activated (pressed and released). diff --git a/Documentation/Reference/structs/State.md b/Documentation/Reference/structs/State.md deleted file mode 100644 index 2e724e3..0000000 --- a/Documentation/Reference/structs/State.md +++ /dev/null @@ -1,67 +0,0 @@ -**STRUCT** - -# `State` - -A property wrapper for properties in a view that should be stored throughout view updates. - -## Properties -### `wrappedValue` - -Access the stored value. This updates the views when being changed. - -### `projectedValue` - -Get the value as a binding using the `$` prefix. - -### `rawValue` - -Get and set the value without updating the views. - -### `content` - -The stored value. - -### `forceUpdates` - -Whether to force update the views when the value changes. - -### `writeValue` - -The function for updating the value in the settings file. - -### `value` - -The value with an erased type. - -## Methods -### `init(wrappedValue:forceUpdates:)` - -Initialize a property representing a state in the view. -- Parameters: - - wrappedValue: The wrapped value. - - forceUpdates: Whether to force update all available views when the property gets modified. - -### `updateViews(force:)` - -Update all of the views. -- Parameter force: Whether to force all views to update. - -### `userDataDir()` - -The directory used for storing user data. -- Returns: The URL. - -### `copy(_:)` - -Copy a text to the clipboard. -- Parameter text: The text. - -### `dirPath()` - -Get the settings directory path. -- Returns: The path. - -### `filePath()` - -Get the settings file path. -- Returns: The path. diff --git a/Documentation/Reference/structs/StateWrapper.md b/Documentation/Reference/structs/StateWrapper.md deleted file mode 100644 index 49cd9c8..0000000 --- a/Documentation/Reference/structs/StateWrapper.md +++ /dev/null @@ -1,41 +0,0 @@ -**STRUCT** - -# `StateWrapper` - -A storage for `@State` properties. - -## Properties -### `content` - -The content. - -### `state` - -The state information (from properties with the `State` wrapper). - -## Methods -### `init(content:)` - -Initialize a `StateWrapper`. -- Parameter content: The view content. - -### `init(content:state:)` - -Initialize a `StateWrapper`. -- Parameters: - - content: The view content. - - state: The state information. - -### `update(_:modifiers:updateProperties:)` - -Update a view storage. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - - updateProperties: Whether to update properties. - -### `container(modifiers:)` - -Get a view storage. -- Parameter modifiers: Modify views before being updated. -- Returns: The view storage. diff --git a/Documentation/Reference/structs/StatusPage.md b/Documentation/Reference/structs/StatusPage.md deleted file mode 100644 index d2072f2..0000000 --- a/Documentation/Reference/structs/StatusPage.md +++ /dev/null @@ -1,94 +0,0 @@ -**STRUCT** - -# `StatusPage` - -A page used for empty/error states and similar use-cases. - -status-page - -The `AdwStatusPage` widget can have an icon, a title, a description and a -custom widget which is displayed below them. - -## CSS nodes - -`AdwStatusPage` has a main CSS node with name `statuspage`. - -`AdwStatusPage` can use the -[`.compact`](style-classes.html#compact-status-page) style class for when it -needs to fit into a small space such a sidebar or a popover. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `child` - -The child widget. - -### `description` - -The description markup to be displayed below the title. - -### `iconName` - -The name of the icon to be used. - -Changing this will set [property@StatusPage:paintable] to `NULL`. - -### `title` - -The title to be displayed below the icon. - -It is not parsed as Pango markup. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `StatusPage`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `child(_:)` - -The child widget. - -### `description(_:)` - -The description markup to be displayed below the title. - -### `iconName(_:)` - -The name of the icon to be used. - -Changing this will set [property@StatusPage:paintable] to `NULL`. - -### `title(_:)` - -The title to be displayed below the icon. - -It is not parsed as Pango markup. diff --git a/Documentation/Reference/structs/Submenu.md b/Documentation/Reference/structs/Submenu.md deleted file mode 100644 index 19e302a..0000000 --- a/Documentation/Reference/structs/Submenu.md +++ /dev/null @@ -1,30 +0,0 @@ -**STRUCT** - -# `Submenu` - -A submenu widget. - -## Properties -### `label` - -The submenu's label. - -### `submenuContent` - -The content of the submenu. - -## Methods -### `init(_:content:)` - -Initialize a submenu. -- Parameters: - - label: The submenu's label. - - content: The content of the submenu. - -### `addMenuItem(menu:app:window:)` - -Add the submenu to a menu. -- Parameters: - - menu: The menu. - - app: The application containing the menu. - - window: The application window containing the menu. diff --git a/Documentation/Reference/structs/SwitchRow.md b/Documentation/Reference/structs/SwitchRow.md deleted file mode 100644 index 459686d..0000000 --- a/Documentation/Reference/structs/SwitchRow.md +++ /dev/null @@ -1,230 +0,0 @@ -**STRUCT** - -# `SwitchRow` - -A [class@Gtk.ListBoxRow] used to represent two states. - -switch-row - -The `AdwSwitchRow` widget contains a [class@Gtk.Switch] that allows the user -to select between two states: "on" or "off". When activated, the row will -invert its active state. - -The user can control the switch by activating the row or by dragging on the -switch handle. - -See [class@Gtk.Switch] for details. - -Example of an `AdwSwitchRow` UI definition: -```xml -Switch Row -``` - -The [property@SwitchRow:active] property should be connected to in order to -monitor changes to the active state. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `activatableWidget` - -The widget to activate when the row is activated. - -The row can be activated either by clicking on it, calling -[method@ActionRow.activate], or via mnemonics in the title. -See the [property@PreferencesRow:use-underline] property to enable -mnemonics. - -The target widget will be activated by emitting the -[signal@Gtk.Widget::mnemonic-activate] signal on it. - -### `active` - -Whether the switch row is in the "on" or "off" position. - -### `iconName` - -The icon name for this row. - -### `subtitle` - -The subtitle for this row. - -The subtitle is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `subtitleLines` - -The number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `subtitleSelectable` - -Whether the user can copy the subtitle from the label. - -See also [property@Gtk.Label:selectable]. - -### `title` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleLines` - -The number of lines at the end of which the title label will be ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `titleSelectable` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline` - -Whether an embedded underline in the title indicates a mnemonic. - -### `activated` - -This signal is emitted after the row has been activated. - -### `suffix` - -The body for the widget "suffix". - -### `prefix` - -The body for the widget "prefix". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `SwitchRow`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `activatableWidget(_:)` - -The widget to activate when the row is activated. - -The row can be activated either by clicking on it, calling -[method@ActionRow.activate], or via mnemonics in the title. -See the [property@PreferencesRow:use-underline] property to enable -mnemonics. - -The target widget will be activated by emitting the -[signal@Gtk.Widget::mnemonic-activate] signal on it. - -### `active(_:)` - -Whether the switch row is in the "on" or "off" position. - -### `iconName(_:)` - -The icon name for this row. - -### `subtitle(_:)` - -The subtitle for this row. - -The subtitle is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `subtitleLines(_:)` - -The number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `subtitleSelectable(_:)` - -Whether the user can copy the subtitle from the label. - -See also [property@Gtk.Label:selectable]. - -### `title(_:)` - -The title of the preference represented by this row. - -The title is interpreted as Pango markup unless -[property@PreferencesRow:use-markup] is set to `FALSE`. - -### `titleLines(_:)` - -The number of lines at the end of which the title label will be ellipsized. - -If the value is 0, the number of lines won't be limited. - -### `titleSelectable(_:)` - -Whether the user can copy the title from the label. - -See also [property@Gtk.Label:selectable]. - -### `useMarkup(_:)` - -Whether to use Pango markup for the title label. - -Subclasses may also use it for other labels, such as subtitle. - -See also [func@Pango.parse_markup]. - -### `useUnderline(_:)` - -Whether an embedded underline in the title indicates a mnemonic. - -### `activated(_:)` - -This signal is emitted after the row has been activated. - -### `suffix(_:)` - -Set the body for "suffix". -- Parameter body: The body. -- Returns: The widget. - -### `prefix(_:)` - -Set the body for "prefix". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/Text.md b/Documentation/Reference/structs/Text.md deleted file mode 100644 index 7cfaf67..0000000 --- a/Documentation/Reference/structs/Text.md +++ /dev/null @@ -1,38 +0,0 @@ -**STRUCT** - -# `Text` - -A text widget. - -## Properties -### `text` - -The content. - -### `lineWrapping` - -Whether line wrapping is allowed. - -## Methods -### `init(_:)` - -Initialize a text widget. -- Parameter text: The content. - -### `update(_:modifiers:)` - -Update the view storage of the text widget. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - -### `container(modifiers:)` - -Get the container of the text widget. -- Returns: The view storage. - -### `wrap(_:)` - -Line wrapping allows the text view to span multiple lines if the width is narrow. -- Parameter wrap: Whether to allow line wrapping. -- Returns: The text. diff --git a/Documentation/Reference/structs/ToastOverlay.md b/Documentation/Reference/structs/ToastOverlay.md deleted file mode 100644 index 2718809..0000000 --- a/Documentation/Reference/structs/ToastOverlay.md +++ /dev/null @@ -1,84 +0,0 @@ -**STRUCT** - -# `ToastOverlay` - -A widget showing toasts above its content. - -toast-overlay - -Much like [class@Gtk.Overlay], `AdwToastOverlay` is a container with a single -main child, on top of which it can display a [class@Toast], overlaid. -Toasts can be shown with [method@ToastOverlay.add_toast]. - -See [class@Toast] for details. - -## CSS nodes - -``` -toastoverlay -├── [child] -├── toast -┊ ├── widget -┊ │ ├── [label.heading] -│ ╰── [custom title] -├── [button] -╰── button.circular.flat -``` - -`AdwToastOverlay`'s CSS node is called `toastoverlay`. It contains the child, -as well as zero or more `toast` subnodes. - -Each of the `toast` nodes contains a `widget` subnode, optionally a `button` -subnode, and another `button` subnode with `.circular` and `.flat` style -classes. - -The `widget` subnode contains a `label` subnode with the `.heading` style -class, or a custom widget provided by the application. - -## Accessibility - -`AdwToastOverlay` uses the `GTK_ACCESSIBLE_ROLE_TAB_GROUP` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `child` - -The child widget. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `ToastOverlay`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `child(_:)` - -The child widget. diff --git a/Documentation/Reference/structs/Toggle.md b/Documentation/Reference/structs/Toggle.md deleted file mode 100644 index dbe8984..0000000 --- a/Documentation/Reference/structs/Toggle.md +++ /dev/null @@ -1,66 +0,0 @@ -**STRUCT** - -# `Toggle` - -A toggle button widget. - -## Properties -### `label` - -The button's label. - -### `icon` - -The button's icon. - -### `isOn` - -Whether the toggle is on. - -### `isCheckButton` - -Whether to use GtkCheckButton instead of GtkToggleButton - -## Methods -### `init(_:icon:isOn:)` - -Initialize a toggle button. -- Parameters: - - label: The button's label. - - icon: The button's icon. - - isOn: Whether the toggle is on. - -### `init(_:isOn:)` - -Initialize a toggle button. -- Parameters: - - label: The buttons label. - - isOn: Whether the toggle is on. - -### `update(_:modifiers:)` - -Update a toggle button's view storage. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - -### `container(modifiers:)` - -Get a button's view storage. -- Parameter modifiers: Modify views before being updated. -- Returns: The button's view storage. - -### `updateState(toggle:)` - -Update the toggle's state. -- Parameter toggle: The toggle. - -### `updateState(toggle:)` - -Update the check button's state. -- Parameter toggle: The toggle. - -### `checkButton()` - -Use the check button style. -- Returns: The toggle. diff --git a/Documentation/Reference/structs/ToggleButton.md b/Documentation/Reference/structs/ToggleButton.md deleted file mode 100644 index d39b1cf..0000000 --- a/Documentation/Reference/structs/ToggleButton.md +++ /dev/null @@ -1,241 +0,0 @@ -**STRUCT** - -# `ToggleButton` - -A `GtkToggleButton` is a button which remains “pressed-in” when -clicked. - -Clicking again will cause the toggle button to return to its normal state. - -A toggle button is created by calling either [ctor@Gtk.ToggleButton.new] or -[ctor@Gtk.ToggleButton.new_with_label]. If using the former, it is advisable -to pack a widget, (such as a `GtkLabel` and/or a `GtkImage`), into the toggle -button’s container. (See [class@Gtk.Button] for more information). - -The state of a `GtkToggleButton` can be set specifically using -[method@Gtk.ToggleButton.set_active], and retrieved using -[method@Gtk.ToggleButton.get_active]. - -To simply switch the state of a toggle button, use -[method@Gtk.ToggleButton.toggled]. - -## Grouping - -Toggle buttons can be grouped together, to form mutually exclusive -groups - only one of the buttons can be toggled at a time, and toggling -another one will switch the currently toggled one off. - -To add a `GtkToggleButton` to a group, use [method@Gtk.ToggleButton.set_group]. - -## CSS nodes - -`GtkToggleButton` has a single CSS node with name button. To differentiate -it from a plain `GtkButton`, it gets the `.toggle` style class. - -## Accessibility - -`GtkToggleButton` uses the %GTK_ACCESSIBLE_ROLE_TOGGLE_BUTTON role. - -## Creating two `GtkToggleButton` widgets. - -```c -static void -output_state (GtkToggleButton *source, -gpointer user_data) -{ -g_print ("Toggle button "%s" is active: %s", -gtk_button_get_label (GTK_BUTTON (source)), -gtk_toggle_button_get_active (source) ? "Yes" : "No"); -} - -static void -make_toggles (void) -{ -GtkWidget *window, *toggle1, *toggle2; -GtkWidget *box; -const char *text; - -window = gtk_window_new (); -box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); - -text = "Hi, I’m toggle button one"; -toggle1 = gtk_toggle_button_new_with_label (text); - -g_signal_connect (toggle1, "toggled", -G_CALLBACK (output_state), -NULL); -gtk_box_append (GTK_BOX (box), toggle1); - -text = "Hi, I’m toggle button two"; -toggle2 = gtk_toggle_button_new_with_label (text); -g_signal_connect (toggle2, "toggled", -G_CALLBACK (output_state), -NULL); -gtk_box_append (GTK_BOX (box), toggle2); - -gtk_window_set_child (GTK_WINDOW (window), box); -gtk_window_present (GTK_WINDOW (window)); -} -``` - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `accessibleRole` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `actionName` - -action-name - -### `active` - -If the toggle button should be pressed in. - -### `canShrink` - -Whether the size of the button can be made smaller than the natural -size of its contents. - -For text buttons, setting this property will allow ellipsizing the label. - -If the contents of a button are an icon or a custom widget, setting this -property has no effect. - -### `child` - -The child widget. - -### `hasFrame` - -Whether the button has a frame. - -### `iconName` - -The name of the icon used to automatically populate the button. - -### `label` - -Text of the label inside the button, if the button contains a label widget. - -### `useUnderline` - -If set, an underline in the text indicates that the following character is -to be used as mnemonic. - -### `activate` - -Emitted to animate press then release. - -This is an action signal. Applications should never connect -to this signal, but use the [signal@Gtk.Button::clicked] signal. - -The default bindings for this signal are all forms of the - and Enter keys. - -### `clicked` - -Emitted when the button has been activated (pressed and released). - -### `toggled` - -Emitted whenever the `GtkToggleButton`'s state is changed. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `ToggleButton`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `accessibleRole(_:)` - -The accessible role of the given `GtkAccessible` implementation. - -The accessible role cannot be changed once set. - -### `actionName(_:)` - -action-name - -### `active(_:)` - -If the toggle button should be pressed in. - -### `canShrink(_:)` - -Whether the size of the button can be made smaller than the natural -size of its contents. - -For text buttons, setting this property will allow ellipsizing the label. - -If the contents of a button are an icon or a custom widget, setting this -property has no effect. - -### `child(_:)` - -The child widget. - -### `hasFrame(_:)` - -Whether the button has a frame. - -### `iconName(_:)` - -The name of the icon used to automatically populate the button. - -### `label(_:)` - -Text of the label inside the button, if the button contains a label widget. - -### `useUnderline(_:)` - -If set, an underline in the text indicates that the following character is -to be used as mnemonic. - -### `activate(_:)` - -Emitted to animate press then release. - -This is an action signal. Applications should never connect -to this signal, but use the [signal@Gtk.Button::clicked] signal. - -The default bindings for this signal are all forms of the - and Enter keys. - -### `clicked(_:)` - -Emitted when the button has been activated (pressed and released). - -### `toggled(_:)` - -Emitted whenever the `GtkToggleButton`'s state is changed. diff --git a/Documentation/Reference/structs/ToolbarView.md b/Documentation/Reference/structs/ToolbarView.md deleted file mode 100644 index c06dae5..0000000 --- a/Documentation/Reference/structs/ToolbarView.md +++ /dev/null @@ -1,258 +0,0 @@ -**STRUCT** - -# `ToolbarView` - -A widget containing a page, as well as top and/or bottom bars. - -toolbar-view - -`AdwToolbarView` has a single content widget and one or multiple top and -bottom bars, shown at the top and bottom sides respectively. - -Example of an `AdwToolbarView` UI definition: -```xml - -``` - -The following kinds of top and bottom bars are supported: - -- [class@HeaderBar] -- [class@TabBar] -- [class@ViewSwitcherBar] -- [class@Gtk.ActionBar] -- [class@Gtk.HeaderBar] -- [class@Gtk.PopoverMenuBar] -- [class@Gtk.SearchBar] -- Any [class@Gtk.Box] or a similar widget with the -[`.toolbar`](style-classes.html#toolbars) style class - -By default, top and bottom bars are flat and scrolling content has a subtle -undershoot shadow, same as when using the -[`.undershoot-top`](style-classes.html#undershot-indicators) and -[`.undershoot-bottom`](style-classes.html#undershot-indicators) style -classes. This works well in most cases, e.g. with [class@StatusPage] or -[class@PreferencesPage], where the background at the top and bottom parts of -the page is uniform. Additionally, windows with sidebars should always use -this style. - -[property@ToolbarView:top-bar-style] and -[property@ToolbarView:bottom-bar-style] properties can be used add an opaque -background and a persistent shadow to top and bottom bars, this can be useful -for content such as [utility panes](https://developer.gnome.org/hig/patterns/containers/utility-panes.html), -where some elements are adjacent to the top/bottom bars, or [class@TabView], -where each page can have a different background. - -toolbar-view-flat-1toolbar-view-flat-2toolbar-view-raised - -`AdwToolbarView` ensures the top and bottom bars have consistent backdrop -styles and vertical spacing. For comparison: - -toolbar-view-spacingtoolbar-view-spacing-box - -Any top and bottom bars can also be dragged to move the window, equivalent -to putting them into a [class@Gtk.WindowHandle]. - -Content is typically place between top and bottom bars, but can also extend -behind them. This is controlled with the -[property@ToolbarView:extend-content-to-top-edge] and -[property@ToolbarView:extend-content-to-bottom-edge] properties. - -Top and bottom bars can be hidden and revealed with an animation using the -[property@ToolbarView:reveal-top-bars] and -[property@ToolbarView:reveal-bottom-bars] properties. - -## `AdwToolbarView` as `GtkBuildable` - -The `AdwToolbarView` implementation of the [iface@Gtk.Buildable] interface -supports adding a top bar by specifying “top” as the “type” attribute of a -`` element, or adding a bottom bar by specifying “bottom”. - -## Accessibility - -`AdwToolbarView` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `bottomBarHeight` - -The current bottom bar height. - -Bottom bar height does change depending on -[property@ToolbarView:reveal-bottom-bars], including during the transition. - -See [property@ToolbarView:top-bar-height]. - -### `content` - -The content widget. - -### `extendContentToBottomEdge` - -Whether the content widget can extend behind bottom bars. - -This can be used in combination with -[property@ToolbarView:reveal-bottom-bars] to show and hide toolbars in -fullscreen. - -See [property@ToolbarView:extend-content-to-top-edge]. - -### `extendContentToTopEdge` - -Whether the content widget can extend behind top bars. - -This can be used in combination with [property@ToolbarView:reveal-top-bars] -to show and hide toolbars in fullscreen. - -See [property@ToolbarView:extend-content-to-bottom-edge]. - -### `revealBottomBars` - -Whether bottom bars are visible. - -The transition will be animated. - -This can be used in combination with -[property@ToolbarView:extend-content-to-bottom-edge] to show and hide -toolbars in fullscreen. - -See [property@ToolbarView:reveal-top-bars]. - -### `revealTopBars` - -Whether top bars are revealed. - -The transition will be animated. - -This can be used in combination with -[property@ToolbarView:extend-content-to-top-edge] to show and hide toolbars -in fullscreen. - -See [property@ToolbarView:reveal-bottom-bars]. - -### `topBarHeight` - -The current top bar height. - -Top bar height does change depending [property@ToolbarView:reveal-top-bars], -including during the transition. - -See [property@ToolbarView:bottom-bar-height]. - -### `bottom` - -The body for the widget "bottom". - -### `top` - -The body for the widget "top". - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init()` - -Initialize `ToolbarView`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `bottomBarHeight(_:)` - -The current bottom bar height. - -Bottom bar height does change depending on -[property@ToolbarView:reveal-bottom-bars], including during the transition. - -See [property@ToolbarView:top-bar-height]. - -### `content(_:)` - -The content widget. - -### `extendContentToBottomEdge(_:)` - -Whether the content widget can extend behind bottom bars. - -This can be used in combination with -[property@ToolbarView:reveal-bottom-bars] to show and hide toolbars in -fullscreen. - -See [property@ToolbarView:extend-content-to-top-edge]. - -### `extendContentToTopEdge(_:)` - -Whether the content widget can extend behind top bars. - -This can be used in combination with [property@ToolbarView:reveal-top-bars] -to show and hide toolbars in fullscreen. - -See [property@ToolbarView:extend-content-to-bottom-edge]. - -### `revealBottomBars(_:)` - -Whether bottom bars are visible. - -The transition will be animated. - -This can be used in combination with -[property@ToolbarView:extend-content-to-bottom-edge] to show and hide -toolbars in fullscreen. - -See [property@ToolbarView:reveal-top-bars]. - -### `revealTopBars(_:)` - -Whether top bars are revealed. - -The transition will be animated. - -This can be used in combination with -[property@ToolbarView:extend-content-to-top-edge] to show and hide toolbars -in fullscreen. - -See [property@ToolbarView:reveal-bottom-bars]. - -### `topBarHeight(_:)` - -The current top bar height. - -Top bar height does change depending [property@ToolbarView:reveal-top-bars], -including during the transition. - -See [property@ToolbarView:bottom-bar-height]. - -### `bottom(_:)` - -Set the body for "bottom". -- Parameter body: The body. -- Returns: The widget. - -### `top(_:)` - -Set the body for "top". -- Parameter body: The body. -- Returns: The widget. diff --git a/Documentation/Reference/structs/UpdateObserver.md b/Documentation/Reference/structs/UpdateObserver.md deleted file mode 100644 index 937b8c6..0000000 --- a/Documentation/Reference/structs/UpdateObserver.md +++ /dev/null @@ -1,28 +0,0 @@ -**STRUCT** - -# `UpdateObserver` - -A widget which executes a custom code when being updated. - -## Properties -### `onUpdate` - -The function. - -### `content` - -The content. - -## Methods -### `container(modifiers:)` - -Get the content's container. -- Parameter modifiers: Modify views before being updated. -- Returns: The content's container. - -### `update(_:modifiers:)` - -Update the content. -- Parameters: - - storage: The content's storage. - - modifiers: Modify views before being updated. diff --git a/Documentation/Reference/structs/VStack.md b/Documentation/Reference/structs/VStack.md deleted file mode 100644 index fa604a3..0000000 --- a/Documentation/Reference/structs/VStack.md +++ /dev/null @@ -1,29 +0,0 @@ -**STRUCT** - -# `VStack` - -A GtkBox equivalent. - -## Properties -### `content` - -The content. - -## Methods -### `init(content:)` - -Initialize a `VStack`. -- Parameter content: The view content. - -### `update(_:modifiers:)` - -Update a view storage. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - -### `container(modifiers:)` - -Get a view storage. -- Parameter modifiers: Modify views before being updated. -- Returns: The view storage. diff --git a/Documentation/Reference/structs/ViewStack.md b/Documentation/Reference/structs/ViewStack.md deleted file mode 100644 index 48f0249..0000000 --- a/Documentation/Reference/structs/ViewStack.md +++ /dev/null @@ -1,43 +0,0 @@ -**STRUCT** - -# `ViewStack` - -A widget holding multiple children but only displaying one. - -## Properties -### `content` - -The stack's active content. - -### `id` - -The stack's active identifier. - -## Methods -### `init(id:view:)` - -Initialize the stack. -- Parameters: - - id: The identifier of the current view. - - view: The current view. - -### `init(element:view:)` - -Initialize the stack. -- Parameters: - - element: The current identifiable element. - - view: The current view. - -### `container(modifiers:)` - -Get a stack's view storage. -- Parameter modifiers: Modify views before being updated. -- Returns: The stack's view storage. - -### `update(_:modifiers:updateProperties:)` - -Update a stack's view storage. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - - updateProperties: Whether to update properties. diff --git a/Documentation/Reference/structs/ViewSwitcher.md b/Documentation/Reference/structs/ViewSwitcher.md deleted file mode 100644 index ca7a5e0..0000000 --- a/Documentation/Reference/structs/ViewSwitcher.md +++ /dev/null @@ -1,47 +0,0 @@ -**STRUCT** - -# `ViewSwitcher` - -A picker used for indicating multiple views. - -It normally controls a `ViewStack` (e.g. via `switch` statements). - -## Properties -### `selection` - -The selected element. - -### `wide` - -Whether the wide style is used, that means the icons and titles are on the same line. - -## Methods -### `init(selection:)` - -Initialize a view switcher. -- Parameter selection: The selected element. - -### `container(modifiers:)` - -Get a view switcher's view storage. -- Parameter modifiers: Modify views before being updated. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update a view switcher's view storage. -- Parameters: - - storage: The view storage. - - modifiers: Modify views before being updated. - - updateProperties: Whether to update properties. - -### `updateSwitcher(switcher:)` - -Update a view switcher's style and selection. -- Parameter switcher: The view switcher. - -### `wideDesign(_:)` - -Set whether to use the wide design. -- Parameter wide: Whether to use the wide design. -- Returns: The view switcher. diff --git a/Documentation/Reference/structs/Window.md b/Documentation/Reference/structs/Window.md deleted file mode 100644 index ef0fbce..0000000 --- a/Documentation/Reference/structs/Window.md +++ /dev/null @@ -1,194 +0,0 @@ -**STRUCT** - -# `Window` - -A structure representing an application window type. - -Note that multiple instances of a window can be opened at the same time. - -## Properties -### `id` - -The window's identifier. - -### `content` - -The window's content. - -### `open` - -Whether an instance of the window type should be opened when the app is starting up. - -### `parentID` - -The identifier of the window's parent. - -### `shortcuts` - -The keyboard shortcuts. - -### `appShortcuts` - -The keyboard shortcuts on the app level. - -### `title` - -The window's title. - -### `resizable` - -Whether the window is resizable. - -### `deletable` - -Whether the window is deletable. - -### `signals` - -The signals for the importers and exporters. - -### `width` - -The binding for the window's width. - -### `height` - -The binding for the window's height. - -### `setDefaultSize` - -Whether to update the default size. - -## Methods -### `init(id:open:content:)` - -Create a window type with a certain identifier and user interface. -- Parameters: - - id: The identifier. - - open: The number of instances of the window type when the app is starting. - - content: The window's content. - -### `createWindow(app:)` - -Get the storage for the window. -- Parameter app: The application. -- Returns: The storage. - -### `createGTUIWindow(app:)` - -Get the window. -- Parameter app: The application. -- Returns: The window. - -### `getViewStorage(window:)` - -Get the storage of the content view. -- Parameter window: The window. -- Returns: The storage of the content of the window. - -### `update(_:app:force:)` - -Update a window storage's content. -- Parameters: - - storage: The storage to update. - - app: The GTUI app. - - force: Whether to force update all the views. - -### `getTemplate(content:)` - -Get the actual window template. -- Parameter content: The content view.s -- Returns: The window. - -### `setProperties(window:template:)` - -Set some general propreties of the window. -- Parameters: - - window: The window. - - template: The window template. - -### `updateSize(window:template:)` - -Update the window's size. -- Parameters: - - window: The window. - - template: The window template. - -### `overlay(windows:)` - -Add windows that overlay the last instance of this window if presented. -- Parameter windows: The windows. -- Returns: The new windows and this window. - -### `fileImporter(_:initialFolder:extensions:onOpen:onClose:)` - -Add an importer file dialog to the window. -- Parameters: - - signal: The signal for opening the dialog. - - initialFolder: The URL to the folder open when being opened. - - extensions: The accepted file extensions. - - folders: Whether folders are accepted. - - onOpen: Run this when a file for importing has been chosen. - - onClose: Run this when the user cancelled the action. - -### `fileExporter(_:initialFolder:initialName:onSave:onClose:)` - -Add an exporter file dialog to the window. -- Parameters: - - signal: The signal for opening the dialog. - - initialFolder: The URL to the folder open when being opened. - - initialName: The default file name. - - onSave: Run this when a path for exporting has been chosen. - - onClose: Run this when the user cancelled the action. - -### `keyboardShortcut(_:action:)` - -Add a keyboard shortcut. -- Parameters: - - shortcut: The keyboard shortcut. - - action: The closure to execute when the keyboard shortcut is pressed. -- Returns: The window. - -### `updateShortcuts(window:template:)` - -Update the keyboard shortcuts. -- Parameters: window: The application window. - -### `closeShortcut()` - -Add the shortcut "w" which closes the window. -- Returns: The window. - -### `defaultSize(width:height:)` - -Set the window's default size. -- Parameters: - - width: The window's width. - - height: The window's height. -- Returns: The window. - -### `title(_:)` - -Set the window's title. -- Parameter title: The title. -- Returns: The window. - -### `resizable(_:)` - -Set whether the window is resizable. -- Parameter resizable: The resizability. -- Returns: The window. - -### `deletable(_:)` - -Set whether the window is deletable. -- Parameter resizable: The deletability. -- Returns: The window. - -### `size(width:height:)` - -Add a tooltip to the widget. -- Parameters: - - width: The window's actual width. - - height: The window's actual height. -- Returns: The window. diff --git a/Documentation/Reference/structs/WindowTitle.md b/Documentation/Reference/structs/WindowTitle.md deleted file mode 100644 index 8cf0acb..0000000 --- a/Documentation/Reference/structs/WindowTitle.md +++ /dev/null @@ -1,76 +0,0 @@ -**STRUCT** - -# `WindowTitle` - -A helper widget for setting a window's title and subtitle. - -window-title - -`AdwWindowTitle` shows a title and subtitle. It's intended to be used as the -title child of [class@Gtk.HeaderBar] or [class@HeaderBar]. - -## CSS nodes - -`AdwWindowTitle` has a single CSS node with name `windowtitle`. - -## Properties -### `updateFunctions` - -Additional update functions for type extensions. - -### `appearFunctions` - -Additional appear functions for type extensions. - -### `subtitle` - -The subtitle to display. - -The subtitle should give the user additional details. - -### `title` - -The title to display. - -The title typically identifies the current view or content item, and -generally does not use the application name. - -### `app` - -The application. - -### `window` - -The window. - -## Methods -### `init(subtitle:title:)` - -Initialize `WindowTitle`. - -### `container(modifiers:)` - -Get the widget's view storage. -- Parameter modifiers: The view modifiers. -- Returns: The view storage. - -### `update(_:modifiers:updateProperties:)` - -Update the widget's view storage. -- Parameters: - - storage: The view storage. - - modifiers: The view modifiers. - - updateProperties: Whether to update the view's properties. - -### `subtitle(_:)` - -The subtitle to display. - -The subtitle should give the user additional details. - -### `title(_:)` - -The title to display. - -The title typically identifies the current view or content item, and -generally does not use the application name. diff --git a/Documentation/Reference/typealiases/Alignment.md b/Documentation/Reference/typealiases/Alignment.md deleted file mode 100644 index baecfc5..0000000 --- a/Documentation/Reference/typealiases/Alignment.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `Alignment` - -The alignment for a widget. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/Body.md b/Documentation/Reference/typealiases/Body.md deleted file mode 100644 index 4c53786..0000000 --- a/Documentation/Reference/typealiases/Body.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `Body` - -`Body` is an array of views. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/Edge.md b/Documentation/Reference/typealiases/Edge.md deleted file mode 100644 index eb74460..0000000 --- a/Documentation/Reference/typealiases/Edge.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `Edge` - -The edges of a widget. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/FormSection.md b/Documentation/Reference/typealiases/FormSection.md deleted file mode 100644 index 63b6502..0000000 --- a/Documentation/Reference/typealiases/FormSection.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `FormSection` - -A section usually groups forms. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/GTUIApplicationWindow.md b/Documentation/Reference/typealiases/GTUIApplicationWindow.md deleted file mode 100644 index 19c4f00..0000000 --- a/Documentation/Reference/typealiases/GTUIApplicationWindow.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `GTUIApplicationWindow` - -A GTUI application window. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/GTUIWindow.md b/Documentation/Reference/typealiases/GTUIWindow.md deleted file mode 100644 index d80e760..0000000 --- a/Documentation/Reference/typealiases/GTUIWindow.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `GTUIWindow` - -A GTUI window. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/Icon.md b/Documentation/Reference/typealiases/Icon.md deleted file mode 100644 index 73a23a1..0000000 --- a/Documentation/Reference/typealiases/Icon.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `Icon` - -An icon. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/List.md b/Documentation/Reference/typealiases/List.md deleted file mode 100644 index ab08b25..0000000 --- a/Documentation/Reference/typealiases/List.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `List` - -A list box widget. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/MenuBuilder.md b/Documentation/Reference/typealiases/MenuBuilder.md deleted file mode 100644 index 566c55e..0000000 --- a/Documentation/Reference/typealiases/MenuBuilder.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `MenuBuilder` - -A builder for the `MenuContent` \ No newline at end of file diff --git a/Documentation/Reference/typealiases/MenuContent.md b/Documentation/Reference/typealiases/MenuContent.md deleted file mode 100644 index 98f7574..0000000 --- a/Documentation/Reference/typealiases/MenuContent.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `MenuContent` - -`MenuContent` is an array of menu item groups. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/NavigationStack.md b/Documentation/Reference/typealiases/NavigationStack.md deleted file mode 100644 index 4e295f8..0000000 --- a/Documentation/Reference/typealiases/NavigationStack.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `NavigationStack` - -A stack controls a navigation view. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/Scene.md b/Documentation/Reference/typealiases/Scene.md deleted file mode 100644 index 9222559..0000000 --- a/Documentation/Reference/typealiases/Scene.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `Scene` - -`Scene` is an array of windows. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/SceneBuilder.md b/Documentation/Reference/typealiases/SceneBuilder.md deleted file mode 100644 index e14eb27..0000000 --- a/Documentation/Reference/typealiases/SceneBuilder.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `SceneBuilder` - -A builder for the `Scene` \ No newline at end of file diff --git a/Documentation/Reference/typealiases/ScrollView.md b/Documentation/Reference/typealiases/ScrollView.md deleted file mode 100644 index ea4e3d0..0000000 --- a/Documentation/Reference/typealiases/ScrollView.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `ScrollView` - -A GtkScrolledWindow equivalent. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/Text.md b/Documentation/Reference/typealiases/Text.md deleted file mode 100644 index ba2f5b1..0000000 --- a/Documentation/Reference/typealiases/Text.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `Text` - -A text widget. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/Toggle.md b/Documentation/Reference/typealiases/Toggle.md deleted file mode 100644 index c88b14a..0000000 --- a/Documentation/Reference/typealiases/Toggle.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `Toggle` - -A toggle button widget. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/Transition.md b/Documentation/Reference/typealiases/Transition.md deleted file mode 100644 index 7a4493b..0000000 --- a/Documentation/Reference/typealiases/Transition.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `Transition` - -A transition for a stack. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/VStack.md b/Documentation/Reference/typealiases/VStack.md deleted file mode 100644 index 027f145..0000000 --- a/Documentation/Reference/typealiases/VStack.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `VStack` - -A GtkBox equivalent. \ No newline at end of file diff --git a/Documentation/Reference/typealiases/ViewBuilder.md b/Documentation/Reference/typealiases/ViewBuilder.md deleted file mode 100644 index 690bba7..0000000 --- a/Documentation/Reference/typealiases/ViewBuilder.md +++ /dev/null @@ -1,5 +0,0 @@ -**TYPEALIAS** - -# `ViewBuilder` - -A builder for the `Body`. \ No newline at end of file diff --git a/Icons/Counter.png b/Icons/Counter.png new file mode 100644 index 0000000000000000000000000000000000000000..06247b8c1802d1687f0b4d2aed89164ef3778bc7 GIT binary patch literal 8629 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 KQl%1xe*Xc&Z=)9g literal 0 HcmV?d00001 diff --git a/Icons/Demo.png b/Icons/Demo.png deleted file mode 100644 index 9a87402ed234761471fc146d1c3b6b32ce24a9c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27021 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 diff --git a/Icons/Screenshot 2024-03-29 at 21.17.17.png b/Icons/Screenshot 2024-03-29 at 21.17.17.png deleted file mode 100644 index 2570d8fa056d4d95556171efd97ec7e6a303fe00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421168 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ΞJJ;{mk&^chl~>1SsKi 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

RY2Z@Hb$QIQ$bLC&PN}w*YG& z1Q5hYA6OIhTr9d0^;I4oUj4$;C-E0aOWiqAv7NxA@(Q-6_5r@OUzcK%pha!nc6)BW z*#la>vHfE`?00yL8_C68Y8rY(fYD!DHb{Rg5k+kC%V7@>A-(M2uz+^{o!^)1Fs7y# z00cqx;ET4)2yi~Hi#5K#{e^aaBDfU7%d2Ys3Imgn+hsd9F$iRl$b@p7BuKqEmOR5M zel28yHqXWcue2lA{mluvdh>pr2dI|3;%kLoweaBf zR^tA>B)3FhaX#OdPhWrrK5;N_h!`0DdST#9f$&UT=9>bK^z1#lvb@FAxmN6^a5-P; zLdx?UNs74D82%=Oh#8U$f+tZE!r%H zpPu_aTlVN0{0*?2playayLFYm_H!L#pT=p8HpB1$KVk&diuk8DxL?2u`I>g54!f2! z^@|QPZ**eUA9vzKHod0cIU<4V;uycf1R4@7*lh}F0G7v<+;|lB45aMZDQ(^xuxK8Q zU+j~v=aJYlSV*U)JF%6uQ#1?A@Q@!%BY7#d&rUp2qLW^{f?VAFY9mQ=T{$Y+-!A)b zeh;iQ2n04YN^irO{zOe~@u2ej*1xsi9r3itNItcv``Q$R#QQSpCZ&IwE&%E6Gc42= zXYC~3M2p6Xk>mHc`exgjq<3+7NI8KRn5jhj_QBorS{sfV6L01?1vN-1ujb?tA}2qC z9S@x#Aw=-D4pK$B_f^m9jJ?w|#m2PxC1;^@1vvTfIfnb?LpNYzK|jo&u)bN*g<4&? z9hYR9zYVfRBtfX_FM=P(x;rx^nKAzzT#s_Xk1m;dIRbDeV;@3j;t;*TH;ZX#e`p{k z2PpbK-Vai2n&-f&AVI-{uN(u!>3&O;^cw52TnicX_u>rk++q=guVg;K{lM#dhnv9y ze`y(RU8!<;tjMty3fg+er{gP6U-yF8YASU$$O`Izol`O%R3y#}u#k3w!u8u5dd@}H z*hAnz;{JZWXC{d95LkHjd_eRNbRTrl_$b&#MyH2eXu;W0cP`83Y0s%oO0N!sHNwO0 zK(O%6^V$_8S~@w~E{9w_M?HB9m7=BC6Mau=m;8Dy@^4vy0^p;GjvH9@o&8%%KsO*& z8S^@}Vzt3Bs?Nh;xOjMiFz3 zLN~Jpr^GK^0@HF4{p3)>9}rdOSjp+KV12$o`L%p%Vjfx6Ro*;w>Y9#+@C3%iMbEKIYs*r+#X9qLw_h@i*m$6 zyWlX-cC0fRQvS+mY*5hH3toX)W&{@h7csL+K%w`UfPLs`VZ>gIZ4{#jp69C(cRu^| z*kA(){|tskh(a!-Hr?wftQZu_7w24J3hQh^!8bLp5*R`}73Ddik>h*~NkuCt(s^9t z)baaOB4awAgPFbMznQ&IECmQW)(6{pt`aO*QiaVjECQ#QZJ=XVv%{OyF$w0w&Y!>v zY7;xX#HMSeVN;YaLU{*vl!);?FVyztUjV8braa$~=r!U8k9>CpkYSHH>>|0VnENGD z5p53|QqRvr*q@u4CI1qn?*vWJ(x6 zJ0-F#hfN>WdUL2T?~fD^^&PLs3P`=L$v|F>ZQ#xF(tj6i_*Qi8v~SsNX^AN^tOA2f zcxEuC8+>zSlpS;^QJY_*NbDrMy*VS<$#u_Fq6k4xHNDp`SiItD4Q>^L;?lb0_l$~~ z<-?C1{u{>Q@Idp=-cMVB;me%n-G4J$9&gChlop?%O=?XDY;t~2mXc((IP)=-PCtEw zf<2V>0H<1qLX&qo8eeZ26P^>5gWsweA zabY9D{@FL1sXjIhjr1jl%dYxAL8$hd;z#GHOLM+o=`U|KHN4M?4T2npxy`)8-WC%| zsHA$Gb7%7MQYGbZH1#f)ew}!+2>Pg1d2AfQXV}9k0+(yC1nhP*kw}dSJln4+KB3wa z$Yuw0htk~f>AEflqFm}KW&;k&i%%X0jYyuKX8h{927aqEqaN@toOg>x0RM5(O71QH zFVI%r-|lQq*}92K(h8n9Tpol4x0LlqqA5q(SkQ`AOR}V5;8^+whT7yW$c=%wosX#| zjT`v1=$2baem=!L=Psk8qDnry$OHE!vp4)p501AUrqIh3z)&>D^j!@mQK{`>B`iiU ziKEoDZ4!upmc~g2PhEIUA9Ii5IwMm2i%+{lL!FgRdQFa$>gUnhfVdHCwN>qtV_|=m zUKrv4XE)*;zDQKw{=(3JZR0*j^09U`&9JtY8?C`s@%v|5?BC-0Y1WirLW?1vsvU(< zYR#?jIMxao+`m-j@-Yk1>cpVN0d&V@m6%{ZF-YqQ{mBeuw2`*My6305>>W|qyZYe# zDsNbk=0$Qny9`>*3?>F^!`*v56VucEbfYg4+jKF(JGW$FA4$Y@*bcLj7^?T|SBCIg zm(+?!?Or52>5WfPF!V~nzpxyyLCwBahXGl+yZ(tLL3p$tbaNJ`^!9MCkZ0kKt zrz_H`iU<=#-}nRU=mMf>@NGBi%=D43SNz_%Fv};OR>^h& zCIPO%?Y2UX6TgGu@mgQtkvtGLe{_XfcFKPM)C&P(Jw)NEacTP52D|tdMzBko>e4Md zl^aW2pg>ZhsW*L&T_|>@-n5(vU^6e5X{0^A1Mb>M>ag<3m%H(wJN%zWjIU*r z+?preHNxJ2dvRyn_7$F!nB{+jG ztUM1LsJo*?A21Vuyg^NZ2o$!qAkY)#yt%AB-Q&|UiC5c;EVO%qbFWgULDS&4mcNrb zFL3Qiw+Do*$GG#MUxpRnV^!gh@ytaBf|d)i?`VXKa*jKZm;-)#{cL_b3D#i6z5$v2 zV4u5_O6Wdk5Jd?_;he89{Ac6w{fe;_de^3JbBP)nYT5;`ijThU2^S>So}ZGDK%mL~ zH&*enx6nHLdT=zm7Y6ZoN|AE!o-{B4L8(%Ui#8O+pu<&lG2f{@VfN?03z3P6{QvYy zoMOSwZ1@02em8==0{cg)AJ`hY7@Az^2Fre1U|m@0+?Pvo+nWou&Ii~04AJ4Z%srzg z<1~>Opt~qtOymowRri8Vh2TMgO}?yUH7Ak48f|@0m=Un_tEB8*woL%2>y*B<#({6j zaIH6HvMM_g;TE^8;q9vx?Qd_$Ou*|v2#nXupj_Qkx4O`&9xwycnWF)5oIqlqo6t8P zj}utO5pmh%(zsJpEXJor`KM3IxTnb2HoW(VU8JUTht8CgoPU*;MAY?sX5~EIgOT|B z^JmxBDlU{N+9|W^b*Xg)5f!xhugo}7Qvv8YYX}_A#NYRN^QJ6fyRzG^lxx1U(kmNH z6pRH@M2+Jxlw43m@##7^tpNeqoYxSoROj{~p~@xSxz$CYPe$l@NH*3=%sq-tW)F~B z0f0s`Asrr@5KhS5@A8_EU_44-XVUE}z8UO+N$ehwHI_5{QI%Qwj(aKUu-0&$e-8Z) z+k;G!{|9?VZnDZ@p55+LjK@7V_7HNhu0OzPHeBcj(YZwJk2ghYYFUReDpoyhYNpov zH)8SQJf?(#B(VU-r6CmDitm}{x)$5lRa&YMnK@x^;TJp7Ya!x_p~Ug=Y2sTZy?+6V z#4R^iD@dvDqK8%O-@;nBNS2uMQsTY;1Lg;A846f^V5YACQ>XLZ+`)NV`v)-(bQ@N! z7(ZxpKnGHS?psMSrVgLZ6$XWe}V!{%AmN z+((rdPC41M>&?f|yjK-7>dUnZUnW6vD^Y5sx3i0ZsQ`*I(Bm;XZ;QZ%F+b#hU!4rq z7c})k&vtcogROSu=Uze+T74C#0h(0kE-#)Ky>H+-04vX(%X3u}HD2j1$Wi z&8%l`Q;6yp{;>d*ugP0AL%)2psNWeX^4G*Oe|eB80vABWK|%5wh2XWI?g##nuZT8| zrokV7Dj-$owc={$E1*Q(nzlicDMiH@eu5ff8J7(8#W@eu^*Wne1~if9s<&t5B-nK` zMq!X9-Wc~aA%4gT_;6k-ujO>Ir0hioI2k5>1rZ4gk`P&1HvcGbyhL9D<>Fxwa~k~m zIT5?xrg{js6M!GIBt@Rz{Jg(wIP~pKVhIb5;JC8plLpO1S``{CG4qTq05RCV4SKpB z5OBJegU4z6DPne0Yy~FkKLN=D{%P}uQHcj}Q{8ZswR<1KESazvIo{JE73v3P5#(7+ zq~h*z$xwcP-)TTxS9#k1G8PfCLTy^&xnDw_R0`4Z*X^YhP#=rox4^H1TKxF%KVuQ( ztH^H!{t5#+Kixaoi~aoivF(vY>v8;{;QdL&35X2`F0Zso2UA3Is)12?^c7$ z*A=*y1Ktd=YjEyNwNAA)?&x7Iv^ae{2V|B@duXlVW36h_#}&K7e)j;tV$#E+=0k!* z!?EBL`+gP5a+3KL%uQbHUs!$_gX-VZkNVwx6^m^XAb__<@OoBZAFrs5ZH1bl?FMnV zqvS_BjG-vIbE@+yOUoeQa|%ifDi4m<79R)^*Wq1 z0Kk+FecVrk#hKJ3Lxnj`h-XtYD~~AXtB^{!Pj+K4_cDa8-p6rW?^Un%;8tRsciGE5ROBBP5UpZhxC$jC zZ?+@^8TMYh1B9Jltt1aoHpl`P8+$!S9f;fMw|i#i_Cw!)FS?RaqxAXQ%PskV6xv8W z3C2`WR7g}*p&NeV<>ogPg^{+|msx4=jbKOK(LR3i+6ncIa~` zZ!<4an7Y@2&07r(jbGO&n;r{o(|VboN=HD%h6Npa$`DA46WNLKa?yBOmv|dpXoB$6 zd!HMwc8WWB!)urIHUJ=}I_s*L9z%s3*nk0TXQynmRa&=_VfC-kLJf%-{Xh$PCwEe`VWY-D*1=FO`j%Z4NoC>q)gv+%%KhrkO8!$HU`RrL zM#HOY=h&smu@vU@pzMfhzZGN9{;Zr}RnV`WGM(T}FcEKYqTXv`$MgY)qmZJxwvfzj zP?Pkn!i`eG;I&%OJ%_>9yAwqV<$U*krcj7v=v9+SRuEHfxpd>vR|1pqoX}7vw@AkT z6E{i%ZbNSe49p)67t8*yx5slk;(lQWK!+m!B-@2rWDF;hE>PI~!oml<7`-2;Jo)H5$Ko#_;|K^}kEh$x zFn4bLMVTSA29-QE@1`D@n6vo)UkQP+l!XbdsP=PKH z$dr}B9GSoKEx#W7Bu^v=c?@BLn~npEMt)-dq9=dr7`vaRwTf8J2~4B=!8|XOB_LD8 z?%OI{km;5q-T6X&eubf8L4}IZ;SXa(b~Kkp_|U#sngMVL>O_}=TQX-*c%}_}Q0NT2 zjgR7*>HXf3xXfhC!|DHBTT>y8QScPvhtKqKjvOJN`^Q@FLC5YEMRFe$+OYh2G%1$Ipv6LyTw{|Q z%@fTX!d6@?OJW#y%+LP zDd$~i)p0@>Ru#)=B>UC?78qJ(l2uuKb;kRG@S~I-51IYON3;I2W*h<2lb?lu>|jE$ zzT|@U6lpK3j_@#F)*8j=m!yB=#a)Ae5c8W%%|wK};N2Nj$%~}nbdwn)+d?l6i~nF! zTu&qD?f4#lowXnnd!s!BYPTH@I3_Dz`X~`N#gP#;Anal6MTAr^l1_XS{66*sLQD{l zF-61|B--BjX9r$|IC* z{Hh~JcP})YA?f?@=~b}R8^}gqHS$q`o}36i14fgTv~nsIVvtLmM2-dPctwFMv5M@) z@pzNgk#CY`wZa~k zR(Vj-73uzY>QHyG><&GbcT#Y~f2!!&8?#p)Ds zcDvIMc^}&t)p9MFavs*#^>wUoniEVKy54_`B;`Bsk-_hh<6K~I~(*XP2DJOR#>Y6ud28Dr@Psx1Gc)04|WH;~j8ei`F)} zaYz0r3i_UGm_1>#ozvcDSsRdn= z?&G?_bWpQ27CG(!&`gppSdq-VTWWNB#yOfXS|}Xj@#~<}7p;vW_A{Mu9q1xHf99Bd zZs4|V!o42XS--B3cH{n)MFjXDyjEs>t-VB@KS>N8shVI@55S5rtAg`5@NT0!(iO~P z5ciqB*v?dVoYDpnC_Bv}+I+8x2lo%RPW^PZ zOit@+?&ooLoJmt`mT1{hzVD}-HH9jtG0Z|8$HuR57jhdT2E@JL)Df1w5dJeW6DjNO zX{1z6gp)~FWFl!v#h1yM^Dd=Lta}yC&dBFBudH3;&)&{A;I0qz{*-OlycmRn zL6wiIHc4RAN#Mc^jncF35R^uJDlPdyjda+r?fdl!$$lHrCGtW5>_VI2w1uAVc`T57wdZep~F zd3R;1JDxbtY(7Ok4s{+j9KuJ%*S)c!VR_^<^8$XribGg&#una6f$03yH!{wpW;5c8 zXS6oK9st^>k<8}&1@~0Ikv|Mc5d$D%Ic46%za~_&Pv8=nhVH>&mL?3RvbfTT?7~2+ zZa$^Q?PLSN9$gxXIwY0HS(=4@0CEqsmeRT1w{jK+lCPFK1FOKGd^<7rJTj(j66~7K zl`RR4ubfoZJLY^p0U18sQJY~=k1-`{1`6cBuO*+vvSICEG0C{cDv=DdQL-P8y}3|J zYU=iIE`Ru=bwMjz)an2HV-`}pgjan|hCw0_t4&?Ajtw80onB|*IymsMrzX0!D^`MI z_8?@(U42};iRpHCen!>16v$i4^mb(a4!_63)%$gG z7U(-jA_BkP9`uvv?(-YKhQsi=?dkI|0gG?-KcS96%W1_|nU2LIFL;X_;algC^=Wa_ zBvFqk#je#YtFoWbd>Cyk#5lf`tD})qu!Ago)tj*&{ zpI}5nHy8{kGNq8i+Ii3yly;E1-IP2d+xh_p=_-n5p3WENb3fxQx#%2+r~OI1FML78 zvfYi0MDgHAS>#af^ZNou$S++qHN7mh!Fj4e3}&k1gAgwcNESm9&V&?3c-1}^ouAIz z-}qc1Dsn@WYDhC}u~(*dn4N}OfG8@mL&3>{7Ad9pw+c~z+1)iwvz`%TTe9n=9uKwd zOm&Wl1&lVU&mmMYy}L!e!*$$sbf&nw>jqEQVkGjJ66yu+<)*AOM9O|HO2P^7NF*@5 ziV(gYMZ=kK9;=aJ*DB$qPhh5xp_a4UVnWh88Z|-gMN9knDxs{5gtw}Z@Hm>7!~{`J z0@)g~buj8o^U{a=_!z)hWSwe$EncsMo;*!~QH4>7At0(WB`GNwn z{@9D#p9Qsl!8Is}E$#{9*a4H^&l9B=vpgvRUQOPGBg0?E1Esc#%OjZ=Dnf9UJWnF_ z>J3Kx_|%;|_talaOOrW#!Pbzxzk5O@`vANN932gb2ibb_N|FNh6T8 zPrhrKa6pW{hU1S{(~v}|61g4sDQUqdsHb9FN&Y!kIiSZZj4Qn~1`X`tLv?@Uhh6i; zo3N(D>DEbwoqoc=tZbP4u7A(DF@rO{nP%{z+TI3MVl>Ob`BLny1lXHsv1)m|`zbyY z8=Buyiep<*CUUkY?bEMQPa=)bn_>ejtqRXv&*N`)$6IsHILVQt1f(YHA1Mjv@{9+g7UDv)_Jq^l{{#p*dJR2i6KSwK zi$n4)!Rch>NksNm=gqN@XgK~$@t)p@_n3@w0Yv#OpH<@sX_3h6*W>SL9w^v{ed*az z0@_?vn3>FxC!Pn5uU|W?2$nS41}ml)k0@n}_kqd~&-&t9rLjcg)s7YBFULtWjXv-{ zV(nOM&FcExUoV*eIFam(2#=7TP!Op<98uX%yIYY(FxK$@6UoZ(gFj?IKFwLDE)9yzkZg9}ThE_kt<&*S_jTA0iEh%B$VRf*dd z9bftLyPawU_K$bll3SYXTW5&lj6NhHOeI=SI;|^1H*6}V(s*t}lu5T5J%eG*|KzhP zg2)cRUEHfAL8LXI#A!JpY0S(=A^UWI+^+4mP98n#c|l(gfo)EY2)|miO=Wn$pPE>Y zMndWnz+EizHc8@Zz5t$(XfhEvT&FqUA<7IV=5HdMvlcfAeH#PVKE5lx6j8k!?zP(o zpHG(PdYDS;d|i8fAF)q~piZO*_&s3*pFxsTN7U-0evnnZY=A3kCCN1Au-RC(>c0Xo43C6Cv&T}^DabaKIn8xW( zg-Pz$f^C>;z@nydf2|VxmE9?^`{!{A@#TaOBNffY&H=(10VT2Gb)Rvv%>8v7A;Q3; zN*@@s=VVG#zu0!`KW~FFl@j#ok`{{R)ze?io4JrN@h=Vp0c1Z@VRw@ zQx}WxHGn-yhGBRp`1_YvQVHJ;3iV7*!%ZbeE()|)0dcsGh-VU}t^M9q1ba=u@ite~ z^3mBnyYTC+VD}kRrj+6TM0O;`z~G$M2{|4u$avOR&Ix&y*6 z3KW@w{9#*x^I6Cs;x&)^N0RSs6IOarWSRdenIO{kMDyFLGkUHNCoS7zo%#a@VEm8I z4Gkx{{`?8JK_A!7dS4T*fl(iGZ=I&N3H}l)HdoX8Bfy_$bO1*Cr);MWjSkH$E{*j7 z>oB;w^??`0S9Gq*^y2$r2n8y0fffg3B@p+kwA(7=>4XJ$xNYmD>8p}|9ExHR-+n5} zq$wQMv*9S1000s%DsLAk5R^;jZw)+cMZzSVdeTg>GhJThn|!9ymrHL_N3MqQFzX!qy=u3qc6|pIr|3F~-?&^S zF%{F@>01`2MM*Oi4t+^0c$YNCQ0dwBi5?>usr*#$`uPD>!!>sTHEL{DI`hZz*fu{po9d&5cpSt!9 z>~lXM`?UK@adaBWyh0QfO4m0h=+x_dc4)_kIOyfZPaXsC;83KyPKw#6z3JD?P zZX*fRHGH(NkQD^JtpEaL$dTt=H%`@3s$k&fp=$#65~cto%~tE&nu#Big14Avs1t}) zD`ik}Yuz-P{p3`*kz3jZ9Lg!~?8SYvMIv{TZK3l=!$y~TDJGeN>Dsk`!wpxPCV2nW zVxpjl;oDENtO_Dimk_#~{THMca95;uX zjL-45Ckj;{b|1k9FC%D(Pw*ZzZ(~sgAAVK>DtPJV%Z-#w+gLdc?8q9~#6p$){@xf0 zlbs0#tN;{_y#z2#U~~%Jjt)0my1dHS2O>@ke-u;?bLia791*&oCneXYqaS35+_~A*vV;fcc8XQ^Dar}QNR7MAWvfXHdpCXn>0JRq8sp#K5}PF zp@9#jAdVW`XTQFYl9rr5a-3HxDU(`Fu5#@|TH&2L#sKWjz{7o)5@p~179%-#=C+`1t8=c&=`?QSKu3R+H=g2Pvz-s zR%v$GH-c&$D)^whXyyYbmgx1+tnW0j;~9}~nUKAzbh5zQ1VYFhY47k?3cpw-L;uYt z6d_n?pIW99VI$qLRtgICTQ^3#l7&DE)-jFf1k8T4lgW0r#98DjSk01C&ty$ca;&DP z<>Tyb-%0{6L{T~Ya?qGDAX0J4^6rd%n@S6hBcrSk>oM`t(oyz%h>9WpT|%n{SjUAD z#BMoozdY)HWD?tVW01}0FST9=_vvJ!T%Yrkt`jbL?kB~$?AB=r#EKHV?&%JV#avg5 z0j}=^r=N?Z8D&Z4^2uzC52XZ%3UR5W%+Mq4WxY^!>jU;bqv;PU#J{31G&}s8L7&G>bH-q+cU8`k|UX5V{%~)=937^ z{&AB^S2U~o0y4onOr0?EZ&g9MjRwZt2QdaFU+k!kqgv(GzLY2Q@2Vt9y+rZz%1($P z;MPdkR#GtgIj1Nvae>L~RX`(TF2T;uBnGpf$6~kmbG$;S7G1{ZBV32LG@B&HD!!Me z%=Wb%Ji@_C>L_H(itjFxGkAQ?|H7N<1klT4BzLO)=yB0A5=1`5(?%`fuSfH%&}IB; zor$N!rK4H#PSH`}O_+8@V>!v}x&un5dx-D)&b)Rkf)yo};z|{UOcBK|1KfFfVw^*U znLddyY0~6rsQHy-FkTgas9a)Qj(QZMvt-S%(+vAWu|HV1LjDJ8P{aWZCbA8{i2CI* z+J}r_M zTaB2bvz^J}A2YK5hHZ6&yyM$I0*rvN# zW-W`E0@aT!@4**5{&2?6`OB%N3Om3jSSUo^o-J+@x`xAk&TB zfxB6Z?4{+$gZ7Y!$3_7bx8G=J$?Ws@qeCY79U8DOGycuEe!#23K}$=%aXE8pIYsh= zy=)grs&yw`5yw+BwMh?i-w7A0;F(%yO!tHe*>=r*fhkgrkQs3)jPC&@nTOD2PQAld zRL^&|F#{*|J`Hv2g*0J?@jK+SICoeAD}NLd>k>vfKfCV5WLgQE!)Zxo_|O^ONbP@Y z*8+F=hYNLi*Uj$``#HEKiw}@zc$2DMjJEmsT<#PzBiWSsLe2GUjb*#OS0^x4YA@u;F5#CpL%+*kdOZD zDFF`0`FE?4r+Tdrp3HXqujsrk3HGgZ6BwV5LMS2`h8VK%-bQpI5C`7r^ovXWsIi(( zJ!=S>xtzgI6@A)GLB{lNHs7B9#8>TsRmfz6lLm7xBpKfAEB`hAaY5c3rao6~?r8&+ zxFlYqVtrZfLNI$Qy?z>V^+w5r@k3GMWIvs|Fn4d{Na@AXS4ch5 z`1Y?w05sw8_mkh{G#9jwJgn*`Ve;nPz{0;Hk zcNv`fOb`B>LK{+EVC=q6unZOkO}hz-rl$5P$WQABp%ADif2^@ zni~+~Vga7KyT>GEPn|D-*!Z*$(YpeSD=a6gG@_JK8hrnZYTBPg3gx0>a;&mj zL%8)U;&b!SG5y6y1*oGRt;*Zw26T_OTYr$xCxcQg+8t9wL$#$&Y~?a&yrN*2h9N!CNtuhJ zl-5sR(9CtpX>uKz0;)AxYx^Of&k&Jc3NbKbek_Ze&`jY2m%ci2thagHK!Xqq^Ws?3Wffdy-fcM_- zlj{n?W3+Pb+bc3!_Kv&pbx_5}_YhwzH1U{yEI$R&npd;#yQPlb6_3h&7Dz#$T|u9q zn3A}Crjj`z<6Ry-<^EW9u;=yupt2m$Zb=#eZBls;tUP-5fIfWBq>)+Xjd*!;VmxsA zm^=&vghv!Rat49RzO1dw7+-`7xL{3gE;L@AHa-QZh^PaX87d9uptJ?t@M=W|xF=u) zSzOkn{IDc2T%d{$k^hdqg|Pv%Jd2I2fLfUPPj2|)gf!Y}N0S{LOdrYTwU1k48;=)W z26VrQ`awkp9xdJV{L?uy--J!{ap!6thw)))I5tD=RK3B3@8)U8_zL&W?^9YKF7pkM zHzF|lI=3TXK8Y#ROmV*iX`hBmkl>rZ;qR}dSzFW;M0 z!}AfC250JG4(`^p2`{k=ecw&ZCe+U!*-e-{u`-5RW~ z&14b@*X%6_p)c6%#7|8!9)jaH*&#!2c*U~`v3|rsYKxdDn>xFk$a;2O_u9l$r|nc& zi!&oAV``P{p9!+S2p)a(E%+o7f3`7uDNO}=gYs$sXd^aX;+!6AoLl*`)t8v%FSP7h zhL6``6{PpS*E(`sfUQ7IX2NZs&bG0GiFp*68rMEJIS(HL(RB^vcm}jcN+0avYiqIh z&(!)r7hux<&R^N-5)t-QD-a})KjutSdIah*1ol71)y;tFkLrIx!tD^C>wUS7f2I5W z!MKc0aOs_5J_l;5hQVePFcKp1xv2zJ*1*Tb2jeF6ZlD^@b$9mA3ypmK)_X9?jP0)5 ztr2B~T`q+q9-Q~ts=S=PKM}(rvG%<8vj?OGdK}mN)7Xj8y)HhpPA1LZdhtbD?(vN8 z9WX0pT)59|#w3MW;iW7nFRb3JWkc<*GNA{i=Gry8k)c@pYW3dG1%kek%eDb5JM?SJ zF&AJl%NL*ei9Yw(eq5ybOs^X1tZ2=u!@gSI!YcZBfWBn5PwDRPNMikW_3P*dQK?~WltE=@gZ9~WRKw=i|U zPB68SeV%6wJ=nx2Dzf(~O;)R!vlGTA1Oqd!vL1oWr1+b4k>;wZO_eBrsC?L6f88+HF?wqP@Utz;FmutP;#l&YaM8?y;jEY;ZY6H zd#1E<-dEc+w?%DjPo=ZwUFK}YOLcxB*SC25O0f9WIy`EoQt`&S3xyN@2u(WH;#(da zlv57+W;S}qFCf~ET#4O-!A*J6>q!3er82#@7zZCyi7wXw90S#!1~EeERV#P}CLUBx zR>uwGmqRHVVaonGN`{=>; zA^YdGn72WP9mWav+$cK9YudQpORtn(Gr?Qx*fw2ilpQcStSsYcx zNwYN>6O%D_dWdi~?(}xc5D*t2|1=z*H?URwyVcw8kwt)%fTbI0&H9jG))}BN;a?Ot z&Iu?TQ;9k}49YNMOnX{c>sc*k1`wL1jB7vAc}|r)7)_;ld?gr97Te$w&a$raG9 zbIF;1x4-bC5c8qXI6Gr8;OTWJfZFT*Wv!0tX<>Q(^npS1ro3tFCOWs z`e4;l9*W{U;QGktrd;S^3N9!VPvGk?0ZlS1U=2>|-6y2jHqnWs%lIllOK$3%npLJV zuL<6s#_HNCpEC5f-5k?b0q11y79A*P_aPZSA&e~&A z)DpiCGIU_A52lIdc6dlW)`2OHFlv~pvsP4@w9P)%-y_tBLXizZ-qUW)N?0tVtw!aa;)2`C11eoVa^+d|{r$r+@-qbPZtCHV8n^4uiGb;RizGR}U zPj`fZ@jXhuM9a{G-?)x+*dI2*obNjGPXy|e#XOz?e~aU{7ne-WygZb z3+7-i(SEC#VD`3yLZMNQF>b5H@tW?+uLX3nnZM@v1UJ^=9d)GYt(-L=4ARbsT9pGh z&L&aAwQC1bVJ2bc?77p_&g=6M8<;(DkPY#G0_&L(Gap|T}srR zQC~H?6*N{MvLYt;4}?+#4~@q6rtQI?`#363tyrDabg+87;#HU5+`QK>z2%u4KY{`> z34TBY|M5xg0y8~3vY)=za`O4h%vWAx=U;Gp)>8|X+%}2up~_2dizH`>?0+r14gM0U zds~?ewetGz=CV;%y-0a5!~3aX6Lt3Fdn-vX$sKD)sl5Jgea^*;;!M z)K4dV2WJJ*p*fyJEGl#8)wEi!0Y4Azap_}-k*jrZKqIk_u+{8|5WMEhfk!5{Y6KkfFkN?$J#7zG3{qVc&r@WnIt|9~Dq znc%xZfez5NneI^^P{avG>8$pYprLswp6(^l=km2i!ZiK8XjkHY zaNG7B3B#!pt!KSW3Ky7dqhoJWm7|ESaV&}VG#R+IGW-!EuZ1WgMcsD_$EtvL$aFu9 zc|D4I0}ljC>Z_+T@*IA&`#KzbNnG3aOQn$@a*hKQ2YvnK{sPLw@gbr!oUn>iO&%L!Vb>MF4;G%^1^OCNOQBkSiHV!?PM zQ$-Y%{ZZgsGB}vruET_;y1MI>4?6Nufvgm%Ldd_OnG0UEeRnPf%YY{0wyQPm&@Bph zi4&f8R5)pcGU)VcPUyX!D$U2I$|>kh@l!=0329*&;8922JPBgv+0p6 zv9KJ_Z!~3x+bV~ppL^9WOCrfYase$pW9b_grV-_SRwQM!Kvb#hRq+zqYv`G5qgVoiN+$#yozmK{ z2t<}lN;Td_lZ0mheGMm530`Gt4wN&&^6N)f(}WP{a1eO1Z27tF&`*~iV9ZP-n}oiI zZ}c|#X5b04r|xL0m&dHrH@QGAVvac`X$ZP zI3r^D>QmO@i*P0Zf&BAQ7G@@%M}F;ri#xO_C`~gmqO!q@d+aH6Q($+VvVVlL(Bk)` zG8r<=D<8ogX;|ReTC4Tbrt7*i7;^^A;LJj6 zZSJ@|c*20Wj_%iyV&l!mIM&N$@TVcQRJD8Hgx^*Y?ZNg6CyYNG@wro>F@&i;Pbp&v zh|U-SpLZXK40{7O`;moIQKi5ToFXxuKL33|M2yeVNrH#*svhN zARQ8tLxW05cc(}R(%m2^-HkL1lF|}_gbb~uASK-r5)#rK(!6Wb$7k>N+wb>_KXV++ z+-u!yUDtV?arcA8H-%+9&x#Bh39%tkn4@bSS9_Ngahh;p_S`5>ij6Ur6Xme%atGF8FbDf{jX9+7f-!w-~d zUtm_kRr576K#PRkNbCbQEgf*hZ~~L=t)Q5)rOC!KKpN=kef_XC<~EDx@uqf_^!{Mn z^%t>u!0mWX`B!sPt=5f4;~4d}lh)@zNC+tN ziics9Q-CXfrE!NfISq{SEu=uzv z^H$f=Tb`>@QKS$Nn21OP15Zp_{b7$>4y2oE0R}~k3^;D3H8XNs%<7&iBqcWax z8(@!dhN*`{wYxJMXhKU3EO5`L1trr+oTjZ5aEOd;kneGe8K0V{tn<2^OM zy_7MlY#!q<<09Av9@l+@F@e8JU@`lE(hVvvbFiVwi9q(B{8wJs~*!dw^`}RZR1J-&D`a12uLt zaT{>f!BM&$uU~x6_AVs6UM)yRxvnaD)032nWl&veIAZOHBL`}sEYd8s{?IPoh0Sn6 zr!HhMw^uh@==3YMWoR3i!7c-Fdb~lSCw&(hEuG^7|A7p_r`v!Q^qrO>=9$3uhs8Wl zQKE{;*k~Q(`)CK}2C)d*2gE5)c4&-W9h`Rmm~+lQQYVtg;W8YzteLw68a5a}ap+R) z0J`VtZ1W>j05lC4f;M6I%BSt?Q7(phw-|GW&DC_bWA7Omxu- zdGX)vvXKi|ZY}Ib4U`^c!OlPtV)YqN}-C=zDS zp7z-4%F(a%UM*53hkQ|h9_LT8H-X>GH?JMFhu4sLg2R|~@%45b{m_d8=}9oUDHX(> zjVQwCC#VlxO!$QT4vZwP?@Ixvo5nisYfzG1Qxx4s7j&Fx^#gW{Wfhen_qdE4Hh+0$ zh2R;jTZ}a7_4jrR>$w&i80tyTTwgAi_4(}J;@`aL8x>$(w;C2rfSrVHrMEe$aela| zOBROXPeKT>T`a$~WH#NaH(dMRJ;O5-moh7%Nc-yoS)O-uDavuG1@HL<=@5DIyY1(I zN}51@M}d~^lYd4lDEPV^avob;eMb1Lv2X z(>K`l>=TWG-~t~+ll5_2S_53Gba&C#uON|%kvvTvzGxS@0FWL(NJsB`99l(pWv}JL zrxN5S9qhgr?iAC`-_|Asy1^O4*g)mG+k)1LjqFPA#Dx$O&0ivW`45!o!?Y$qWKPdWs&|W!(aHC(t{C!tOjU=h+QD1 z<BW(q^ogRtQoBgbVHPzp{>;>zbH6A_qCO{WTbjIWQV zAB2b$Pf%BC77eeFtj8qwD|l9{-%E_r&g$@Y6VrUZ(I&-N;Ndovr>9a z1x!~;|KRd)0X#l{vM*0sb`lB&OX5&4CF?oLw;YF%fJa*EiP?W;EO6&ZhPD)qV|HuKXR zpVMsyipWF9HG`Yb7c1QfrU?v&_e~(ML#hE;u zTMnPH+_lW$o6hmsN(ns7u2ZU%IT&REAv^5!oLX~FxT z3?L#pJY5aNc{IEXNQ01i%}`8Ie8{bJC^je!t*wW0r1=87T;1V7_)iva%iEjw(E6In zI3O)H(EV$4H}HLAKzKs2Y>#Z?wIiXCQxDDL3|&D<_+q#{W2>M>&Of(jzPxmM7=}tl zbuv}Y-Pt1HdtbNaKCa|N(x_zNeZ3Ft9NTuy#x-*k>1DtTYcS@DRF<`6JO&oh0H3QB zY8L#7T7C;JU>-wMkDR~fvYeJtxRBed?K%BD%rvGL7)M*kO)A8kTT34jjAoa2aOjv< zL_T>Er!-Q<9El{PmqUkgY85(qK;=ofB)2Jg#*tR2pD^)h{G!4>mcm?3cL^?{kvL4n zquq`Qt5!?IMRE?Lc+8acQ0-9ft!$@}m8pOlYVUlnW+hZPLPeQuYO0Uq%bTM4NJ4$# z#tG;i&F#O*0Y)0spMqbq<@;Xjp`CsYo#3_|$1&z?LkS?h(k#_^Sp|C5@5QYB3HlnX z#2Sx~NvYzCCrC^QI6FEe{5HmIL(%)DY-^K%@4)j!l=;f@P@yw$O9v;&ANRhVL&XpN zLJ&WTO);JbpyfCqzu_`fvlr2H>CTH~JMleZ4rlzpIkeb2&!ChVTa2(cCeJ~F~#wuMpnyOnO@=<5tp;na>>9HwE@vsZ{y)}^;RJ39sf7PeY7sqS*+6u|4+k7*J9je# z-LT8?wO|%+?gsjotw2S9(7t587C=lsHP5CsCxl!2QM?bJ*mOw9Yb|)1-exUde{PZ+ z^{%0O2JJ~neG+4cn_$-~fWV2~&z2kpr3-(9Acf1QsxYN;FSesHyyoX_*V|DSlZal|bi`1Qg`uBC$1r=^5$+7)GF`+pI0W4}x*!Td#bSBZ z^-G+Q80;_1eeX--6>mj<)4ErkK^tryiToVLeKVj>$Lla>Rt~aX<2%q3(r5&$NK&Tw zTw7tWh;w2lXxEFwYVQo)* z^6X8NAAzP5yq(P>Q>G2(ZlL~mKmJFg0C~VzpuZB@Q^ghOt*Q$2a1%^W-CREtII?i< zwQ2Ufb=7g_nfXd&6UO%GD}jQgVs*cA(TUeX6js$YSBCW^(VKfX z^mGfRv_9)m8p?9Jcwazcf0rmPH*$c#eCYOhogYBN@5JD8GAF>Yn}PI!n@bQ_s5`SW3c&Tm~d;_To%7VKcpYaYx5=!nU zXR;zwI4X)u4&=YqVLisra)R3s(RFg@l`E8!V@P`(W^#^C(T>LbYG$x`>|I^`m7Y+m zpIo~aJkC&q#Mm_pw&4WhIs$`;;8^9HCWW5l6}M1#u=>_nB0gq-H>67!kZ68|D1FhWP<_FWD?ezyDI3BfG*OnCQqtrlb^--{NyY)^CxJ$E zFv?yuR?dt(a#ve_rcWsmB;={KzIp2=g$E+Y#LB@X70cryH#eq6oBp^XuA1cymn=f&xwSkSjuA!V>c9YSGlUE5+>yTuOyRf8psm{sB!$v zgmVh>vr|C0{G|KLo+?eJ*~7d(_#qKxu3DU<=X9ar{?M6~?@z@EXdHRx>cgiLQ1RXy zL?ta>g3CUG3H8smOg{Q{4Oi(2BRvH0`UL;ovIJGxm z4F^jvV1TRH+?Yx*hO2JB``%|7XD<7Yb~c1xuo+O*wQ-d_35FT1w1ZY6WnpfC#_YUe zmZ&2)AhRXIzlVH-kY2NQt&_@+{5jowq&-SpS~@<>HK4}i9g*?`3xQ}aA3|chgHZ&b z6Y`&Ogv8(S(?raaoc?-+v5*sKm$kdt26p{MV&oVjP-u3UVZq@f%jmpW`U- zFESC+Ew~LH(>M?{7cR>3_>}U1Fc(EylKa)fIP27SuW;6u?9oT!rs{;)$d8BLOa^D3 zt+GNcWP487{Zji_c?vhHUq1@Nx($pMc-RkrU}SJGz3ohzA((9Q9zvzktE#N92+Ho1 zrDzm5#}4-o|KEWwh1AH2@^b843~fBdj~@_Q|?E{T*$Em0>fOB60J6`HxO4btf-PAn0_Oyk{jEvT{Pe;t6`g z88j>TAlLdkApVp}P1QP3AzxN>De18+JlLfdkihhRBN_TK0|IQ5d_OTfSM zpaYk9cwRIcgS()m3<gKJ0SNhgBLF%)x1xVP|tZt8p)8BuHs19)RhUY9*~<3_6;2X;2o5{ zVVSU`h`GaY2X>UiwhNceW^(KG`7DY|J7b0{@_+Ok)RR%3UX_w~;M3CqTKNy$r#V&P zE7*MzARYDJe{vO!BLm$ElSv)VRnLpBZ7s2uWljX%)Q9#k!fD z38<9+VP1g3Ax`nzy}(`k|8d;1#Qrh~5WANKGXjJVCF1MPPinnM#N-a^!>!%aX6s}Y zHTAPG;LO26j|*L7GFpkPu2*5JF)vdj3XXlbEPqx}emmr6K<@cU_&gR_F%;piEu=Y!G6P@cS?(yu_i$p9

}7QJPf_1jr7&+3C=ckU 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௺(7IKKBDgDCzA!hnBpeN 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 diff --git a/Icons/Screenshot.png b/Icons/Screenshot.png deleted file mode 100644 index 2dc277dfb1261f723c205d6170040dc92d699d3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7332 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 diff --git a/Icons/TwoWindows.png b/Icons/TwoWindows.png deleted file mode 100644 index 14ee3d75fb8727bc3baa25698001cf4f5abe0a00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47565 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 diff --git a/Makefile b/Makefile deleted file mode 100644 index ca072d0..0000000 --- a/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -docs: - @sourcedocs generate --min-acl private -r --spm-module Adwaita - -swiftlint: - @swiftlint --autocorrect diff --git a/README.md b/README.md index 9e74c84..c77f65a 100644 --- a/README.md +++ b/README.md @@ -4,17 +4,13 @@

- - User Manual + + Documentation · GitHub - · - - Contributor Docs -

_Adwaita_ is a framework for creating user interfaces for GNOME with an API similar to SwiftUI. @@ -22,36 +18,32 @@ _Adwaita_ is a framework for creating user interfaces for GNOME with an API simi The following code: ```swift -struct Example: View { +struct Counter: View { @State private var count = 0 var view: Body { - Text("\(count)") - .style("title-1") - .padding(50) - .topToolbar { - HeaderBar.start { - Button(icon: .default(icon: .goPrevious)) { - count -= 1 - } - Button(icon: .default(icon: .goNext)) { - count += 1 - } - } + HStack { + Button(icon: .default(icon: .goPrevious)) { + count -= 1 + } + Text("\(count)") + .style("title-1") + .frame(minWidth: 100) + Button(icon: .default(icon: .goNext)) { + count += 1 } + } } } ``` -Creates a simple counter view: +Describes a simple counter view: ![Counter Example][image-1] -More examples are available in the [demo app][1]: - -![Demo App][image-2] +More examples are available in the [demo app][1]. ## Table of Contents @@ -107,24 +99,7 @@ brew install libadwaita I recommend using the [template repository](https://github.com/AparokshaUI/AdwaitaTemplate) as a starting point. -* [Getting Started][12] - -### Basics - -* [Hello World][13] -* [Creating Views][14] -* [Windows][15] -* [Keyboard Shortcuts][16] - -### Advanced - -* [Creating Widgets][17] -* [Publishing Apps](user-manual/Advanced/PublishingApps.md) - -### Information - -* [Widgets](user-manual/Information/Widgets.md) -* [Auto-Generated Widgets](user-manual/Information/AutoGeneratedWidgets.md) +Follow the [interactive tutorial](https://aparokshaui.github.io/adwaita-swift/tutorials/table-of-contents) or [read the docs](https://aparokshaui.github.io/adwaita-swift/documentation/adwaita) in order to get to know _Adwaita for Swift_. ## Thanks @@ -137,7 +112,6 @@ I recommend using the [template repository](https://github.com/AparokshaUI/Adwai - The auto-generation of widgets is based on [Swift Cross UI](https://github.com/stackotter/swift-cross-ui) - [SwiftLint][21] for checking whether code style conventions are violated - The programming language [Swift][22] -- [SourceDocs][23] used for generating the [docs][24] [1]: Tests/ [2]: #goals @@ -162,7 +136,6 @@ I recommend using the [template repository](https://github.com/AparokshaUI/Adwai [21]: https://github.com/realm/SwiftLint [22]: https://github.com/apple/swift [23]: https://github.com/SourceDocs/SourceDocs -[24]: Documentation/Reference/README.md -[image-1]: Icons/Screenshot.png +[image-1]: Icons/Counter.png [image-2]: Icons/Demo.png diff --git a/SUMMARY.md b/SUMMARY.md deleted file mode 100644 index 44cc712..0000000 --- a/SUMMARY.md +++ /dev/null @@ -1,29 +0,0 @@ -# Table of contents - -* [Adwaita][1] -* [Getting Started][2] - -## Basics - -* [Hello World][3] -* [Creating Views][4] -* [Windows][5] -* [Keyboard Shortcuts][6] - -## Advanced - -* [Creating Widgets][7] -* [Publishing Apps](user-manual/Advanced/PublishingApps.md) - -## Information - -* [Widgets](user-manual/Information/Widgets.md) -* [Auto-Generated Widgets](user-manual/Information/AutoGeneratedWidgets.md) - -[1]: README.md -[2]: user-manual/GettingStarted.md -[3]: user-manual/Basics/HelloWorld.md -[4]: user-manual/Basics/CreatingViews.md -[5]: user-manual/Basics/Windows.md -[6]: user-manual/Basics/KeyboardShortcuts.md -[7]: user-manual/Advanced/CreatingWidgets.md diff --git a/Tests/Demo.swift b/Tests/Demo.swift index d486a95..7812ba8 100644 --- a/Tests/Demo.swift +++ b/Tests/Demo.swift @@ -131,7 +131,7 @@ struct Demo: App { developer: "david-swift", version: "Test", icon: .default(icon: .applicationXExecutable), - website: .init(string: "https://david-swift.gitbook.io/adwaita"), + website: .init(string: "https://aparokshaui.github.io/adwaita-swift/"), issues: .init(string: "https://github.com/AparokshaUI/adwaita-swift/issues") ) } diff --git a/user-manual/Advanced/CreatingWidgets.md b/user-manual/Advanced/CreatingWidgets.md deleted file mode 100644 index 2222df6..0000000 --- a/user-manual/Advanced/CreatingWidgets.md +++ /dev/null @@ -1,65 +0,0 @@ -# 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 `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 `update(_:modifiers:updateProperties:)` function, update the children's storages. -An example showcasing how to implement containers is the [Box][1] (it is auto-generated). - -[1]: ../../Sources/Adwaita/View/Generated/Box.swift diff --git a/user-manual/Advanced/PublishingApps.md b/user-manual/Advanced/PublishingApps.md deleted file mode 100644 index 506779a..0000000 --- a/user-manual/Advanced/PublishingApps.md +++ /dev/null @@ -1,45 +0,0 @@ -# Publishing Apps - -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/user-manual/Basics/CreatingViews.md b/user-manual/Basics/CreatingViews.md deleted file mode 100644 index f5f6ada..0000000 --- a/user-manual/Basics/CreatingViews.md +++ /dev/null @@ -1,156 +0,0 @@ -# Creating Views - -Views are the building blocks of your application. -A view can be as simple as the `Text` widget you have seen in the previous tutorial, or as complex as the whole content of a single window. - -## Add Views to a Window -You've already seen how to 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 simple "Hello World" apps, -it can get very messy very quickly. -You can 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 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 just 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/user-manual/Basics/HelloWorld.md b/user-manual/Basics/HelloWorld.md deleted file mode 100644 index 95dee02..0000000 --- a/user-manual/Basics/HelloWorld.md +++ /dev/null @@ -1,89 +0,0 @@ -# Hello World - -![The "HelloWorld" app][image-1] - -This is a beginner tutorial. We will create a simple "Hello, world!" app using _Adwaita_. - -## Create the Swift Package -1. Open your terminal client and navigate to a directory you want to create the package in (e.g. `~/Documents/`). -2. Create a new folder for the package using `mkdir HelloWorld`. -3. Enter the newly created folder using `cd HelloWorld`. -4. Run `swift package init --type executable` for creating a new Swift package. -5. Open the Swift package. If you are using GNOME Builder, click on `Select a Folder…` in the view that appears after opening Builder and open the `HelloWorld` folder. - -## Add the Dependency -1. Open the `Package.swift` file. -2. Add the following line of code after `name: "HelloWorld",`: -```swift -dependencies: [.package(url: "https://github.com/AparokshaUI/Adwaita", from: "0.1.1")], -``` -3. Add the dependency to the executable target: -```swift -targets: [ - // Targets are the basic building blocks of a package, defining a module or a test suite. - // Targets can depend on other targets in this package and products from dependencies. - .executableTarget( - name: "HelloWorld", - dependencies: [.product(name: "Adwaita", package: "Adwaita")] - ), -] -``` - -4. On macOS you may need to set the platform version. Add the following after `name: "HelloWorld",`: - -```swift -platforms: [.macOS(.v10_15)], -``` - -## Create the App -1. Navigate to `Sources/main.swift`. On macOS, you may have to change the file name to something else, e.g. `HelloWorld.swift`. -2. An app that uses the _Adwaita_ framework has a structure that conforms to the `App` protocol. The `scene` property returns one or more windows which provide content for display. An `@main` attribute marks it as the entry point of the app. - Replace `print("Hello, world!")` by your first app: -```swift -import Adwaita - -@main -struct HelloWorld: App { - - let id = "io.github.david_swift.HelloWorld" - var app: GTUIApp! - - var scene: Scene { - Window(id: "content") { _ in - Text("Hello, world!") - .padding() - } - } - -} -``` - -## Test the App -1. Run the executable Swift package (in GNOME Builder, press the play button, on the command line, use `swift run`). - You can see that one important component of a window in GNOME is missing: The header bar. - -## Add a Header Bar -1. If you add another view inside of the `Window`'s body, the views get aligned vertically: -```swift -import Adwaita - -@main -struct HelloWorld: App { - - let id = "io.github.david_swift.HelloWorld" - var app: GTUIApp! - - var scene: Scene { - Window(id: "content") { _ in - // Add the header bar: - HeaderBar.empty() - Text("Hello, world!") - .padding() - } - } - -} -``` -2. Run the app. - -[image-1]: ../../Icons/HelloWorld.png diff --git a/user-manual/Basics/KeyboardShortcuts.md b/user-manual/Basics/KeyboardShortcuts.md deleted file mode 100644 index c9fe87e..0000000 --- a/user-manual/Basics/KeyboardShortcuts.md +++ /dev/null @@ -1,114 +0,0 @@ -# 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/user-manual/Basics/Windows.md b/user-manual/Basics/Windows.md deleted file mode 100644 index 1546771..0000000 --- a/user-manual/Basics/Windows.md +++ /dev/null @@ -1,167 +0,0 @@ -# Windows - -![Multiple windows in an app built with _Adwaita_][image-1] - -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 -In the "HelloWorld" app, we have created a single window app. -Whenever that window was closed using the "x" button, the app terminated. -We can add multiple windows to an app. -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`. -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. -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 `addWindow(_:parent:)` function instead of the `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() - } - } - -} -``` - -## Add Modal Windows -Modal windows are windows that attach to another window. -Currently, it makes only sense to attach modal windows to windows that don't exist more than once. -```swift -@main -struct HelloWorld: App { - - let id = "io.github.david_swift.HelloWorld" - var app: GTUIApp! - - var scene: Scene { - Window(id: "content") { _ in - // ... - } - // Add modal windows - .overlay { - Window(id: "overlay") { _ in - // ... - } - } - } - -} -``` - -[image-1]: ../../Icons/TwoWindows.png diff --git a/user-manual/GettingStarted.md b/user-manual/GettingStarted.md deleted file mode 100644 index 93be7a1..0000000 --- a/user-manual/GettingStarted.md +++ /dev/null @@ -1,27 +0,0 @@ -# Getting Started - -Before you can start using _Adwaita_, you’ll need to setup some dependencies. - -## macOS -1. Install [Homebrew][1]. -2. Install Libadwaita (and thereby GTK 4): -``` -brew install libadwaita -``` - -## Linux -Install `libadwaita-devel` or `libadwaita` (or something similar, based on the package manager) as well as `gtk4-devel`, `gtk4` or similar. - -## Development -Adwaita is an open source project. Visit the [GitHub repository][2] for bug reports, feature requests, pull requests and more information. - -## Template Repository -A template repository for Adwaita app projects is available [here][3]. - -## Demo Application -A demo application showcasing Adwaita's features is available [here][4] - -[1]: https://brew.sh -[2]: https://github.com/AparokshaUI/Adwaita -[3]: https://github.com/AparokshaUI/AdwaitaTemplate -[4]: ../Tests/ diff --git a/user-manual/Information/AutoGeneratedWidgets.md b/user-manual/Information/AutoGeneratedWidgets.md deleted file mode 100644 index 7471e56..0000000 --- a/user-manual/Information/AutoGeneratedWidgets.md +++ /dev/null @@ -1,90 +0,0 @@ -# Auto-Generated Widgets - -Visit the [Libadwaita](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/) or [Gtk](https://docs.gtk.org/gtk4/index.html) docs -and find the widget you want to implement. - -There is an auto-generated interface available for many Libadwaita and Gtk widgets. -This page shows how to use them, using [AdwSplitButton](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.SplitButton.html) as an example. - -## The Initializer -The type name is the original type name without the prefix, in that case `SplitButton`. - -Most of the widgets enable initialization with an empty initializer. -Exceptions will cause a helpful error message when trying with an empty initializer. - -```swift -var view: Body { - SplitButton() -} -``` - -## Simple Properties -Properties with "simple" types, such as strings (and most other types), have -a Swift equivalent with the same name in camel case. -For example, you will find the properties `label` and `dropdown-tooltip` in the docs. -They can be used in the following way: - -```swift -var view: Body { - SplitButton() - .label("Hello") - .dropdownTooltip("World") -} -``` - -Properties that are booleans can be set implicitly to `true`: - -```swift -var view: Body { - SplitButton() - .label("Hello") - .canShrink() -} -``` - -## Signals -You can connect to signals using their names. - -```swift -var view: Body { - SplitButton() - .label("Hello") - .clicked { - print("Clicked") - } -} -``` - -## Views and Menu Models -Properties of the type `GtkWidget` can be used in the following way: -```swift - SplitButton() - .child { - ButtonContent() - .label("Hello") - .iconName("zoom-original-symbolic") - } -} -``` - -`GMenuModel` is treated similarly: -```swift -var view: Body { - SplitButton() - .label("Hello") - .menuModel(app: app) { - MenuButton("Test") { - print("Test") - } - MenuButton("World") { - print("World") - } - } -} -``` - -## Bindings -Some properties can be changed by a user action (e.g. toggles). -They expect a binding instead of a "normal" value. -Compilation error messages will be helpful in spotting those properties. - diff --git a/user-manual/Information/Widgets.md b/user-manual/Information/Widgets.md deleted file mode 100644 index 08c72c3..0000000 --- a/user-manual/Information/Widgets.md +++ /dev/null @@ -1,189 +0,0 @@ -# Widgets - -This is an overview of the available widgets and other components in _Adwaita_ that are not auto-generated or that are wrappers for easily accessing auto-generated widgets. -There are many more widgets available using auto-generation. Learn [how to use them.](AutoGeneratedWidgets.md) - -| Name | Description | Widget | -| -------------------- | ------------------------------------------------------------------- | ---------------------- | -| ViewStack | A widget that displays one of its child views based on an id. | GtkStack | -| VStack | A widget which arranges child widgets into a single column. | GtkBox | -| HStack | A widget which arranges child widgets into a single row. | GtkBox | -| Toggle | A button with two possible states, on and off. | GtkToggleButton | -| List | A widget which arranges child widgets vertically into rows. | GtkListBox | -| ForEach | Arrange dynamic widgets vertically or horizontally. | GtkBox | -| NavigationSplitView | A widget presenting sidebar and content side by side. | AdwNavigationSplitView | -| ScrollView | A container that makes its child scrollable. | GtkScrolledWindow | -| ViewSwitcher | A control for switching between different views. | AdwViewSwitcher | -| StateWrapper | A wrapper not affecting the UI which stores state information. | - | -| FormSection | A titled section, usually containing one or multiple forms. | AdwPreferencesGroup | -| Form | A static boxed list, usually containing one or multiple rows. | GtkListBox | - -### View Modifiers - -| Syntax | Description | -| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | -| `freeze(_:)` | Prevent a view from being updated. | -| `inspect(_:)` | Edit the underlying Gtk or Libadwaita widget. | -| `padding(_:_:)` | Add empty space around a view. | -| `hexpand(_:)` | Enable or disable the horizontal expansion of a view. | -| `vexpand(_:)` | Enable or disable the vertical expansion of a view. | -| `halign(_:)` | Set the horizontal alignment of a view. | -| `valign(_:)` | Set the vertical alignment of a view. | -| `frame(minWidth:minHeight:)` | Set the view’s minimum width or height. | -| `frame(maxWidth:)` | Set the view’s maximum width. | -| `frame(maxHeight:)` | Set the view’s maximum height. | -| `transition(_:)` | Assign a transition with the view that is used if it is a direct child of an EitherView. | -| `onUpdate(_:)` | Run a function every time a view gets updated. | -| `navigationTitle(_:)` | Add a title that is used if the view is a direct child of a NavigationView. | -| `style(_:)` | Add a style class to the view. | -| `onAppear(_:)` | Run when the view is rendered for the first time. | -| `inspectOnAppear(_:)` | Edit the underlying Gtk or Libadwaita class when the view is rendered for the first time. | -| `topToolbar(visible:_:)` | Add a native toolbar to the view. Normally, it contains a HeaderBar. | -| `bottomToolbar(visible:_:)` | Add a native bottom toolbar to the view. | -| `modifyContent(_:modify:)` | Replace all occurrences of a certain view type with another view. | -| `stopModifiers()` | Ignore all the `modifyContent(_:modify:)` modifiers from higher above in the view tree. | -| `toast(_:signal:)` | Show a toast on top of the view whenever the signal gets activated. | -| `toast(_:signal:button:handler:)` | Show a toast with a button on top of the view whenever the signal gets activated. | -| `overlay(_:)` | Overlay a view with another view. | -| `insensitive(_:)` | Make a view unable to detect actions. This is especially useful for overlays. | -| `onClick(handler:)` | Run a function when the user clicks on the widget. | -| `focused(_:)` | Set and observe whether a view is focused. | -| `focus(_:)` | Bind a signal that focuses the view. | -| `verticalCenter()` | Wrap a view in a `VStack` and center vertically. | -| `horizontalCenter()` | Wrap a view in an `HStack` and center horizontally. | -| `dialog(visible:title:content:)` | Add a dialog to the window containing the view. | - -### `Button` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `keyboardShortcut(_:window:)`| Create a keyboard shortcut for the window with the button's action. | -| `keyboardShortcut(_:app:)` | Create a keyboard shortcut for the application with the button's action. | - -### `HeaderBar` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `headerBarTitle(view:)` | Customize the title view in the header bar. | - -### `Text` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------------------- | -| `wrap(_:)` | Enable or disable line wrapping (expanding the text view to multiple lines if the width is narrow). | - -### `Toggle` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `checkButton()` | Use a check button design instead of a toggle. | - -### `List` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `sidebarStyle()` | Change the style of the list to match a sidebar. | - -### `OverlaySplitView` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `trailingSidebar(_:)` | Whether the sidebar is trailing to the content view. | - -### `Carousel` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `longSwipes(_:)` | Whether long swiping is enabled. | - -### `ViewSwitcher` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `wideDesign(_:)` | Whether the wide view switcher design is used. | - -### `Banner` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `button(_:handler)` | Show the banner's button and set its title and handler. | - -### `FormSection` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `description(_:)` | Set the section's description. | -| `suffix(_:)` | Set the section's suffix view. | - -### `ActionRow` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `subtitle(_:)` | Set the row's subtitle. | -| `prefix(_:)` | Set the row's prefix view. | -| `suffix(_:)` | Set the row's suffix view. | - -### `ComboRow` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `subtitle(_:)` | Set the row's subtitle. | -| `prefix(_:)` | Set the row's prefix view. | -| `suffix(_:)` | Set the row's suffix view. | - -### `EntryRow` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `onSubmit(_:)` | Add a submit button to the entry row. Run the provided closure when it gets pressed. | -| `prefix(_:)` | Set the row's prefix view. | -| `suffix(_:)` | Set the row's suffix view. | -| `secure()` | Use the secure design for password inputs etc. | - -### `SpinRow` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `subtitle(_:)` | Set the row's subtitle. | -| `prefix(_:)` | Set the row's prefix view. | -| `suffix(_:)` | Set the row's suffix view. | -| `step(_:)` | Set the increase/decrease rate of the buttons. | - -### `SwitchRow` Modifiers -| Syntax | Description | -| ---------------------------- | --------------------------------------------------------------------------------------- | -| `subtitle(_:)` | Set the row's subtitle. | -| `prefix(_:)` | Set the row's prefix view. | -| `suffix(_:)` | Set the row's suffix view. | - -### Window Types -| Name | Description | Widget | -| -------------------- | ----------------------------------------------------------------- | ---------------------- | -| Window | A simple application window. | AdwApplicationWindow | -| AboutWindow | A GNOME about window. | AdwAboutWindow | - -### Window Modifiers -| Syntax | Description | -| ------------------------------- | --------------------------------------------------------------------------------------- | -| `appKeyboardShortcut(_:action:)`| Create a keyboard shortcut available in the whole the application. | -| `quitShortcut()` | Create a keyboard shortcut for quitting the application with "Ctrl + q". | - -### `Window` Modifiers -| Syntax | Description | -| ------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | -| `keyboardShortcut(_:action:)` | Create a keyboard shortcut available in one window. | -| `closeShortcut()` | Create a keyboard shortcut for closing the window with "Ctrl + w". | -| `overlay(windows:)` | Add windows that attach to a window of this type when being presented. | -| `fileImporter(_:initialFolder:extensions:folders:onOpen:onClose:)` | Add an import file dialog. | -| `fileExporter(_:initialFolder:initialName:onSave:onClose:)` | Add an export file dialog. | -| `defaultSize(width:height:)` | Set the window's initial size. | -| `title(_:)` | Set the window's title. | -| `resizable(_:)` | Set the window's resizability. | -| `deletable(_:)` | Set the window's deletability. | -| `maximized(_:)` | Get and set whether the window is maximized. | -| `size(width:height:)` | Get and set the window's width and height. | - -### `AboutWindow` Modifiers -| Syntax | Description | -| --------------- | --------------------------------------------------------------------------------------- | -| `icon(_:)` | Set the app icon. | -| `website(_:)` | Set the app's website. | -| `issues(_:)` | Set the app's bug tracker. | - -### Menu Widgets -| Name | Description | Widget | -| -------------------- | ----------------------------------------------------------------- | ---------------------- | -| MenuButton | A button in a menu. | GMenuItem | -| MenuSection | A collection of menu widgets grouped with lines. | GMenuItem | -| Submenu | A collection of menu widgets grouped by navigation. | GMenuItem | - -### `MenuButton` Modifiers -| Syntax | Description | -| ------------------------------- | --------------------------------------------------------------------------------------- | -| `keyboardShortcut(_:)` | Assign a keyboard shortcut to the button's action. |