ANN: building GUIs with GtkReactive (plus, ProfileView changes)

I’d like to announce GtkReactive, a package for creating graphical user interfaces (GUIs) in Julia. As the name might suggest, it builds on Gtk.jl and Reactive.jl to manage the “application logic” of a GUI. Aside from writing “pure” Gtk applications, one of my hopes is that it will be useful for expanding the set of widgets for controlling GLVisualize, which uses Reactive signals for its interactivity and animations.

The documentation walks through three simple examples:

  • how to create and work with widgets
  • building a simple drawing program (mouse clicks, canvases)
  • zooming and panning

To users of ProfileView: it’s very likely that it will soon be switched from GtkUtilities to GtkReactive. One consequence is that your mousing habits may need to change a bit, because the default GtkReactive settings require you to hold down Ctrl any time you wish to zoom. This was originally intended to make users of trackpads that support gesture recognition a bit happier; a side bonus is that this cleared the way for supporting pan-drag, and thus might make your user experience that much nicer.

Enjoy!

10 Likes

Looks excellent!

Can you give a hint of how it would integrate with GLVisualize or other plotting packages. Would they draw onto a canvas? I’d have thought that was a little slow?

In the short term, the most straightforward way would be to use a Gtk window (the “toolbar”) for any widgets that aren’t available in GLVisualize yet; the rendering could happen in a separate GFLW window.

In the longer run, someone could implement OpenGL support for Gtk.jl, and generalize GLWindow to support it as a backend.