------------------------------------------------------------------------------- -- NAME (body) : logo-controller.adb -- AUTHOR : Pascal Pignard -- ROLE : User interface control unit. -- NOTES : Ada 2012, GNOGA 1.4 beta -- -- COPYRIGHT : (c) Pascal Pignard 2018 -- LICENCE : CeCILL V2 (http://www.cecill.info) -- CONTACT : http://blady.pagesperso-orange.fr ------------------------------------------------------------------------------- with Gnoga.Gui.Base; with Gnoga.Gui.View.Grid; with Gnoga.Gui.Plugin.Pixi; with Gnoga.Gui.Plugin.Ace_Editor; with Gnoga.Gui.Navigator; with ZanyBlue.Text.Locales; with Logo.View; with Logo.Parser; with Logo.Engine; with logo_messages.logo_Strings; package body Logo.Controller is procedure On_Click (Object : in out Gnoga.Gui.Base.Base_Type'Class); procedure On_Click (Object : in out Gnoga.Gui.Base.Base_Type'Class) is View : constant Logo.View.Default_View_Access := Logo.View.Default_View_Access (Object.Parent.Parent); begin View.Label_Text.Put_Line ("Click"); -- gnoga.log(ada.Tags.Expanded_Name(Object.Parent.Parent'tag)); end On_Click; task type Interpreter (View : Logo.View.Default_View_Access) is entry Start; end Interpreter; task body Interpreter is begin accept Start; loop View.Console.Put (logo_messages.logo_Strings.Format_ACTN (View.Locale)); Logo.Engine.Action (Logo.Engine.Decode (View.Console.Get_Line, View.Primitives), View); end loop; end Interpreter; procedure Default (Main_Window : in out Gnoga.Gui.Window.Window_Type'Class; Connection : access Gnoga.Application.Multi_Connect.Connection_Holder_Type) is pragma Unreferenced (Connection); View : constant Logo.View.Default_View_Access := new Logo.View.Default_View_Type; Worker : Interpreter (View); begin View.Dynamic; Gnoga.Gui.Plugin.Pixi.Load_PIXI (Main_Window); Gnoga.Gui.Plugin.Ace_Editor.Load_Ace_Editor (Main_Window); View.Locale := ZanyBlue.Text.Locales.Make_Locale_Narrow (Gnoga.Gui.Navigator.Language (Main_Window) & ".ISO8859-1"); Main_Window.Document.Title (logo_messages.logo_Strings.Format_TITL (View.Locale)); -- Gnoga.Server.Connection.HTML_On_Close -- (Main_Window.Connection_ID, -- logo_messages.logo_Strings.Format_APPE (View.Locale)); Logo.Parser.Fill (View.Primitives, View.Locale); View.Create (Main_Window, Gnoga.Gui.View.Grid.Horizontal_Split); -- View.Click_Button.On_Click_Handler (On_Click'Access); Gnoga.Activate_Exception_Handler (Worker'Identity); Worker.Start; end Default; begin Gnoga.Application.Multi_Connect.On_Connect_Handler (Default'Access, "default"); end Logo.Controller;