1. package Applications.Shell is 
  2.  
  3. private 
  4.  
  5.     -- An abstract command-line application class without a window. 
  6.     type Shell_Application is abstract new Application with null record; 
  7.  
  8.     -- Closes the application and releases all resources. Do not call this if 
  9.     -- the application didn't successfully initialize. This should be called 
  10.     -- last by an overriding implementation. 
  11.     procedure Close( this : access Shell_Application ); 
  12.  
  13.     -- Returns a string announcing the product. It is formatted as: 
  14.     -- [APPNAME] & " v[VERSION] - [COMPANY] Copyright (C) [BUILD_YEAR] 
  15.     function Get_Announce( this : access Shell_Application ) return String; 
  16.  
  17.     -- Initializes the shell application without a graphics window. By default, 
  18.     -- Allegro will be initialized with SYSTEM_NONE and will only perform basic 
  19.     -- operations. To enable the power of Allegro, call Init(1) instead. Returns 
  20.     -- True on success. If initialization fails, Close will be called 
  21.     -- automatically to clean up. No exceptions will be raised. This should be 
  22.     -- called first by an overriding implementation. 
  23.     function Init( this : access Shell_Application ) return Boolean; 
  24.  
  25.     -- Initializes the shell application without a graphics window. Allegro will 
  26.     -- be initialized with SYSTEM_NONE and will only perform basic operations 
  27.     -- unless 'enableAllegro' is set True. Unless your application needs to 
  28.     -- take advantage of the power of Allegro (ex: image processing) set it to 
  29.     -- False. Returns True on success. If initialization fails, Close will be 
  30.     -- called automatically to clean up. No exceptions will be raised. This 
  31.     -- should be called first by an overriding implementation. 
  32.     function Init( this          : access Shell_Application; 
  33.                    enableAllegro : Boolean ) return Boolean; 
  34.  
  35. end Applications.Shell;