Menu

Tree [2513b0] main dev_2.2 V2.2b /
 History

HTTPS access


File Date Author Commit
 components 2026-06-22 Blady Blady [2513b0] Gnoga 2.2b released.
 demo 2023-04-30 Blady Blady [552251] Suppress remaining files from Password_Gen.
 deps 2024-08-11 Blady Blady [ab3e0f] UXStrings: update versus Github (https://github...
 docs 2023-01-04 Blady Blady [3ed171] Adapt user guide programs to UXStrings.
 gpr_sa 2021-10-06 Blady Blady [ec9831] Reduce the number of info compiler logs.
 rules 2019-08-24 Blady Blady [60cc4f] Improve AdaControl options.
 src 2026-06-22 Blady Blady [2513b0] Gnoga 2.2b released.
 ssl 2021-10-06 Blady Blady [d73755] Fix path of settings.gpr.
 templates 2018-05-27 Blady Blady [97d6c4] Fix typos in comments only.
 test 2024-04-30 Blady Blady [27fb14] Fix style line too long.
 test_ssl 2023-02-21 Blady Blady [0a97f2] Fix remaining issue in path of settings.gpr of ...
 tools 2021-10-06 Blady Blady [d73755] Fix path of settings.gpr.
 tutorial 2023-02-12 Bent Bracke Bent Bracke [aabf35] Minor spelling fixes in the tutorial.
 .gitignore 2026-06-22 Blady Blady [2513b0] Gnoga 2.2b released.
 AUTHORS 2022-03-06 Blady Blady [e09930] Suppress PragmARC and concerning demos as it is...
 COPYING 2014-12-08 David Botton David Botton [e0023a] Additional setup and documentation
 COPYING.DOCS 2014-12-21 David Botton David Botton [3bda8f] Spelling errors
 COPYING.RUNTIME 2014-12-08 David Botton David Botton [e0023a] Additional setup and documentation
 FAQ 2015-03-20 David Botton David Botton [7be99d] Doc changes
 HISTORY 2026-06-22 Blady Blady [2513b0] Gnoga 2.2b released.
 INSTALL 2023-12-25 Blady Blady [ad8052] Version set to V2.2-beta.
 Makefile 2024-09-08 Blady Blady [9f0303] Gnoga 2.2a released.
 README-SSL 2015-07-12 David Botton David Botton [985ec2] Update SSL proxy docs since secure.html no long...
 README.md 2026-06-22 Blady Blady [2513b0] Gnoga 2.2b released.
 TIPS.md 2023-12-25 Blady Blady [ad8052] Version set to V2.2-beta.
 TODO 2022-07-15 Blady Blady [ad8208] If present command line options gnoga-host, gno...
 alire.toml 2026-06-22 Blady Blady [2513b0] Gnoga 2.2b released.
 icon.png 2018-05-27 Blady Blady [ec8050] Add icon for Sourcetree avatar.
 lib_gnoga.gpr 2026-06-22 Blady Blady [2513b0] Gnoga 2.2b released.
 pragma_debug.adc 2019-06-22 Blady Blady [3becf9] Gnoga 1.5a released; Makefile, README, TIPS, TO...
 settings.gpr 2026-06-22 Blady Blady [2513b0] Gnoga 2.2b released.

Read Me

GNOGA - The GNU Omnificent GUI for Ada

http://www.gnoga.com

Please see the FAQ, TIPS and the docs folder for documentation.

To get started:

Install GNAT, a recent Ada 2012 compiler, see Alire.

On Windows 32 bit or Linux 32 bit if using GNAT GPL prior to 2014 you need to
modify the Makfile ATOMIC_ACCESS=GCC-built-ins

On Windows - if using TDM-GCC replace make below with mingw32-make

Either download and unarchive the stable version of Gnoga from
http://www.gnoga.com or use git to get the latest development version:

git clone git://git.code.sf.net/p/gnoga/code gnoga-code
cd gnoga-code
git checkout dev_2.2
make help # for all options and configuration values
make all

then run the snake demo or tutorials in bin folder. There are additional demos in demo folder.
Open a web browser with URL like: "http://127.0.0.1:8080".

See INSTALL for more information about installing Gnoga as a standard gcc/ada
library if desired.

GNAT Studio is available with 'make studio' which launches GNAT Studio with the
actual values of compiler switches for gnoga.gpr project.

  • For the demos: open demo/demo_agg.gpr project in GNAT Studio.
  • For the tests: open test/test_agg.gpr project in GNAT Studio.

See docs/html/user_guide.html to get started (built with make html-docs).
See docs/html/gnoga_rm/index.html for reference manual (built with make rm-docs).

Gnoga includes a copy of Dmitry A. Kazakov's Simple Components and uses it for http and websockets.
See deps/simple_components/components.htm for details.
It includes an incredible wealth of Ada components you can incorporate in your software freely and
is under the GMGPLv2.

Using Alire

In your own Alire project, add Gnoga dependency:

% alr with gnoga

Then you can import the Ada Gnoga packages in your programs and GPR projects:

with "lib_gnoga.gpr";

Note: Alire will take care of dependencies.

Here is an overview of Gnoga's framework

  1. The communication platform between the Ada code and the browser / native
    Gnoga.Server.Connection
    Gnoga.Server.Connection.Secure - https / SSL Support

  2. Binding to the HTML5 DOM and Browser
    Gnoga.Gui.Base (Not per se a binding of Node but takes its place)
    Gnoga.Gui.Element, Gnoga.Gui.Element.* (HTML Elements)
    Gnoga.Gui.Element.Canvas - HTML 5 Canvas bindings
    Gnoga.Gui.Element.SVG - HTML SVG vector graphics
    Gnoga.Gui.Element.Multimedia - HTML 5 Audio and Video
    Gnoga.Gui.Element.Style - CSS Style blocks
    Gnoga.Gui.Window, Gnoga.Gui.Navigator, Gnoga.Gui.Screen,
    Gnoga.Gui.Location
    Gnoga.Gui.Document

  3. Application start up services
    Gnoga.Server.Application.Singleton - Desktop apps
    Gnoga.Server.Application.Multi_Connect - Multi user / Web apps

  4. Gnoga higher level containers and GUI widgets
    Gnoga.Gui.Views.* - Auto layout of child elements and basis for
    custom Gnoga Ada only widgets
    Gnoga.Gui.Views.Docker - Dock child views to view sides
    Gnoga.Gui.Views.Card - Stacks of views
    Gnoga.Gui.Views.Console - Views with auto scroll down
    Gnoga.Gui.Views.Grid - Grid of views
    Gnoga.Gui.Views.Modal_Dialog - Modal views

  5. Gnoga client side application APIs
    Gnoga.Client.Storage - local persistent and session storage on browser
    Gnoga.Client.Bind_Page - Bind to all elements on pre-made HTML5 pages

  6. Gnoga database bindings and server side APIs
    Gnoga.Server.Database - support for MySQL and SQLite 3
    (for ODBC bindings see deps/simple_components)
    Gnoga.Server.Model - Active Data models like in Rails
    Gnoga.Server.Migrations - Rails like database schema migrations
    Gnoga.Server.Template_Parser - Parse files with tokens or Python 2.7
    (install libpython27-dev to use the Python parser)

  7. Gnoga development tools
    tool/gnoga_make - Generate application scaffolds
    and front ends to database tables

  8. Plugin bindings to existing JavaScript libraries
    Gnoga.Gui.Plugin.Ace_Editor - Full editor with Ada syntax highlighting
    Gnoga.Gui.Plugin.jQuery - jQuery support to access non-Gnoga Elements
    Gnoga.Gui.Plugin.jQueryUI - all the jQueryUI Interactions and Effects
    Gnoga.Gui.Plugin.jQueryUI.Widgets - the jQueryUI Widgets
    Gnoga.Gui.Plugin.Boot_Strap - general binding to Boot Strap
    Gnoga.Gui.Plugin.Messages_Boxes - dialog message boxes
    Gnoga.Gui.Plugin.MNMenu - menu construction based on list
    Gnoga.Gui.Plugin.PIXI - dynamic randering graphic elements such as sprites
    Gnoga.Gui.Plugin.JSTree - tree construction based on list
    Gnoga.Gui.Plugin.Ace_Editor.Console_IO - console emulation based on ACE

  9. Native Desktop and Mobile Application Support coming:
    Gnoga.Server.Application.Gtk_Window - Native GTK front end

Monday.com Logo