//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// CommonHelpers satellite library | Author: Sergei Y.Kitáev
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
using System;

namespace CommonHelpers {

//**************************************************************************************************
partial class HConsole {
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/// <exception cref="InvalidOperationException" />
/// <exception cref="HAbortConsoleInputException" />
public int PerformNumberedDialog(bool insertBlankLine,string caption,string[] actions)
{
   return PerformNumberedDialog(insertBlankLine,caption,actions,(bool[])null);
}

//--------------------------------------------------------------------------------------------------

/// <exception cref="InvalidOperationException" />
/// <exception cref="HAbortConsoleInputException" />
public int PerformNumberedDialog( bool insertBlankLine,
                                  string caption,
                                  string[] actions,
                                  [HOptional] string cancelAction )
{
   return PerformNumberedDialog(
      insertBlankLine, caption, actions, null,
      cancelAction );
}

/// <exception cref="InvalidOperationException" />
/// <exception cref="HAbortConsoleInputException" />
public int PerformNumberedDialog( bool insertBlankLine,
                                  string caption,
                                  string[] actions,
                                  [HOptional] string cancelAction,
                                  [HOptional] ConsoleKey cancelKey )
{
   return PerformNumberedDialog(
      insertBlankLine, caption, actions, null,
      cancelAction, cancelKey );
}

/// <exception cref="InvalidOperationException" />
/// <exception cref="HAbortConsoleInputException" />
public int PerformNumberedDialog( bool insertBlankLine,
                                  string caption,
                                  string[] actions,
                                  [HOptional] string cancelAction,
                                  [HOptional] ConsoleKey cancelKey,
                                  [HOptional] ConsoleModifiers cancelModifiers )
{
   return PerformNumberedDialog(
      insertBlankLine, caption, actions, null,
      cancelAction, cancelKey, cancelModifiers );
}

//==================================================================================================

/// <exception cref="InvalidOperationException" />
/// <exception cref="HAbortConsoleInputException" />
public int PerformNumberedDialog( bool insertBlankLine,
                                  string caption,
                                  [HOptional] string zeroAction,
                                  string[] actions )
{
   return PerformNumberedDialog(
      insertBlankLine, caption,
      zeroAction, actions,
      (bool[])null );
}

//--------------------------------------------------------------------------------------------------

/// <exception cref="InvalidOperationException" />
/// <exception cref="HAbortConsoleInputException" />
public int PerformNumberedDialog( bool insertBlankLine,
                                  string caption,
                                  [HOptional] string zeroAction,
                                  string[] actions,
                                  [HOptional] string cancelAction )
{
   return PerformNumberedDialog(
      insertBlankLine, caption,
      zeroAction, actions, null,
      cancelAction );
}

/// <exception cref="InvalidOperationException" />
/// <exception cref="HAbortConsoleInputException" />
public int PerformNumberedDialog( bool insertBlankLine,
                                  string caption,
                                  [HOptional] string zeroAction,
                                  string[] actions,
                                  [HOptional] string cancelAction,
                                  [HOptional] ConsoleKey cancelKey )
{
   return PerformNumberedDialog(
      insertBlankLine, caption,
      zeroAction, actions, null,
      cancelAction, cancelKey );
}

/// <exception cref="InvalidOperationException" />
/// <exception cref="HAbortConsoleInputException" />
public int PerformNumberedDialog( bool insertBlankLine,
                                  string caption,
                                  [HOptional] string zeroAction,
                                  string[] actions,
                                  [HOptional] string cancelAction,
                                  [HOptional] ConsoleKey cancelKey,
                                  [HOptional] ConsoleModifiers cancelModifiers )
{
   return PerformNumberedDialog(
      insertBlankLine, caption,
      zeroAction, actions, null,
      cancelAction, cancelKey, cancelModifiers );
}

//==================================================================================================

/// <exception cref="InvalidOperationException" />
/// <exception cref="HAbortConsoleInputException" />
public int PerformNumberedDialog( bool insertBlankLine,
                                  string caption,
                                  [HOptional] string zeroAction,
                                  bool placeZeroActionDown,
                                  string[] actions )
{
   return PerformNumberedDialog(
      insertBlankLine, caption,
      zeroAction, placeZeroActionDown,
      actions, (bool[])null );
}

//--------------------------------------------------------------------------------------------------

/// <exception cref="InvalidOperationException" />
/// <exception cref="HAbortConsoleInputException" />
public int PerformNumberedDialog( bool insertBlankLine,
                                  string caption,
                                  [HOptional] string zeroAction,
                                  bool placeZeroActionDown,
                                  string[] actions,
                                  [HOptional] string cancelAction )
{
   return PerformNumberedDialog(
      insertBlankLine, caption,
      zeroAction, placeZeroActionDown, actions, null,
      cancelAction );
}

/// <exception cref="InvalidOperationException" />
/// <exception cref="HAbortConsoleInputException" />
public int PerformNumberedDialog( bool insertBlankLine,
                                  string caption,
                                  [HOptional] string zeroAction,
                                  bool placeZeroActionDown,
                                  string[] actions,
                                  [HOptional] string cancelAction,
                                  [HOptional] ConsoleKey cancelKey )
{
   return PerformNumberedDialog(
      insertBlankLine, caption,
      zeroAction, placeZeroActionDown, actions, null,
      cancelAction, cancelKey );
}

/// <exception cref="InvalidOperationException" />
/// <exception cref="HAbortConsoleInputException" />
public int PerformNumberedDialog( bool insertBlankLine,
                                  string caption,
                                  [HOptional] string zeroAction,
                                  bool placeZeroActionDown,
                                  string[] actions,
                                  [HOptional] string cancelAction,
                                  [HOptional] ConsoleKey cancelKey,
                                  [HOptional] ConsoleModifiers cancelModifiers )
{
   return PerformNumberedDialog(
      insertBlankLine, caption,
      zeroAction, placeZeroActionDown, actions, null,
      cancelAction, cancelKey, cancelModifiers );
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
} // HConsole
//**************************************************************************************************

} // CommonHelpers
