## Screem

2000
Matthew Colyer

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation.

Linux is a trademark of Linus Torvalds.

All other trademarks are property of their respective owners.

This is version 0.1 of Screem manual.

## Introduction

Screem is a program for editing,uploading and managing websites. It is included in the package `Screem`, which is a part of the GNOME desktop environment. This document describes version &version; of Screem

Screem can be started by selecting Screem from Developement submenu of the Main Menu, or by running the command `screem` on the command line.

## Installing

### Where can I find it?

You can find the lastest rpm and tarballed sources at Screem's Sourceforge site. http://sourceforge.net/project/?group_id=142. The lastest releases contain many new and useful features as well as bug fixes from the last release.

### What do you need?

- gnome 1.0

- gnome-libs 1.0.56

- gnome-xml 1.8.7

- libglade 0.12

- gnome-print 0.1.0

- gdk-pixbuf 0.7

- orbit

- gtk 1.2.0

- guile

### Install

By default Screem installs itself in `/usr/local`. If this isn't where your GNOME installation is then you may want to do the following at step 1 `./configure --with-gnome=gnome install path`

gnome install path is where GNOME is installed (For RedHat 6.0 this is /usr)

1.     ./configure

2.     make

3.     su

4.     make install

5.     exit

6. `make clean` (optional)

### Uninstall

Should you wish to uninstall Screem and you still have the source directory around then follow these steps:

1.     su

2.     make uninstall

3.     exit

If you no longer have the source then you can do it by hand.

This will leave a couple of files on your system, ie. the screem icon and .desktop file (used for the gnome panel menu entry)

1.     rm install path/bin/screem

2.     rm install path/lib/screem -r

3.     exit

## Setup

### Preferences

You can change the application settings through Settings Preferences . On the first tab in the preferences window you can set the default filename, editor font, syntax highlighting, inline tagging, intelligent tag completion, background color, font color, notebook tool bar and auto entity insertion.

The default filename is what is in the text box originally when you choose save or save as for an unsaved file and save as for a saved file. The default value (index.html) is probably what you want it set to.

The editor font is the font used in the edit window. You can change this to whatever suits your eyes the best. The background color changes the background of the editing window and the editor text color changes the color of the editing window text. Again you can change this to whatever suits your eyes.

You can also turn the syntax highlighting on or off. For more information on the syntax highlighting skim to the bottom of this section.

To learn more about inline tagging click here.

The intelligent tag closing looks for the last unclosed tag when you type an end tag in and copies the first word to the end tag that you are typing. This feature is valuable but if you so wish you can do so on the window.

The notebook tool bar is the tabed tool bar that holds the majority of the tag and wizard buttons for screem. If you turn it off screem moves the buttons directly back to the top of the application. The application looks less cluttered if you use the notebook tool bar, but if you find yourself constantly flipping through the tabs it might be better to get rid of the notebook tool bar.

The last option on this page is auto-entity insertion. Auto entity insertion tries to insert the HTML equivalent of irregular characters you insert. This feature can really hamper you if you do a lot of a scripting, so you might want to turn it off. On the other hand if you write pages in another language besides English it might be a good idea to leave it on.

The second tab of preferences contains the setup for special key combos for text. If you have a tag that you enter repeatedly such as a line break you might want to set a key command for it so that you don't have to type it every time. To add a key shortcut, first decide on a set of keys. Then make sure that the group of keys isn't used for anything else. You can enter the key command in two ways, you can type it in the textbox or you can hold the keys and press grab key and it will type it for you. Then go ahead and type the text you want inserted when you press that key combination. When you have all the data entered go ahead and click add and the key combo will appear in the table. If you wish to change a key combination select it from the table then make the changes and click update.

Note: If you don't click update the change will not take place.

The third tab contains the color information for syntax highlighting. Select the type of tag you wish to change the color of. Once selected choose whether you want to change the background color or the font color or both. Then click on the boxes located next the check boxes and choose the color. Hint: If you just wish to see the HTML and the normal text select the unknown tag set and change the color to whatever you want. This will highlight all tags in the document.

The fourth tab contains the helper application setup. For more information click here.

The fifth Tab is the printer setup tab. Screem uses gnome-print to render print previews as well as print. You can set the paper options as well as a few formatting options here.

Warning: In order to print the rendered HTML you must have compiled screem with gtkhtml.

The sixth tab contains just one text field and it is for the command to run the java complier on your machine. Currently the feature is unused but it might be used in later releases. So it doesn't really matter if this is correct.

### Importing Sites

If you want to import a site that was not created using Screem then all you need to do is open the site as you would for a Screem created site. The site settings dialog will open up for you to enter the site information in. Its as simple as that.

### Helpers

A helper application is a simple external program that can act as a filter. i.e. it reads the current page from the standard input, and output its results to the standard output. Screem then replaces the entire page with the output from this program Currently screem doesn't come with any helper applications.

To add a helper Select Settings Preferences Helpers Tab Insert the command and the type of files(mime type) it can work on. Then select and icon if you want and click add. To change a previous entry select it from the table make the change and click update.

Note: If you don't select update the change will not take place.

Removing helpers

To remove a helper Select Settings Preferences Helpers Then click on the helper you no longer want, then click the remove button

## Getting Started

### Creating a New Project

In Screem you can edit web sites in two different ways. You can load individual pages and edit them or you can load a project. To load an individual page goto the File Open Pages.. . Loading individual pages has several distinct disadvantages, Screem can't keep track of the pages for automatic upload, it can't change links if you move a file within Screem and you can't use templates.

You are probably wondering what a project is. A project is a group of HTML and image files that make up one site. The concept of projects is one of Screem's strong points. When you load the project file the program remembers the site specific information such as where to upload it and what templates to use. Besides just remembering site specific information it also brings up all the files in your site and displays them on the left hand side of the program. Another significant advantage of projects is that you can setup up site templates as well as page templates. That way if you have a basic site layout (like an img directory and a cgi-bin directory) Screem will create those default directories and files for you if create a site template. This can significantly reduce the time it takes to create a website from scratch.

To create a site in Screem select File New New Site... . A wizard will then appear.

#### Site Wizard

Screem site wizard

During this wizard it will ask if for the default directory and a name. The directory it is asking for is where the site will reside on your hard drive. On the next page it will ask if you want to use a site template and a page template. Before you can use a site template or a page template you must create them by File New Site Template...

Site templates are a way of standardizing your sites. You might want might want to put an image, script and download directory in all your sites. After you specify what site template you want, the program will go ahead and create those default directories and files that you specified. Page templates might contain a background image and the default layout of your site as well as the default color scheme with no page specific information in it. That way when you add a new page to your site you won't have to copy all standard layout information and you can go right to work.

The wizard then asks if you want to use CVS for your sites development.

CVS is a way for a group of people to work on a project at the same time with out breaking the code or the site. It does this by making the user editing a specific page to check it out before they start editing. That way no one else edits the page at the same time. (If you are working alone you do not need this).

The wizard then asks for your upload information. Make sure you fill this out correctly. The automatic FTP is a real time saver when used correctly! Now you have completed the site wizard. Happy editing!

### Editing

The editor has a number of useful features with which to make editing your documents easier. (at least thats the aim)

- Syntax Highlighting

- Inline tagging

- Context sensitive menu

- Auto completion

- Auto entity insertion

#### Syntax highlighting

With HTML documents all tags will be highlighted if you have this feature enabled. The tags are organised into groups and you can select a fore and back color for each group. Color coding is turned off by default to change that look at . For Perl documents there is currently only fixed syntax highlighting. The highlighting isn't done very well, but I think its better than the alternative of it being unstable and risking loosing what you are editing, as is the case with the GtkEditor widget.

#### Inline tagging

This is a particularly nice feature, by which, you get a popup menu of all the legal HTML 4.0 attributes for the current tag. It works as follows. `< BODY |>` Where the " | " character is the cursor. Now if space is pressed when the cursor is after the tag name, but still inside the `<>`pair then the popup will appear. Now you may not actually want to use the popup menu, in which case if you just ignore it andkeep typing it will disappear. This option can be disabled in the preferences if you so wish, and is turned OFF by default.

#### Context sensitive menu

A right click anywhere in the editor will popup the editor menu. This allows you to save pages, create new ones, gives closer access to the edit and CVS menus, and also allows you to execute helper applications and plugin scripts. There are two other options that may appear on the menu (when working with HTML documents) that may appear if you click on a tag. These are: `<TAG NAME>` at the top and "Tag Attributes" at the bottom

The first gives you access to the same menu as that of the inline tagging option, the second will open a dialog up which allows you to edit all the attributes for a tag at once.

If the document you are editing is a java source file then a "Java" menu will appear at the top of the context menu. This gives you access to a user definable java compiler.

#### Auto completion

This is performed whenever a < character is entered, so long as a matching > isn't found, and the cursor is placed between them ready for you to enter the tag name. The same is performed whenever a & character is entered so you can enter the entity name.

#### Auto entity insertion

Some languages use characters which are not part of the normal ascii character set, such as German letters with umlauts above them. The editor will recognise these characters when you type them and insert the appropriate HTML entity for them.

### Previewing

#### Internal Previewing

Screem provides an in program preview so you can check your pages as you go along without having to launch an exernal program.

Currently the preview window is using GtkXmHtml, which is aimed at HTML 3.2 rather than HTML 4.0 and it also has quite a few problems. The use of this will change in the future, hopefully when Gtkhtml stabilises that can be used, and also when Mozilla is ready then that will hopefully be embeded via bonobo - the Gnome OLE style object embeding mechanism.

When you want to preview a page you are working on then simply click on the preview tab and you page will be shown. There is no need to save the page first as there is with the external browsers.

One of the main problems with the GtkXmHtml widget is forms. If you are editing a page with any forms in then do not you use the built in preview. It also doesn't support things like java or javascript.

#### External Previewing

Should you wish to view a page in an external browser there are 4 options open to you:

- View in the default Gnome browser (usually set to netscape)

- View in user definable browser 1

- View in user definable browser 2

- View in user definable browser 3

Default Gnome browser

To do this you simply click on the icon, and the page will be loaded. You should save your page prior to clicking on the icon or you will not see the latest changes.

User definable browsers

When you first run Screem these will not be configured, so when you click on them a dialog will appear enabling you to set an icon to use in the toolbar, the pathname of the program to execute, and if they should use the url of the site you are editing for previewing the page. Once they have been configured they are used the same way as the default browser. If you should want to change the settings then you can simply right click on the icon and the settings dialog will appear again. The user definable browsers appear (by default) on the next toolbar along from the default browser.

### Uploading

Screem provides an upload wizard to upload any changes you make to you site easily. Only files that have changed will be uploaded to save bandwidth. The upload wizard depends on you having set a site address, upload method, path, username and password for the remote site. (You can also specify the url) The upload wizard does not currently handle uploading files which are not part of a site

The upload wizard is essentially reuses Sitecopy's code. Sitecopy is a remote website synchronization program written by Joe Orton. The wizard itself was written by Lee Mallabone, due to his experience in writing an interface for it with his excellent program Xsitecopy.

Currently the only upload method supported is FTP, although Webdav should be available I'm not sure on the status of it in the version of the sitecopy code that the wizard uses (0.7 for anyone who is wondering) If you notice there is also a local upload method. This is also not currently supported.

Because the wizard reuses sitecopy's code you can still upload your site using sitecopy or Xsitecopy, infact you can do so interchangeably with Screem. It doesn't matter. A file will be written to your `$HOME/.sitecopy` directory (which will be created if it doesn't already exist) which holds information on the files and directories in the site.

DO NOT delete the `$HOME/.sitecopy` directory or you will have to upload your entire site again.

## Windows

### Main Window

The main window of Screem houses many important items, such as the tag tree, the file list and the editing notepad. It also has a wealth of buttons and menus. Like any gnome compliant application you can tear off any of the menus. You can also tear off the button panels and place them where you want them. The screem main window is highly configurable and it if you spend the time to learn all of it's neat functions it can pay off in the long run.

#### Main Window

Screem's main window

File tree

The file tree is only used when working on a site, rather than an individual page. It allows you to open pages in the editor, or view other file types with the external application specified for that mime type.

Support is also there for copying, moving, and renaming files. With some HTML editors if you have a group of files in a project and you move or rename one of them then you need to manually go through and update all the links to that file in all your other documents. Not with SCREEM. This is automatically done for you, going through the entire site. The updating of the links in a page that has been moved is not currently implemented.

A right click anywhere on the file tree will popup a menu, allowing you to:

- Create a new page (with the page wizard)

- Create a blank page

- Delete the file/directory that was right clicked on

- Rename the file/directory that was right clicked on

- Open the file that was right clicked on

- Refresh the file tree

Tag Tree

The tag tree is a method used by Screem to give access to commonly used tags. The program is distributed with an full HTML 4.0 branch in the tree. Also if you have Bluefish (a GTK based HTML editor) installed then Screem will build branches of the tag tree out of the PHP3, RXML, and SSI functions that are provided with it.

The tag tree itself is just an xml file, stored in `$prefix/lib/screem/screem.tagtree`. There is currently no graphical editor for the tag tree at the moment so if you want to change the main one then you will need to load the file into the editor and edit it by hand.

As well as reading the tree from the above location (and the Bluefish function files in `$HOME/.bluefish` Screem will also scan `$HOME/.screem` for any . tagtree files. If you have any in there then they will be added to the tag tree upon launching Screem. Again these files will have to be edited by hand, the format can be found by looking at the main distributed tree file

Clicking on an entry in the tag tree will insert the tag (or function) that is specified. If the text has opening and closing tags then the cursor will be inserted between them ready for you to type. If however you have highlighted some text then the tags will be placed around that text

Editing Notepad

For more information check the getting started section.

For each file currently open there are three panels. The first panel contains the text field with the file loaded up so that you can edit it. The second panel contains a preview window for the curent file. The last panel contains a link view of the current page. At the moment this panel is currently unfinished

### Gallery Wizard

#### Gallery Wizard

Screem site wizard

The Gallery Wizard can be used to create image galleries from a given directory of images. It allows you to specify how many images per row, and how many rows to have per page. If the number of images in the directory is greater than the number of rows times the number of columns then another page will be created, and links between the two pages will be inserted.

All the images will have thumbnails created which will be links to the full size image. Currently the resulting files will be in the same directory as the images. This plugin can be used without having a site or page open.

### Image wizard

#### Image Wizard

Screem site wizard

The Image Wizard, as you would expect, is to help with inserting images into your HTML pages and as such provides the following features. You must have atleast one page open to use the Image Wizard.

- Preview image in the wizard so you can see what you will be inserting

- Shows initial image dimensions and size

- Auto creation of a thumbnail image if requested (of the size specified by the width/height entries)

- Width and Height number entries so you can calculate a new image size you want to use.

- The ability to copy the image to the pages location (if you are inserting an image from outside your site (or pages) directory

### CSS Wizard

#### CSS Wizard

CSS wizard

The CSS Wizard is a very powerful wizard. For all those who don't know what CSS is, CSS stands for Cascading Style Sheet. A CSS definition can be in it's own file or it can be inline with the rest of the HTML. With CSS you can define a stylesheet for your site. You can change your entire site's look and feel with CSS!

Enough about what CSS is. In order to start using the wizard you must right click and select new style. Then give this style a name so that you can call it in your HTML. Once you have created a style you can use the tabbed notebook on the right to select what attributes you want. You can have as many styles as you want, with as many attributes as you want. At the moment you can not load the CSS files into the wizard to change them so if you want to change the CSS you have to do it by hand.

WARNING: Before you get frustrated with why the style doesn't look the way you want it. The FULL CSS standard is not supported by any browser at the moment. So some of the attributes may not work.

### Email Wizard

#### Email Wizard

Email wizard

The email wizard sends the page currently being edited to the email address specified. If you want to send a friend or a co-worker the HTML page you are working on you can use this wizard. You don't have copy and paste the HTML to another program to send the page in an email. You can just open the wizard and it will do it for you. In order to use this wizard you must have at least one page open. Select the page and click the email wizard button located on the wizard button menu. Once you have the wizard open it is fairly straightforward, you fill out the correct fields and click send email.

### Entity Window

#### Entity Window

Entity window

The Entity window provides easy access to all sorts of symbols defined as entitys so that they can be display in HTML. You must have atleast one page open in order to use the Entity window. To use it just pick the entity you want and click insert.

Screem does have auto entity insertion built in. To configure it click here. To learn more about it click here.

### Form Wizard

#### Form Wizard

Form Wizard

The Form Wizard creates HTML forms. You must have atleast one page open in order to use the Form Wizard. To use the Form Wizard just fill out the nessary text boxes and click ok.

### Link Wizard

#### Link Wizard

Link Wizard

The Link Wizard creates HTML link tags. You must have atleast one page open in order to use the Form Wizard. To use the Link Wizard just fill out the nessary text boxes, choose the correct type of link and click ok.

### New Page Wizard

#### New Page Wizard

New Page Wizard

The New Page Wizard creates an skeleton HTML page. The second page prompts for nessary information such as file location as well as non-nessary information such as title and author. It also asks if you want to use a template. If you want to use a template check the chekbox and click the browse button to find the template. On the next page you can set the base colors for the page (such as background color and link colors). After that you have your skeleton page.

### Site Template Wizard

#### Site Template Wizard

Site Template Wizard

The Site Template Wizard creates a file and directory structure saved into a Screem specific file. Screem can use this file along with page templates to create a large site skeleton very quickly. When you open up the wizard you see a wizard similar to the CSS wizard. Click on the new file icon to create a new site structure then fill in the information on the right and click add when ready. If you want to create subfiles or subdirectories click on the parent directory under which you want the child and click add. When you have completed the site structure be sure to save it. If you want to make changes to a file you can use the open button to load and make changes as usual.

### SSI Wizard

#### SSI Wizard

SSI Wizard

The Server Side Include Wizard creates server side includes. Fill out the textboxes in the specific group you need and click apply for that group. When you are done click the close button in the lower right.

Note: In order for Server Side Includes to work your server must support them!

### Table Wizard

#### Table Wizard

Table Wizard

The Table Wizard creates HTML tables. Fill out the textboxes you need and when you are done click the ok button in the lower left.

### Color Wizard

#### Color Wizard

Color Wizard

The Color Wizard is a simple color dialog. You go ahead and move the color cursor to where you want. You can also manually enter the RGB values through sliders or textboxes. When you click okay the wizard produces a quoted hex value that you can use in HTML.

### Frame Wizard

#### Frame Wizard

Frame Wizard

Does this actually work?

### Find Window

#### Find Window

Find Window

The find and replace window finds your regular expression arguments in the current file or the whole project. Once it finds you expression it can replace it. To create a search you just fill out the required fields and check the options you want to use. As the find goes through all your files it lists them in a table so that you can see all affected files.

### Upload Wizard

#### Frame Wizard

Upload Wizard

For more information concerning the upload wizard click here.

### Todo Window

#### Todo Window

Todo Window

The todo window displays all the tasks currently listed in the project file. That way when inspiration hits or your one of those poeple that need a check list it's right there for you. You must have a project currently open to use this window.To add a task click the add button and enter the correct information. To edit a task you click on the task. When you have completed a task you can remove it by clicking the completed button.

### Print Preview Window

#### Frame Wizard

Print Preview Wizard

With the print preview window you can examine the output before you print it to make sure nothing is wrong and the margins are fine. You can zoom in and out and go to the next page, the last page, the previous page or the first page. You can also zoom to fit the window. You must be currently editing a page in order for the print preview to work.

You must compile Screem with GtkHtml in order to print rendered HTML.

### Spell Check Wizard

#### Spell Check Wizard

Spell Check Wizard

The spell check is the standard GNOME spelling widget. It goes through and ignores HTML and finds misspelled words and prompts you for action.

## Menus

### Menus

The menu bar, located at the top of the Main Window, provides the following commands:

File

  - New

    - New Site... Launches the Site Wizard to create a site.

    - New Page... Launches the Page Wizard.

    - New Blank Page... Creates a blank page.

    - New Site Template Launches the Site Template Wizard.

  - CTRL+O Open Site... Opens a Screem project file and launches the project.

  - CTRL+S Save Site... Saves the Site definition. NOT THE CURRENT FILE.

  - Save Site As...

  - Close Site...

  - Recent Sites Lists the four most currently edited projects.

  - Open Page...

  - Save Page...

  - Save Page As...

  - Close Page...

  - Recent Pages Lists the four most currently edited pages.

  - Print

  - CTRL+Q Quit

Edit

  - CTRL+Z Undo Undos the last action performed by the user.

  - CTRL+R Redo Undos the undos performed by the user.

  - CTRL+X Cut

  - CTRL+C Copy

  - CTRL+V Paste

  - Clear Deletes selected text.

  - Select All

  - F6 Find ... Preforms searches on all the files in your project.

  - SHIFT+F6 Find Again Repeats the last searched peformed

  - F7 Replace ... Preforms replaces in all the files in your project.

  - Goto Line Goes to the specified line

  - Uppercase tags Changes all tags and tag attributes to upper case tags in the document

  - lowercase tags Changes all tags and tag attributes to lower case tags in the document

  - Convert to XHTML Screem attempts to convert the currently open page to XHTML

  - Select Current Context Selects all the text between the last tag opening to the matching closing tag.

Insert

  - Table Launches theTable wizard.

  - SSI directive Launches theSSI wizard.

  - Link Launches theLink wizard.

  - Image Launches theImage wizard.

  - Frames Launches the Frame wizard.

  - Form Launches Form wizard.

  - Entity Launches theEntity Table.

  - Colour Launches the Color wizard.

CVS

  - Checkout Site ????

  - Update Site ????

  - Update Page ????

  - Import Site ????

  - Commit Site ????

  - Commit Page ????

Tools

  - Upload Launches the Upload wizard

  - CaSSIUS Launches the CSS wizard.

  - Site Template Launches the Site Template Wizard.

Settings

  - Site ... Launches a window that contains site specific information. Such as template files, base directory and upload information.

  - Preferences ... Allows customization of Screem.

Help

  - About shows basic information about Screem, such as author's name and version number.

  - Tip of the day displays the tip of the day dialog, which contains useful tips on using Screem.

## Buttons

### File Buttons

#### File Buttons

File Buttons

- First button - Launches the Site Wizard.

- Second button - Opens a file.

- Third button - Saves the file.

### Copy Buttons

#### Copy Buttons

Copy Buttons

- First button - Cuts.

- Second button - Copies.

- Third button - Pastes.

### Misc. Buttons

#### Misc. Buttons

Misc. Buttons

- First button - Prints.

- Second button - Launches the print preview window.[link it up]

- Third button - Launches the find and replace. [link it up]

- Fourth button - Launches the external browser.

- Fifth button - Launches todo list.[link it up]

- Sixth button - Launches the spell checker.[link it up]

### Tag Lookup

#### Tag Lookup

Tag Lookup

- Selection Field - Choose a tag to look up information on.

- Button - Incorrectly implemented.

### Wizard Buttons

#### Wizard Buttons

Wizard Buttons

- First button - Launches the color browser.

- Second button - Launches the css wizard.

- Third button - Launches the image gallery wiard.

- Fourth button - Launches the image wizard.

- Fifth button - Launches the link wizard.

- Sixth button - Launches the email wizard.

- Seventh button - Launches the table wizard.

- Eighth button - Launches the upload wizard.[link it up]

### Quick Buttons

#### Quick Buttons

Quick Buttons

- First Button - Inserts bold tags.

- Second Button - Inserts italic tags.

- Third Button - Inserts underline tags.

- Fourth Button - Inserts a bulleted list tag.

- Fifth Button - Inserts a numbered list tag.

- Sixth Button - Inserts a decrease indentation tag.

- Seventh Button - Inserts a increase indentation tag.

- Eigth Button - Inserts a left justifed paragraph.

- Ninth Button - Inserts a center justifed paragraph.

- Tenth Button - Inserts a right justifed paragraph.

- Eleventh Button - Inserts a justifed paragraph.

### External Buttons

#### External Viewer Buttons

External Viewer Buttons

- First Button - Launches first configured external browser with the current page.

- Second Button - Launches second configured external browser with the current page.

- Third Button - Launches third configured external browser with the current page.

Note the screenshot might not be the same as your configuration. To configure these buttons click here.

### Form Buttons

#### Form Buttons

Form Buttons

- First Button - Launches form wizard.

- Second Button - Inserts a text area tag.

- Third Button - Inserts an input box tag.

- Foruth Button - Inserts a file input box tag.

- Fifth Button - Inserts a form button tag.

- Sixth Button - Inserts a checkbox tag.

- Fifth Button - Inserts a radio button tag.

- Sixth Button - Inserts a selection list tag.

### Font Buttons

#### Font Buttons

Font Buttons

Not Implemented!

### Table Buttons

#### Table Buttons

Table Buttons

Not Implemented!

## Programming reference

### Conventions

The following are the intended coding style guidelines for screem, I probably haven't stuck to them everywhere though.

Indentation & Formating:

- tabs should be 8 characters.

- spaces should follow brackets: eg

- this_is_a_function( parameter, paramter );

- i = array_element[ 3 ];

- spaces should follow arithmetic symbols: eg

- i ++;

- i += 3;

- spaces should follow commas: eg

- this_is_a_function( parameter, parameter, parameter, parameter );

Naming styles:

- words in variable and function names are separated with an underscore: eg

- this_is_a_very_long_variable_name

- New types, eg structs and enums should begin with a capital letter: eg struct Type my_struct;

- words in type names are separated by starting the new words with a capital letter: eg: struct MyType my_struct;

Braces:

function braces are as follows

function() {

}

block statement braces, and brackets are as follows

if( TRUE ) {

} else {

}

while( TRUE ) {

}

etc.

Line length:

lines should be no longer than 80 characters. If a function call is longer then break it up as follows

function_call_that_wont_fit( parameter, parameter, paramter_that_would_go_over_80_chars )

If it can't be broken up try removing the spaces after brakets and commas. If it still isn't possible put the entire call on one line.

### Tag Tree

As such I have decided that the tag tree will be stored using xml. This will make it very simple to construct the tree as the xml parser can build it, then its just a simple matter of making a GtkCTreeNode for each node in the xml tree.

This will also allow a child depth of more than 1. The widget used will be changed from a GtkTree widget to a GtkCTree widget as well. this will also allow for nodes to have an icon to go with them.

As part of this the plan is as follows: the tag tree will consist of:

[image]

Screem will be distributed with the HTML node and its children as standard. The user can add any other nodes they want, such as javascript, php etc.

### Plugins

Screem utilises shared libraries as a plugin system.

If you wish to create a plugin then take a look at the colourWizard, as it is possibly the simplest code.

### Helpers

### Tasks

The following features that were mentioned in the spec for 0.1 were not implemented:

- Syntax highlighting for languages such as perl/java/php etc.

- The ability to "publish" a site was not present in the initial 0.1 release although has subsequently been added in 0.1.1 (using FTP and Webdav)

- The ability to print the rendered html was not present, and the printing of the source was efectivly useless and only present if gnome-print was installed on the system.

- Proper HTML validation wasn't really performed, although warnings were given when elements were entered which were not valid HTML 4.0

The missing features from the 0.1 specification should be included in 0.2.x

- The "tag tree" is to be extended to allow a greater depth to the tree, rather than the depth of 1 which is currently allowed. Along with this the storage of the tree is too be moved from `$HOME/.gnome/screem` to an xml file. The system is to store a global xml file which will be used by all users of Screem on the system. Users can then add more branches to the tag tree by adding separate tree files under `$HOME/.screem/*.tagtree`.

- In a similar fashion to the use of `$HOME/.screem` above plugins are to be read in the same way. The global plugins are to be loaded first, then the users `$HOME/.screem` directory is to be scanned for plugins and any that are found are should be loaded.

- Templates should be extended to be able to use entire site templates, which contain definitions of a site: ie the directory structure of a site. Upon creating a new site with a template the directory structure would be created in the sites local path. Site templates should be stored in xml files. They should be capable of containing templates for individual pages within themselves, and also for accessing templates from normal files.

- A graphical editor should be provided for creating site templates.

- There needs to be a method by which the user can select individual or groups of "helper" applications to filter pages through, rather than just executing them all in order as is currently performed.

- The ability to map the site directory to a url so that pages can be previewed which need preprocessing or cgi's executing can be viewed correctly.

- Auto tag completion should be an option in the editor so that when a < is entered then a corrosponding > will be inserted directly after it and the cursor placed between them. Also when the tag name has been entered the closing tag can be automatically added if required. This feature should be disabled when entering text in a `<SCRIPT></SCRIPT>` block as it would interfere with entering the scripting language.

- The ability to compile java files should be available, with a user defined java compiler.

- Submenus should be provided in the editor menu for other languges, mainly PHP, Perl, and Java.

- Along with the tag attribute menu a dialog should be made available from which any of the tags attributes can be changed at the same time.

- (This is only a draft specification for 0.2.x and as such is likely to be added to or altered, 0.2 will not have a complete feature set, which will be built up as releases progress through 0.2.x)

## Authors

Screem was written by David Knight (david@screem.org). To find more information about it, please visit Screem Web page. Please send all comments, suggestions, and bug reports to the Screem bug tracking database.

This manual was written by Matthew Colyer (linuxcoder@colyer.org). Please send all comments and suggestions regarding the manual tolinuxcoder@colyer.org.