
[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 ----------------
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 ------------------------------------------------------------
participants (1)
-
philh@vision25.demon.co.uk