What is Perl Composer?

Perl Composer is a two-way visual tool used to design graphical interfaces for X-windows using Perl/GTK. The goal of it is to design a Visual Basic like tool for UNIX systems. Perl is a powerful language which can be used to replace the shell to control the execution of tasks on a Unix system. With Perl/GTK, we can design GUI front-ends for command line oriented utilities. However, a visual tool can save programmer's time in designing look-and-feel of programs and organizing the source code.

The goal of Perl Composer is to render an easy-to-use visual tool for Unix systems. The release 0.0 is just an demo of concepts. It contains a property editor, a small set of widgets, a simple project manager (powerful enough to execute our demo application) and a very simple code editor. It can be used to generate GUI interfaces with only labels, buttons and text entries. It can produce Perl source code for the designed interface. You can use the signal editor to assign action functions for signals and use the code editor to write them.

If you have looked at the screen shots, you will have noticed that everything is very primitive or even ugly. This is because it's just a demo of concepts. I don't want to spend too much time improving the look-and-feel in this version. I intend to use it to test the basic framework only. The interface will be improved at the next version.

In the rest of this document, I'll try to define and explain the individual components of Perl Composer in detail.

Basic framework

Although the interface of Perl Composer is still under development, the following components should be included in the future versions.

Palette

The Palette is composed of a set of Perl Composer aware components. Every component must define their properties, their property editor, the code generating rules and code parsing rules. Each component must define the following functions and tables:

The VP-aware components can be written by hand or using Editable Compoment Definition Language (ECDL). Most Perl Composer components are written using this definition language.

Code Editor

Currently, the code editor of Perl Composer is very simple. In the future, it will be replaced with a more sophisticated programmer's editor, which will be integrated with a degugger.

Form Viewer

Source code browser

Property Editor

Every editable component should render its property editor. The property editor created by the ECDL compiler has a notebook-like interface. We should follow this tradition unless you have good reason to violate it. For example, menu editor may violate this convention to render a more easy-to-use interface for creating a multiple level menu.

Project manager

The project manager is used to coordinate every module in a project. It contains a list of filenames in the project, information about how to build application from source codes, and some templates of form source codes, README and Copyright files.

The project file is used to contain all information about a project. You can use Project->Open to open an existing project within Perl Composer. In Perl Composer, the project file itself is a valid Perl script which is normally used to startup this application. Below is a valid Perl Composer project file,

	#!/usr/bin/perl
	use Gtk;
	require "form1.pm";
	init Gtk;
	my $form1=new form1; $form1->newWindow();
	Gtk->main;

	#@dist_file README,COPYING

This project file can be execute by 'perl ' directly. Perl Composer will extract the following project information from this file.

The format of Perl Composer projects will be more completely defined in the future. Please check the documentation for the current status of it.