-- This program is the last attempt of artificial intelligency with Ada.
-- Elhoim is Copyright (C) 2023 Manuel ; 
--
--   This program is free software; you can redistribute it and/or modify
--   it under the terms of the GNU General Public License as published by
--   the Free Software Foundation; either version 2 of the License, or
--   (at your option) any later version.
--
--   This program is distributed in the hope that it will be useful,
--   but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
--
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software
--   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
--
-- Date := "2023-05-01 23:29:49"
-- Version := "1.0.0b"

with Lib.Result ; 
with Lib.Buffer ; 
with Lib.Window ; 
with Lib.Enumes ;
with Lib.Styles ;
with Ansi_Console;
generic
   with package Window is new Lib.Window (<>);
package Lib.Frames is
   use Window ;
   use Enumes ;
   use Styles ;
   use Ansi_Console;
   type Frame_Enum is (
		       -- Dailog mode 
		       Header, Global_View, Input, Resp, 
		       Output, Dialog_View, Buffer, Right_View,
		       -- Organizer
		       Main, Subject, Response, Internal,
		       -- Devel mode
		       Left_View, Doc_States, Document, Cmd, Err, Cmd_Result, Visitor, 
		       Neural_States, -- 3 lines
		       Class_Ranking, -- N lines (14)
		       Top_Class, -- 3, 
		       Goal_Path,
		       Proposition, -- 3 lines
		       
		       -- Multi mode
		       Status, Shell, Edit, User, Soldes, Bank, Deal,
		       -- Shells mode
		       Shells, Search, Found		       
		      );
   
   type Frame_Record is tagged
      record
	 Style : Style_Enum := Color_And_Color;
	 Color : Color_Type := White;
	 L   : Line_Range := 1;
	 C   : Column_Range := 1;
	 H   : Line_Range := 67;
	 W   : Column_Range := 240;
	 Win : Window_record;
      end record;
      
   
   type Frame_Set is array (Frame_Enum'range) of Frame_Record;
   
end Lib.Frames ;