Menu

Tree [9f0303] main dev_2.2 V2.2a /
 History

HTTPS access


File Date Author Commit
 components 2023-12-17 Blady Blady [afffcc] Improve logging implementation in a separate pa...
 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 2024-09-08 Blady Blady [9f0303] Gnoga 2.2a 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 2020-10-04 Blady Blady [be708b] UXStrings: in Text_IO change for Unicode_Charac...
 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 2024-09-08 Blady Blady [9f0303] Gnoga 2.2a 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 2023-02-21 Blady Blady [0a97f2] Fix remaining issue in path of settings.gpr of ...
 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...
 icon.png 2018-05-27 Blady Blady [ec8050] Add icon for Sourcetree avatar.
 pragma_debug.adc 2019-06-22 Blady Blady [3becf9] Gnoga 1.5a released; Makefile, README, TIPS, TO...
 settings.gpr 2021-10-06 Blady Blady [ec9831] Reduce the number of info compiler logs.

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
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.

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