aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--progress.txt8
-rw-r--r--readme.md87
-rw-r--r--readme.txt61
3 files changed, 87 insertions, 69 deletions
diff --git a/progress.txt b/progress.txt
index 9130e3c..ec58583 100644
--- a/progress.txt
+++ b/progress.txt
@@ -1,15 +1,12 @@
-
Approximate Progress List
-
Overall estimate: 85+%
-
Done:
FLTK
@@ -130,14 +127,12 @@ FLTK.Widgets.Valuators.Value_Outputs
-
Partially Done:
Fl_Graphics_Driver / FLTK.Devices.Graphics
-
To-Do:
Fl_GDI_Graphics_Driver
@@ -168,7 +163,6 @@ Fl_PostScript_File_Device (internal Fl_PostScript_Graphics_Driver)
-
Never:
(C++ binary plugins) (I have no idea how to bind these)
@@ -189,7 +183,6 @@ Fl_System_Printer
-
Bugs to fix:
Fl_Wizard draw() method private/protected
@@ -209,7 +202,6 @@ possibly this hasn't been noticed because it's only visible to doxygen
-
Incomplete APIs:
FLTK
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..ce1da36
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,87 @@
+
+## FLTKAda
+
+This is a thick, high level binding for the [FLTK](https://www.fltk.org/)
+graphical widget library to the Ada programming language using only the
+standard C FFI.
+
+Types have been marshalled. Class hierarchies have been mapped to equivalent
+packages and tagged records. Controlled types have been used to make allocation
+and deallocation automatic for objects. Overrideable methods called from the
+FLTK event loop have been thunked. Iterators have been implemented. And a few
+convenience subprograms have been provided.
+
+Some of the FLTK test and example programs have also been ported.
+
+For documentation on what C++ function, method, or class corresponds to what
+Ada function, procedure, or package, see `index.html` in the `doc`
+subdirectory.
+
+
+
+#### Dependencies
+
+Build time:
+<ul>
+ <li>FLTK</li>
+ <li>g++</li>
+ <li>GNAT</li>
+ <li>GPRbuild</li>
+</ul>
+
+Run time:
+<ul>
+ <li>FLTK</li>
+</ul>
+
+It may be possible to use alternate compilation tooling but this has not been
+tested. If attempted, some manual modification of project files may be
+necessary.
+
+Note that at this time only FLTK 1.3 is supported.
+
+
+
+#### Building and Installation
+
+This repository is written to use the GNAT Project Manager build tools. To
+build, use the following command
+
+`gprbuild fltkada.gpr`
+
+There is a single build switch of `-Xbuild` which can have a value of `release`
+(the default) or `debug`. The other project files in the main directory can be
+used with similar build commands to build tests, examples, and tools.
+
+To install the binding, use
+
+`gprinstall -p -m fltkada.gpr`
+
+For further information on the build tools, consult the
+[GPRbuild docs](https://docs.adacore.com/gprbuild-docs/html/gprbuild_ug.html).
+
+
+
+#### Technical Notes
+
+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.
+
+
+
+#### Credits and Licensing
+
+Written by Jedidiah Barber.
+
+Released into the public domain. For details see `unlicense.txt`.
+
+
diff --git a/readme.txt b/readme.txt
deleted file mode 100644
index 67d4b40..0000000
--- a/readme.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-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
-
-
-
-
-How to build/install:
-
-This repository is written to use the GNAT Project Manager build tools. To build
-this FLTK-Ada binding for testing purposes, use the following command
-
- gprbuild fltkada.gpr
-
-And to install the binding, use
-
- gprinstall -p -m fltkada.gpr
-
-
-
-
-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.
-
-