/// <summary> /// Shows a message box with the specified parameters. /// </summary> /// <param name="args">The parameters.</param> /// <returns>The selected button index, or -1 on cancel, or 0 on drawn message.</returns> /// <remarks> /// <para> /// If the <see cref="MessageOptions.Draw"/> option is set then GUI or buttons are not allowed. /// A message box with no buttons is simply drawn and the execution continues immediately. /// The caller has to remove the message by redrawing or restoring the screen. /// </para> /// <para> /// If the <see cref="MessageOptions.Draw"/> option is not set then the message is modal and /// it shows at least the button OK if there are no buttons provided by the parameters. /// </para> /// <para> /// In extreme cases with too many or too long buttons /// a list box is used in order to represent buttons. /// </para> /// </remarks> public abstract int Message(MessageArgs args);