/// <summary> /// Bind a Trigger to the same interface the argument trigger is bound to. /// </summary> /// <param name="trigger">A bound Trigger. </param> internal void Bind(Trigger trigger) { Bind(trigger.iTaskTrigger); }
/// <summary> /// Add the supplied Trigger to the collection. The Trigger to be added must be unbound, /// i.e. it must not be a current member of a TriggerList--this or any other. /// </summary> /// <param name="trigger">Trigger to add.</param> /// <returns>Index of added trigger.</returns> /// <exception cref="ArgumentException">Trigger being added is already bound.</exception> public int Add(Trigger trigger) { // if trigger is already bound a list throw an exception if (trigger.Bound) throw new ArgumentException("A Trigger cannot be added if it is already in a list."); // Add a trigger to the task for this TaskList ITaskTrigger iTrigger; ushort index; iTask.CreateTrigger(out index, out iTrigger); // Add the Trigger to the TaskList trigger.Bind(iTrigger); int index2 = oTriggers.Add(trigger); // Verify index is the same in task and in list if (index2 != (int)index) throw new ApplicationException("Assertion Failure"); return (int)index; }
/// <summary> /// Test to see if trigger is part of the collection. /// </summary> /// <param name="trigger">Trigger to find.</param> /// <returns>true if trigger found in collection.</returns> public bool Contains(Trigger trigger) { return (IndexOf(trigger) != -1); }
/// <summary> /// Returns the index of the supplied Trigger. /// </summary> /// <param name="trigger">Trigger to find.</param> /// <returns>Zero based index in collection, -1 if not a member.</returns> public int IndexOf(Trigger trigger) { for (int i = 0; i < Count; i++) { if (this[i].Equals(trigger)) return i; } return -1; }
/// <summary> /// Removes the trigger from the collection. If the trigger is not in /// the collection, nothing happens. (No exception.) /// </summary> /// <param name="trigger">Trigger to remove.</param> public void Remove(Trigger trigger) { int i = IndexOf(trigger); if (i != -1) RemoveAt(i); }