Description
Hello World! is the simplest Gnoga App ever. It is a single user application and will be restarted automatically after each run.
This tutorial is designed to introduce the most basic concepts of Gnoga:
- Gnoga.Application.* – Initialize connectivity and application termination.
- Gnoga.Gui.Window – The connection to the browser window.
- Gnoga.Gui.View.* – Gui element containers attached to the window.
Source code
with Gnoga.Application.Singleton;
-- Gnoga offers various types of application packages. These packages manage
-- the connectivity with the browser and your application.
--
-- The Singleton package is designed to allow for simple one time run
-- applications much like your typical desktop applications that run
-- sequentially from start to completion by one single user.
with Gnoga.Gui.Window;
-- All Gnoga GUI related packages are in Gnoga.Gui.*
-- Gnoga.Gui.Window.Window_Type abstracts the Browser window.
with Gnoga.Gui.View.Console;
-- There are many ways to write Gnoga programs, attaching a View to a
-- a Window is one of the easiest ways. Different view types provide
-- different ways to organize or place GUI elements.
-- Gnoga.Gui.View.Console.Console_Type automatically adds new GUI elements
-- to the next row in the view and provides scroll bars for the over flow.
-- It also provides a simple console like way to add HTML or text to the
-- page using its Put_Line method.
procedure Tutorial_01 is
use Gnoga;
use all type Gnoga.String;
My_Window : Gnoga.Gui.Window.Window_Type;
-- My_Window will be connected during Initialize to the browser.
My_View : Gnoga.Gui.View.Console.Console_View_Type;
-- My_View when created will attach itself to My_Window and manage our GUI
-- view in the browser.
begin
Gnoga.Application.Title ("Tutorial 01");
-- Before starting our application, we can set its title.
-- This title will appear on the browser title when the browser
-- connects to our application.
-- Gnoga.Application.Open_URL_* could be used here to start the user's
-- default browser pointing to this tutorial application.
Gnoga.Application.Singleton.Initialize (Main_Window => My_Window);
-- Initialize will start Gnoga's http services and websocket services
-- to wait for a connection from the browser. There are ways to start
-- a browser and have it connected on startup or use customized browser
-- applications to give your application a native executable like any other
-- desktop application. This will be explored in future tutorials.
--
-- Initialize blocks until the browser connects. My_Window is now a
-- live connection to the browser.
-- For example we can tell the browser to pop an alert box:
My_Window.Alert ("Hello World!");
-- Now that we got the alert box out of the way, lets create our View
My_View.Create (My_Window);
-- The Console_View_Type has the handy ability to shut down the application
-- when the browser window is closed.
-- Now we can now start talking to our view
My_View.Put_HTML ("<H1>Hello World!</H1>");
for i in 1 .. 50 loop
My_View.Put_Line (Image (i) & " - lines and lines overflowing the window.");
end loop;
Gnoga.Application.Singleton.End_Application;
-- Terminate our connection to the browser and end the application
end Tutorial_01;
Project file
with "settings.gpr";
with "gnoga.gpr";
project Tutorial_01 is
for Object_Dir use Settings.Obj_Dir;
for Exec_Dir use Settings.Exe_Dir;
for Main use ("tutorial_01.adb");
for Create_Missing_Dirs use Settings'Create_Missing_Dirs;
package Compiler renames Settings.Compiler;
package Binder renames Settings.Binder;
package Linker renames Settings.Linker;
package Pretty_Printer renames Settings.Pretty_Printer;
end Tutorial_01;