package Applications.Shell is
private
-- An abstract command-line application class without a window.
type Shell_Application is abstract new Application with null record;
-- Closes the application and releases all resources. Do not call this if
-- the application didn't successfully initialize. This should be called
-- last by an overriding implementation.
procedure Close( this : access Shell_Application );
-- Returns a string announcing the product. It is formatted as:
-- [APPNAME] & " v[VERSION] - [COMPANY] Copyright (C) [BUILD_YEAR]
function Get_Announce( this : access Shell_Application ) return String;
-- Initializes the shell application without a graphics window. By default,
-- Allegro will be initialized with SYSTEM_NONE and will only perform basic
-- operations. To enable the power of Allegro, call Init(1) instead. Returns
-- True on success. If initialization fails, Close will be called
-- automatically to clean up. No exceptions will be raised. This should be
-- called first by an overriding implementation.
function Init( this : access Shell_Application ) return Boolean;
-- Initializes the shell application without a graphics window. Allegro will
-- be initialized with SYSTEM_NONE and will only perform basic operations
-- unless 'enableAllegro' is set True. Unless your application needs to
-- take advantage of the power of Allegro (ex: image processing) set it to
-- False. Returns True on success. If initialization fails, Close will be
-- called automatically to clean up. No exceptions will be raised. This
-- should be called first by an overriding implementation.
function Init( this : access Shell_Application;
enableAllegro : Boolean ) return Boolean;
end Applications.Shell;