From 9a090286cd435fbf10eee24d71737f629c1d0f5c Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Fri, 18 May 2018 16:50:19 +1000 Subject: Updated documentation --- readme.txt | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'readme.txt') diff --git a/readme.txt b/readme.txt index 82a5226..67d4b40 100644 --- a/readme.txt +++ b/readme.txt @@ -1,9 +1,25 @@ +FLTK Binding for the Ada Programming Language +============================================= + + + + +This is a thick binding. In particular, dynamic allocation of FLTK objects is +not necessary as in Ada they can be placed on the stack and automatically cleaned +up. Ada 2012 iterators have also been made available for the Fl_Group and Fl_Menu +bindings. + +For documentation on what C++ method or class corresponds to what Ada function, +procedure, or package, see the /doc/index.html file. + + + + Dependencies: GNAT - FLTK @@ -28,3 +44,18 @@ For further information on the build tools, consult https://docs.adacore.com/gprbuild-docs/html/gprbuild_ug.html + + +A technical note on callbacks and overriding: + +As part of its normal operation, FLTK calls a Widget's Draw and Handle methods from its +main loop to deal with draw and input events. Since it's another part of the program +that is invoking them, even if it's a part the programmer has no direct control over, +this binding is set up so that if you override Draw or Handle, the behaviour will change. + +On the other hand, something like the Push method in tabbed groups is usually invoked +from within that same tabbed group widget's Handle method. Therefore, keeping consistency +with Ada semantics, overriding the Push method will NOT change the behaviour of the +corresponding Handle method. You must also override Handle. + + -- cgit