Graphical User Interface (GUI) Support
To provide developers maximum flexibility and adhere to the concept of a framework, OpenEaagles purposely does not provide a default GUI. In other words, OpenEaagles is not a single application that is customized by a developer; it is a framework designed to build a wide variety of new applications. Because of this, the software developer also provides the main() function. This empowers developers to create their own custom main(), and utilize their favorite GUI toolkit for application development. In some cases, several of these custom applications can be connected together via interoperability networks, such as DIS, to form a complete and possibly complex simulation system.
This approach enables the framework to be used in a wide variety of ways, for example:
- Console applications that require little user interaction can be built quickly and efficiently. This can be very useful for simulation testing and validation purposes.
- OpenEaagles-based "extensions" to popular scripting languages such as Python, TCL, and Ruby, can be built to rapidly construct constructive simulations with, or without, polished GUIs. Leveraging high level scripting language features can be useful for the efficient post-processing of simulation results.
- Easier integration of OpenEaagles-based code with existing simulation applications. In some cases an existing simulation application might already provide a GUI.
- A more radical use of the framework is with FPGA devices. OpenEaagles coupled with an RTOS provides a useful environment for small embedded devices.
- The most common approach is the option to leverage the developer's favorite GUI toolkit, such as FOX, FLTK, wxWidgets and/or Qt.
This page provides several examples that demonstrate how to interface several of these x-platform GUI toolkits in concert with OpenEaagles. Compiled libraries for FOX, FLTK, and wxWidgets are in the OpenEaagles3rdParty zip file included with each OpenEaagles posted version.
----- FOX Interface Examples -----
FOX Examples
The example shown above integrates OpenEaagles graphic capabilities within a Fox main window (FX:FXMainWindow). The application sets up a real-time thread for the execution and movement of several "worms" on the canvas. The menu provides functions to rotate and translate our logo around the canvas. This package works in both Windows and Linux. Download v8.10
----- FLTK Interface Examples -----
FLTK Version 1.x-Based Examples
The example shown above integrates OpenEaagles graphic capabilities within a FLTK version 2.x main window. The application opens 2 glut windows and draws our logo as defined in input files. The translate buttons enable movement of the logo on the canvas. This package works in both Windows and Linux. Download v8.10
FLTK Version 2.x-Based Examples
Same as FLTK version 1 example. This package works in both Windows and Linux. Download v8.10
----- wxWidgets Interface Examples -----
wxWidgets Examples
The example shown above integrates OpenEaagles graphic capabilities within a wxWdigets main window. The application opens 2 glut windows and draws our logo as defined in input files. The translate buttons enable movement of the logo on the canvas. This package works in Windows and Linux. Download v8.10
