Parrot-0.2.0 - GUI Building Tool

Phil Hunt philh@vision25.demon.co.uk
Fri, 24 Sep 99 00:58:56 GMT


[Moderator's note: see below for 0.2.0 announcement]

It looks like version 0.0.1 of Parrot, my text-based GUI builder,
will be ready within a day or so. It doesn't actually do anything
useful yet; v0.0.1 is a technology demonstration version, which
is intended to verify that the basic design is more-or-less
sensible. Would anyone like to have a look at it, and possibly 
suggest some improvements? If so, tell me, and I'll put it on
my website.

Some information about Parrot follows:


An introduction to the Parrot GUI building tool.

Parrot is a text-based GUI builder, written by Philip Hunt. It is 
intended to be used by programmers writing GUI applications. To 
use Parrot, first you create a *.par file describing your 
application's GUI. Your file might look something like this:


-----------Cut here-------------------------------
window @MyWindow "My First Window" {
   menuBar {
      menu "File" { 
         menuItem @New "New" 
         menuItem @Exit "Exit"
      }
      menu "Help" { 
         menuItem @About "About..."
      }
   }
   colLayout {
      rowLayout {
         label "First row!"
         button @Button1 "Press me"
         button @Button2 "And me"
      }
      rowLayout {
         label "Which units:"
         radioButton @inchRB "inches"
         radioButton @feetRB "feet"
         radioButton @yardRB "yards"
         radioButton @mileRB "miles"
      }
   }
}
-----------Cut here-------------------------------


Then you invoke the Parrot executable: this causes Parrot to 
create a file containing source code which, when executed, will 
display your GUI window. 

What language is Parrot's output written in? That depends on 
which _backend_ you use.

Parrot is written in two parts: a frontend, which reads in a
*.par file, like the one shown above, storing it in an 
internal data format; and a backend, which converts the internal
format into code for output.

I intend that multiple backends will be written for Parrot; this
has two advantages:

   1. someone will be able to learn one GUI builder, Parrot, and 
      then use that tool for whatever programming language they 
      are using

   2. a GUI application created in Parrot can be translated into 
      several output formats, e.g. if there is a prototype in 
      one language and the real application in another; or if 
      one is porting to a different OS or GUI toolkit.

Currently, the only backend is a demonstration one that creates
a page of HTML.

Planned backends include:

* Python using the Tkinter GUI library

* the Glade XML format (Glade is a graphical GUI builder which is
  part of the GNOME project; a Glade XML file can be used to build
  GNOME applications).

* C++ using the Qt GUI library

Parrot will also be able to read the Glade XML format and use it
to write *.par files. This means that Parrot should be interoperable 
with Glade -- someone could use the two together to build a GUI.

Anyone wishing to contribute other backends will be welcome to do 
so; hopefully Parrot will eventually encompass all GUI APIs and
prgramming languages in common use. Note that if a GUI toolkit 
doesn't have a visual builder, and someone writes a Parrot backend
for that toolkit, then once the Glade XML->parrot translator has
been written,  


Parrot is written in Python. It is copyrighted by philip Hunt and
licenced under the GNU GPL. Parrot uses version 0.4 of John Aycock's 
parsing framework described in his paper _Compiling Little Languages 
in Python_. 



== 
Phil Hunt....philh@vision25.demon.co.uk


----------------

>From: philh@vision25.demon.co.uk (Phil Hunt)
Subject: Parrot-0.2.0
Date: 05 Sep 1999 00:00:00 GMT

I've just released Parrot-0.2.0 on my website.

Parrot is a text-based GUI builder. To use it, you edit a text file
which defines what your GUI application will look like, then you
invoke Parrot from the command line; Parrot's output is source code
which when run will display the GUI application.

Currently Parrot produces Python source code for the Tkinter GUI
toolkit; other backends are planned.

Parrot is currently pre-alpha software, so don't expect it to
be particularly useful yet (or even useful at all).

Parrot's homepage is:
   http://www.vision25.demon.co.uk/prog/parrot.html

Parrot is licenced under the GNU GPL.

== 
Phil Hunt - - - - - - - - -  philh@vision25.demon.co.uk
 - Linux will be 8 years old on 17th September! See: -
http://www.vision25.demon.co.uk/prog/linuxbirthday.html


<P><A HREF="http://www.vision25.demon.co.uk/prog/parrot.html">Parrot
0.2.0</A> - prototype version of a new description-based multi-backend
GUI builder; currently supports Tkinter.  (05-Sep-99)

-- 
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address:  python-announce@python.org
Python Language Home Page:   http://www.python.org/
Python Quick Help Index:     http://www.python.org/Help.html
------------------------------------------------------------