/* * SPDX-License-Identifier: AGPL-3.0-or-later * Copyright (C) 2025 Sergej Görzen * This file is part of OmiLAXR. */ namespace OmiLAXR.Composers { /// /// Delegate for composer events with no additional parameters. /// Used for simple notifications from composers. /// /// The composer that triggered the event public delegate void ComposerAction(IComposer sender); /// /// Delegate for composer events with one typed parameter. /// Commonly used for statement composition events. /// /// Type of the event parameter /// The composer that triggered the event /// The event data object public delegate void ComposerAction(IComposer sender, T obj); /// /// Delegate for composer events with two typed parameters. /// Used for events that need to pass multiple related data objects. /// /// Type of the first parameter /// Type of the second parameter /// The composer that triggered the event /// The first event data object /// The second event data object public delegate void ComposerAction(IComposer sender, T1 obj1, T2 obj2); /// /// Delegate for composer events with three typed parameters. /// Used for complex events requiring multiple data objects. /// /// Type of the first parameter /// Type of the second parameter /// Type of the third parameter /// The composer that triggered the event /// The first event data object /// The second event data object /// The third event data object public delegate void ComposerAction(IComposer sender, T1 obj1, T2 obj2, T3 obj3); /// /// Delegate for composer events with four typed parameters. /// Used for very complex events requiring multiple related data objects. /// /// Type of the first parameter /// Type of the second parameter /// Type of the third parameter /// Type of the fourth parameter /// The composer that triggered the event /// The first event data object /// The second event data object /// The third event data object /// The fourth event data object public delegate void ComposerAction(IComposer sender, T1 obj1, T2 obj2, T3 obj3, T4 obj4); /// /// Delegate for composer events with five typed parameters. /// Used for highly complex events with extensive data requirements. /// /// Type of the first parameter /// Type of the second parameter /// Type of the third parameter /// Type of the fourth parameter /// Type of the fifth parameter /// The composer that triggered the event /// The first event data object /// The second event data object /// The third event data object /// The fourth event data object /// The fifth event data object public delegate void ComposerAction(IComposer sender, T1 obj1, T2 obj2, T3 obj3, T4 obj4, T5 obj5); /// /// Delegate for composer events with six typed parameters. /// Used for extremely complex events with maximum data payload. /// /// Type of the first parameter /// Type of the second parameter /// Type of the third parameter /// Type of the fourth parameter /// Type of the fifth parameter /// Type of the sixth parameter /// The composer that triggered the event /// The first event data object /// The second event data object /// The third event data object /// The fourth event data object /// The fifth event data object /// The sixth event data object public delegate void ComposerAction(IComposer sender, T1 obj1, T2 obj2, T3 obj3, T4 obj4, T5 obj5, T6 obj6); }