public ICMessageData(string title, string message, ICMessagePriority priority) { this.title = title; this.message = message; this.priority = priority; }
//------------------------------------------------------------------------------ // Method: AddMessage // Author: Neil Holmes // Summary: add a new message to the message queue for display //------------------------------------------------------------------------------ public void AddMessage(string title, string message, ICMessagePriority priority) { int insertionIndex = 0; ICMessageData newMessage = new ICMessageData(title, message, priority); // is this an urgent message? if (newMessage.priority == ICMessagePriority.urgent) { // tell the message system to stop displaying any message it might be in the middle of stage = MessageStage.idle; // urgent messages always go at the top of the queue, in time order foreach (ICMessageData item in messageQueue) { if (item.priority != ICMessagePriority.urgent) break; else insertionIndex ++; } } else { // find the first lower-priorty message in the queue and push this one ahead of it foreach (ICMessageData item in messageQueue) { if (item.priority < newMessage.priority) break; else insertionIndex ++; } } // insert here! messageQueue.Insert(insertionIndex, newMessage); }