75 lines
2.0 KiB
Swift
75 lines
2.0 KiB
Swift
//
|
||
// WidgetConfiguration.swift
|
||
// Adwaita
|
||
//
|
||
// Created by david-swift on 14.01.24.
|
||
//
|
||
|
||
import Foundation
|
||
|
||
/// The configuration for a single widget.
|
||
struct WidgetConfiguration {
|
||
|
||
/// The class name.
|
||
var `class`: String
|
||
/// The name of the Swift structure.
|
||
var name: String?
|
||
/// Explicitly set the C initializer.
|
||
var initializer: String?
|
||
/// The properties that should be treated as bindings.
|
||
var bindings: [BindingConfiguration] = []
|
||
/// The dynamic widget.
|
||
var dynamicWidget: DynamicWidget?
|
||
/// The static widgets.
|
||
var staticWidgets: [StaticWidget] = []
|
||
/// Non-optional properties.
|
||
var requiredProperties: [String] = []
|
||
/// Excluded properties.
|
||
var excludeProperties: [String] = []
|
||
/// Excluded signals.
|
||
var excludeSignals: [String] = []
|
||
/// Whether to cast the type.
|
||
var cast = false
|
||
/// Conditions for when to update a property.
|
||
var setConditions: [String: String] = [:]
|
||
/// Properties that are set in the end of an update.
|
||
var lastProperties: [String] = []
|
||
/// Manually add setters which do not follow common practices.
|
||
var setters: [String] = []
|
||
/// Whether the initializer of the widget should not be public in Swift.
|
||
var internalInitializer = false
|
||
|
||
/// The configuration for a binding.
|
||
struct BindingConfiguration {
|
||
|
||
/// The property.
|
||
var property: String
|
||
/// The signal. If not specified, use "notify::property-name".
|
||
var signal: String?
|
||
|
||
}
|
||
|
||
/// The configuration for a dynamic widget.
|
||
struct DynamicWidget {
|
||
|
||
/// The insert function.
|
||
var insert: String
|
||
/// The remove function.
|
||
var remove: String
|
||
/// Get a child to remove from its index.
|
||
var getElement: String = "index.cInt"
|
||
|
||
}
|
||
|
||
/// The configuration for a static widget.
|
||
struct StaticWidget {
|
||
|
||
/// The widget's name.
|
||
var name: String
|
||
/// The function for adding a child.
|
||
var add: String
|
||
|
||
}
|
||
|
||
}
|