EuGTK - Easy-to-use cross-platform GUI Library

EuGTK is a very complete, up-to-date 'toolkit' for creating your own GUI programs using GTK3 and the Euphoria programming language on Linux, Windows and OS X. Unlike most available languages and libraries, Euphoria and EuGTK allow you to program in plain concise English words.

Euphoria vs. Python: Comparison

There's no tricky syntax to get in the way. Programs can be written quickly, and tested instantaneously, without the hassles of multiple source files, makefiles, compiling, etc.
 
Euphoria is a fast interpreted language (several times faster than Python, for example), free and open source, with options to 'bind' your source code with the needed run-time code, which makes programs run faster, 'shrouding'  your code so it can't be modified, or automatically translating your Euphoria code into C, and then compiling it to an executable, which runs even faster.

The latest versions of Euphoria can be downloaded from OpenEuphoria.org. Eu version 4.1 is required, 4.1 Beta 2 is recommended:  euphoria_4.1-0.deb

The latest version of EuGTK will be at the DOWNLOAD link below. This download contains no compiled programs or executables, everything is written in plain-text Euphoria. You can read everything before running anything, if you're paranoid.

Euphoria and the EuGTK library are free to use (GPL3) for any purpose. Extensive html docs - pretty much a complete book on GTK programming with Euphoria - are included with the downloads. Please take the time to read them.

Euphoria itself runs in text mode in a terminal; EuGTK adds a GUI, which can be built manually, with simple code as shown in the screenshot here. No tricky sizing or layout code is required, and all that crazy type-casting you have to do with other programming languages doesn't exist! In addition, EuGTK provides 'wrappers' around several of the more difficult-to-use Gtk widgets (e.g. GtkListView) which makes them much easier to use. Click on the image above, and compare that with the equivalent C or Python code to do the same thing.

If you prefer, Glade can be used to visually design your program's user interface, which EuGTK can then  load  with just one line of code!


Download Links:

  EuGTK 4.15.0    tested with Gtk3.18 on Linux, Gtk3.22 on Windows (64-bit platform only), reported to run on OS-X as well. 17.2 meg.
     
Pete Eberlein's excellent cross-platform editor, written in Euphoria, uses EuGTK for the Linux/OS X GUI.
Download it here:  https://github.com/peberlein/WEE/

Platforms:

Linux is the native platform for GTK. The needed GTK3 libraries are usually installed as part of the distro, or can be added with a simple apt-get command. No setup is required, just drag the demos folder from the .gz, and drop it into your home folder. I currently prefer Mint Linux.

Windows: I have tested EuGTK with Windows 7 and Windows 10 with the 64-bit version of the Gtk libraries for Windows. Instructions for downloading the necessary GTK libraries for Windows are included. The latest Gtk3.22 library for Windows works very nicely, but is only available in 64-bit versions.

OS X is also reported to work. I don't have a computer to test this with, but others have reported success.
First, install MacPorts, and then the GTK3 library with this command: sudo port install gtk3
That should eventually install the GTK3 library to /opt/local/lib/libgtk-3.dylib.

Raspberry Pi 3: I've had good results running Euphoria on the Raspberry Pi 3, a cheap ($37.00) and tiny computer running Linux (Raspbian or Ubuntu).
See the wiki at OpenEuphoria.org and WiringPi .  Programs to be run on the RPi should be bound or compiled for faster "start-up" speed.

Cross-platform Source Code: EuGTK will automatically detect and use the appropriate libraries. Many programs can be run on all platforms without any changes. Programs which access files will need the file paths to be specified differently for different platforms - use ifdef 's for this, e.g. ifdef WINDOWS then
filename = C:\Users\whatever.


 Contents of EuGTK
  1. GtkEngine.e
  2. GtkEnums.e -- declares the GTK3 constants.
  3. GtkPrinter.e -- generic printer routines, many reports can be produced using only one or two lines of code.
  4. GtkCairo.e -- include this when drawing graphics.
  5. GtkSourceView.plugin -- include this to add a full-featured programmer's editor  "widget" in your program, handles 200+ programming languages.
  6. GtkWebKit.plugin -- include a web-browser "widget" in your program, then add your own custom features using Euphoria, if you wish. (not available for Windows)
  7. several other small support libraries -- pre-built "About" dialogs, for example, to save the programmer time.
  8. Euphoria syntax color-coding for various popular programming editors, including Geany, GEdit, the GtkSourceView plugin, etc.

Plus more than 250 demos, including several simple games, a simple web server, talking clock, new user-friendly multi-language options, plus extensive html documentation.

Requirements:

libgtk.3.12.0 or better.

Euphoria 4.1 or later. I recommend Euphoria 4.1 Beta 2 from OpenEuphoria.org

Text editor -  any plain text editor will do, but try this useful cross-platform WEE editor written in Euphoria (uses EuGTK):
https://github.com/peberlein/WEE/

GTK docs - almost mandatory! You won't get far unless you have access to these.

Help for EuGTK is available from the forum at OpenEuphoria.org

 
 


LEFT: Bear - a web page browser, html, css, and source code editor with syntax highlighting for 100+ languages, edit and test run Euphoria programs. (Linux only.)

Right: Raspberry Pi (via vnc) with text editor written in Euphoria/EuGTK. Includes syntax highlighting for 100+ languages, in only 250 lines of code.

Click on the image for a larger view.


Copyright 2005-2019 by Irv Mullins
Comments