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

#if !WASM
namespace CommonHelpers {
#else
namespace CommonHelpers.WASM {
#endif

//**************************************************************************************************
[Flags]
[CLSCompliant(false)]
public enum CommonHelpersInitFlags: UInt64
{
   None = 0,

   SpecifyMainThread          = 1ul << 00,
   IsProcessOwner             = 1ul << 01,
   InteractsWithDesktop       = 1ul << 02,
   FullFunctionalMode         = 1ul << 03,
   AvoidFatalErrorOnUnhandledException
                              = 1ul << 04,
   AvoidFatalErrorOnUnhandledExceptionUnderDebugger
                              = 1ul << 05,
   AvoidFatalErrorOnAssertion = 1ul << 06,
   IgnoreFatalErrorRelatedInit= 1ul << 07,

   SecondAssemblyUsage        = 1ul << 10,
   ThirdAssemblyUsage         = 1ul << 11,
   SystemAssemblyUsage        = 1ul << 12,
   CppAssemblyUsage           = 1ul << 13,

   UserWinAssemblyUsage       = 1ul << 18,
   WFXAssemblyUsage           = 1ul << 19,

   StdAppConWrapperUsage      = 1ul << 20,
   SoundClassUsage            = 1ul << 21,
   BeeperClassUsage           = 1ul << 22,
#if !WIN32 && !WASM
   IsWASM                     = 1ul >> 31,
#endif // !WIN32 && !WASM
   Default = None,

   AvoidImplicitFatalError =
      AvoidFatalErrorOnUnhandledException |
      AvoidFatalErrorOnUnhandledExceptionUnderDebugger |
      AvoidFatalErrorOnAssertion,

   ConsoleApplicationDefaults =
      SpecifyMainThread | IsProcessOwner | StdAppConWrapperUsage,
   InteractiveConsoleApplicationDefaults =
      ConsoleApplicationDefaults |
      InteractsWithDesktop |
      SoundClassUsage | BeeperClassUsage,

   GuiApplicationMinDefaults =
      SpecifyMainThread | IsProcessOwner |
      InteractsWithDesktop |
      SoundClassUsage | BeeperClassUsage,
   StandaloneServiceMinDefaults =
      SpecifyMainThread | IsProcessOwner,
   ServerPluginApplicationMinDefaults =
      SpecifyMainThread | AvoidImplicitFatalError,

   WpfApplicationDefaults =
      GuiApplicationMinDefaults | UserWinAssemblyUsage,
   WinFormsApplicationDefaults =
      GuiApplicationMinDefaults | WFXAssemblyUsage,

   StandaloneServiceDefaults =
      StandaloneServiceMinDefaults,
   ServerPluginApplicationDefaults =
      ServerPluginApplicationMinDefaults,
}
//**************************************************************************************************

} // CommonHelpers (.WASM)
