Using Outlaw Ed (The Editor)

Introduction

After a couple of failed attempt at creating a useable and userfriendly editor, we decided to start over from scratch while learning from our mistakes. Outlaw Ed is what came out of this effort, this editor has been thoroughly tested throughout the entire development phase and as a result quick input from the testers this is an editor that's actually worth the name editor. Furthermore, due to the testers being involved from the beginning, this program is very stable. So what exactly is it that makes us this confident, what does it do ... make coffee while you wait? - No not quite, the coffee you'll have to handle yourself, but we're sure you're gonna be drinking alot of it while staying up late trying out new cool things.

So why so great

First up we've taken the best from all the old editors since the early text based editor up to and including the prior wysiwyg editor. This has led to a user interface that is both friendly and well designed (which you all can thank Dirty Harry for, he was on my ass all the time when things didn't meet his standard :)).
Here are some of the main highlights

While this is all so great, there is however still a couple of things it will not do

So let's take a look at the main window, one we like to call the desktop window.


A fairly straight UI design, with the menu and the status bar. The representation of the desktop has small red dots in this image, it's the grid which forms can snap to (both grid and snapping can of course be turned off in the preferences, but we'll get to that later).
The statusbar is divided in two, the left side will show hint about the item your mouse cursor is hovering over. The right side shows the pixel coordinates for cursor, in relation to various items.

Now for a brief overview of the toolbar


Open's the new items dialog
Save the current project
Load an existing project

Adds a new design form to project

Cut object to clipboard
Copy object to clipboard
Paste object from clipboard

Toggles the Object Inspector Window
Toggles the Plugin Palette Window
Toggles the Code Snippet Window
Toggles the Sensor Listing Window

Toggles fullscreen editing


The tool windows

In order maximize workspace we have kept the toolwindow approach, which some people might find a bit strange at first, but it should only be a matter of a litte adjustment. The cons about this are that you can move around these windows so they don't cover what you're currently working on. They all offer alpha blending so you can see through them (the trackbar at the bottom of the windows will alter blending). They also offer the ability to roll up so you only see the titlebar for them, this can be done in 2 ways, you can either doubleclick the title bar or you can in preferences select auto rollup, which will do it for you automatically when the window looses focus.

There are 4 tool windows at this time, but I'll only gone into details with 2 of them.

The windows are

The object inspector

With our object like design system, this one is almost impossible to avoid. It's where you can alter parameters.


As you can see it consists of a toolbar and two tabs. The Parameter tab will list all the parameters for the currently selected object, and their values which you can alter. These values may have either a dropdown list with a selection of the values possible for that specific parameter. Or as in the case on the image a button with 3 periods, clicking this will display a dialog that will ease the selection either by presenting a color dialog, a font dialog or something completely different, the main goal is to ensure you don't have to spent much time typing in stuff. Which parameters presents what, is entirely plugin controlled. A plugin coder may leave them out all together, but then the plugin probably wouldn't be used very often because it would be a pain to set up. All parameters are color coded based on their importance to the plugin, there are 3 parameter types.

All colors can be changed to your likings preferences. But more on that later.

On the toolbar you'll see five buttons. From left to right

The +/- button are grayed out when on the content tab and the red up/down arrows are grayed out when on the parameter tab.

If you want a brief description of a parameter hold the mouse cursor over the parameter name, press and hold the right mouse button.

On the content tab you'll see a list of all the objects place on the selected object (visuals on a form, sensor and text on a visual)
Right clicking will bring up this menu

If you select a sensor you'll be given the option to replace it with another sensor, this will save time because you no longer have to delete and recreate the sensor, 2 simple clicks will do it for you.
The "add to template" option will be covered later.

The Code Snippet Window

The code snippet window is a very powerfull tool in the right hands and can be almost frightening in the wrong hands. Therefore I'll start by stressing that you should only use this tool if you have a general understand for CML. It will show the object you currently have selected, in pure CML. It will start at the base node and then provide all the subnodes for the object.

Let's cast a quick glance at the toolbar for this window.
From left to right.

We're sorry about the icons on the last 2 button, but we've been unable to locate suitable icons for those.

The snippet window supports bookmarking, pressing Ctrl+Shift+[0 - 9] will place a bookmark, pressing Ctrl+[0 - 9] will take you to a placed bookmark. Currently bookmarks are place per tag, meaning when you change the base tag the bookmarks will be lost even if you revert to the tag.

As soon as you start typing in the text editor it will provide you with 2 options, "Discard Changes" and "Apply Changes". Discard changes will revert the CML to how the tag currently looks like, you will of course lose the changes you have made. Apply changes will attempt to adapt the changes into your project, if a CML error is detected it will complain about it and inform you where and what might be wrong and the changes will not be adapted, if you're unable to correct the error we recommend you press the discard changes button and seek other ways of achieving what you want. A general recommendation here is that you attempt to alter a small tag as possible to increase the speed of it, so if you wanna alter a sensor, don't select the form where it's loaded, select the sensor.

The popup menus

As I've already mentioned much of Outlaw Ed is controlled by using popup menus, so it seems only fitting that we take a look at the most commonplaced ones. Those needed for adding objects to your config.

First a little terminology to help increase your understanding and help rule out misunderstandings, which have occured frequently during testing.


Let's start with the popup menu you'll find on the desktop window.


This one is very simple

We'll continue with the popup menu found on design forms


This one is a little more complex.

And finally we'll cover the popup menu that will appear on visual objects<


The is easily the most complex menu of them all.

Some plugins may insert items of it's own, so if you see items not covered in this list, please refer to plugin documentation.

Code templating

The easiest way to explain the code template is as a permanent clipboard. You can store a presetup object to the code template and then by clicking the new item button on the toolbar, you'll be able to insert it later.

The code template dialog looks like this

The item shown here isn't part of the template system, it will just create a new CML project. The three tabs (Forms, Visual objects and sensors objects) will store their own type for fast referencing, if you add a form to it, it will be place on the form tab, add a visual object it will be placed on the visual objects tab, etc.
To add an object to the code template, you'll need to use the menu items around the popup menus. To add them back into the project there are a couple of restrictions
You can add a design form from any selected object. Visual objects can be added from selected sensor objects, visual objects and forms ... it will just go back to the parent until it hits a design to place it on. Sensor objects can only be added to a visual object.

So how do you add objects to the code template
To add an object to the code template, you can access the popup menu for that item and press the "Add to template" item (Please refer to menu documentation above for details). When you do this you'll get the following dialog.


Let's take the items from the top

Preferences

The editor is designed to work and be friendly out of the box, so the most common options that our testers have used thoughout their testing have been adapted. But Outlaw Ed supports a wide variaty of options that can be tweaked to change behavior and perhaps suit your likings better.

The Default Values
All plugins come with their own standard as far as parameters go, but you alter those values under default values in the preferences.


The design is like the Object inspector, the only difference is that you are altering values on an object that you cannot see, they will be used as the standard next time you create an object of that type.

File options
Here you'll find a couple of options that are linked to files.

Grid Options
The grid on both the Desktop window and the design forms can be customized, here you can do that.

Object Inspector Options
Here you can change some of the colors on the object inspector.

Tool windows Options
All tool windows can be customized to a certain degree, here you'll find a list and the abillity to alter them to your likings.

PlugIn Manager Link
Lastly, there is in the tools menu on the desktop window a link to the plugin manager for easy access to plugin management. However since everything must be unloaded for the PM to work, the editor will close and then load the PM, when you exit the PM it will relaunch the editor.