/// <summary> /// Delete a display. /// </summary> /// <param name="pDisplay">The display we want to delete.</param> public static void DeleteDisplay(Display pDisplay) { // Check we have good data. if (pDisplay == null) { throw new ArgumentNullException("Cannot delete a null display."); } if (pDisplay.IsDeleted()) { throw new ArgumentNullException("Cannot delete a deleted display."); } // Remove it from its surface, if attached. var pSurface = pDisplay.ActiveSurface; if (pSurface != null) { pSurface.Authority_DetachDisplay(pDisplay); } // Release any resources created for it. pDisplay.Authority_Delete(); // Remove it from the list of displays. Authority._ActiveDisplays.Remove(pDisplay); // Log the happening. That is a weird film btw. Log.Write("Display '" + pDisplay.ToString() + "' deleted.", AUTHORITY_LOG_SOURCE, Log.Type.DisplayInfo); }
/// <summary> /// Remove a display from its current surface. Use with care. /// </summary> /// <remarks>N.B You must call 'pDisplay.Delete()' when you are finished with it if you don't put it back on a surface.</remarks> /// <param name="pDisplay">The display we want to remove from its surface.</param> public static void RemoveDisplay(Display pDisplay) { // Check we have good data. if (pDisplay == null) { throw new ArgumentNullException("Cannot remove a null display."); } if (pDisplay.IsDeleted()) { throw new ArgumentNullException("Cannot remove a deleted display."); } // Remove the view from the current surface. var pOldSurface = pDisplay.ActiveSurface; if (pOldSurface != null) { pDisplay.ActiveSurface.Authority_DetachDisplay(pDisplay); } // Remove it from the list of displays. Authority._ActiveDisplays.Remove(pDisplay); // Write a log message. Log.Write("Display '" + pDisplay.ToString() + "' removed.", AUTHORITY_LOG_SOURCE, Log.Type.DisplayInfo); }
/// <summary> /// Move a display from one surface to another. /// </summary> /// <param name="pDisplay">The display we want to move.</param> /// <param name="pNewSurface">The surface we want to move it too.</param> public static void MoveDisplay(Display pDisplay, Surface pNewSurface) { // Check we have good data. if (pDisplay == null) { throw new ArgumentNullException("Cannot move a null display."); } if (pNewSurface == null) { throw new ArgumentNullException("Cannot move display to a null surface."); } if (pDisplay.IsDeleted()) { throw new ArgumentNullException("Cannot move a deleted display."); } if (pNewSurface.IsDeleted()) { throw new ArgumentNullException("Cannot move display to a deleted surface."); } // Drop if the new and old are the same. if (pDisplay.ActiveSurface == pNewSurface) { return; } // Check we can move to the new surface. if (pNewSurface.ActiveDisplay != null) { throw new Exception("Cannot move a display to the new surface because it is currently occupied."); } // Remove the view from the current surface. var pOldSurface = pDisplay.ActiveSurface; if (pOldSurface != null) { pDisplay.ActiveSurface.Authority_DetachDisplay(pDisplay); } // Attach it to the new one. pNewSurface.Authority_AttachDisplay(pDisplay); // Write a log message. Log.Write("Display moved from '" + pOldSurface.ToString() + "' to '" + pNewSurface.ToString() + "'.", AUTHORITY_LOG_SOURCE, Log.Type.DisplayInfo); }
/// <summary> /// Show a display on a given surface. /// </summary> /// <remarks>This will throw exceptions if this is not possible. Ensure neither the display is already open or the surface is occupied.</remarks> /// <param name="pDisplay">The display to show.</param> /// <param name="pSurface">The surface to show it on.</param> public static void ShowDisplay(Display pDisplay, Surface pSurface) { // Check we have good data. if (pDisplay == null) { throw new ArgumentNullException("Cannot show null display."); } if (pSurface == null) { throw new ArgumentNullException("Cannot show display on a null surface."); } if (pDisplay.IsDeleted()) { throw new ArgumentNullException("Cannot show a deleted display."); } if (pSurface.IsDeleted()) { throw new ArgumentNullException("Cannot show display on a deleted surface."); } // Check neither the display or surface are occupied. if (pDisplay.ActiveSurface != null) { throw new Exception("Cannot show this display because it is already active somewhere else."); } if (pSurface.ActiveDisplay != null) { throw new Exception("Cannot show a display on this surface because it is currently occupied."); } // Attach it to the surface. pSurface.Authority_AttachDisplay(pDisplay); Authority._ActiveDisplays.Add(pDisplay); // Write a log message. Log.Write("Attached display '" + pDisplay.ToString() + "' to surface '" + pSurface.Identifier + "'", AUTHORITY_LOG_SOURCE, Log.Type.DisplayInfo); }
/// <summary> /// Delete a display. /// </summary> /// <param name="pDisplay">The display we want to delete.</param> public static void DeleteDisplay(Display pDisplay) { // Check we have good data. if (pDisplay == null) throw new ArgumentNullException("Cannot delete a null display."); if (pDisplay.IsDeleted()) throw new ArgumentNullException("Cannot delete a deleted display."); // Remove it from its surface, if attached. var pSurface = pDisplay.ActiveSurface; if (pSurface != null) { pSurface.Authority_DetachDisplay(pDisplay); } // Release any resources created for it. pDisplay.Authority_Delete(); // Remove it from the list of displays. Authority._ActiveDisplays.Remove(pDisplay); // Log the happening. That is a weird film btw. Log.Write("Display '"+pDisplay.ToString()+"' deleted.", AUTHORITY_LOG_SOURCE, Log.Type.DisplayInfo); }
/// <summary> /// Remove a display from its current surface. Use with care. /// </summary> /// <remarks>N.B You must call 'pDisplay.Delete()' when you are finished with it if you don't put it back on a surface.</remarks> /// <param name="pDisplay">The display we want to remove from its surface.</param> public static void RemoveDisplay(Display pDisplay) { // Check we have good data. if (pDisplay == null) throw new ArgumentNullException("Cannot remove a null display."); if (pDisplay.IsDeleted()) throw new ArgumentNullException("Cannot remove a deleted display."); // Remove the view from the current surface. var pOldSurface = pDisplay.ActiveSurface; if (pOldSurface != null) pDisplay.ActiveSurface.Authority_DetachDisplay(pDisplay); // Remove it from the list of displays. Authority._ActiveDisplays.Remove(pDisplay); // Write a log message. Log.Write("Display '"+pDisplay.ToString()+"' removed.", AUTHORITY_LOG_SOURCE, Log.Type.DisplayInfo); }
/// <summary> /// Move a display from one surface to another. /// </summary> /// <param name="pDisplay">The display we want to move.</param> /// <param name="pNewSurface">The surface we want to move it too.</param> public static void MoveDisplay(Display pDisplay, Surface pNewSurface) { // Check we have good data. if (pDisplay == null) throw new ArgumentNullException("Cannot move a null display."); if (pNewSurface == null) throw new ArgumentNullException("Cannot move display to a null surface."); if (pDisplay.IsDeleted()) throw new ArgumentNullException("Cannot move a deleted display."); if (pNewSurface.IsDeleted()) throw new ArgumentNullException("Cannot move display to a deleted surface."); // Drop if the new and old are the same. if (pDisplay.ActiveSurface == pNewSurface) return; // Check we can move to the new surface. if (pNewSurface.ActiveDisplay != null) throw new Exception("Cannot move a display to the new surface because it is currently occupied."); // Remove the view from the current surface. var pOldSurface = pDisplay.ActiveSurface; if (pOldSurface != null) pDisplay.ActiveSurface.Authority_DetachDisplay(pDisplay); // Attach it to the new one. pNewSurface.Authority_AttachDisplay(pDisplay); // Write a log message. Log.Write("Display moved from '" + pOldSurface.ToString()+ "' to '"+pNewSurface.ToString()+"'.", AUTHORITY_LOG_SOURCE, Log.Type.DisplayInfo); }
/// <summary> /// Show a display on a given surface. /// </summary> /// <remarks>This will throw exceptions if this is not possible. Ensure neither the display is already open or the surface is occupied.</remarks> /// <param name="pDisplay">The display to show.</param> /// <param name="pSurface">The surface to show it on.</param> public static void ShowDisplay(Display pDisplay, Surface pSurface) { // Check we have good data. if (pDisplay == null) throw new ArgumentNullException("Cannot show null display."); if (pSurface == null) throw new ArgumentNullException("Cannot show display on a null surface."); if (pDisplay.IsDeleted()) throw new ArgumentNullException("Cannot show a deleted display."); if (pSurface.IsDeleted()) throw new ArgumentNullException("Cannot show display on a deleted surface."); // Check neither the display or surface are occupied. if (pDisplay.ActiveSurface != null) throw new Exception("Cannot show this display because it is already active somewhere else."); if (pSurface.ActiveDisplay != null) throw new Exception("Cannot show a display on this surface because it is currently occupied."); // Attach it to the surface. pSurface.Authority_AttachDisplay(pDisplay); Authority._ActiveDisplays.Add(pDisplay); // Write a log message. Log.Write("Attached display '"+pDisplay.ToString()+"' to surface '"+pSurface.Identifier+"'", AUTHORITY_LOG_SOURCE, Log.Type.DisplayInfo); }