Create HTML5-Based Mobile-Friendly Interactive Images and Maps
FLDraw Interactive Floor Plan Software  >  Developer Guide  >  Extending Functionality

Extending Functionality

You can use add-on modules to extend the functionality of FLDraw,
add-on modules are compiled flash files (SWF) that are loaded on startup of the main flash file (one at a time).
FLDraw provides several properties, methods, action events, and layers that you can use to create your add-on module.

 
Creating an Add-on Module

In order to create an add-on module, do the following:

  1. Create a new FLA file (and save it).
  2. Declare a global variable to use it as a pointer to the main flash file:
    var app=parent.parent;
  3. Add registration code:
    app.registerAddon(this);
  4. Add the onEvent function (to be called when an action event occurs):
    function onEvent(objectName:String, eventName:String, param):void
    {
    }
  5. Write your own code... .
  6. Compile the FLA file.

 

Using an Add-on Module

In order to use an add-on module, do the following:

  1. Copy the add-on SWF file to the folder where the main flash file is located (or another folder if you prefer).
  2. Set the value of the add_on node in your config.xml file to point to the add-on SWF file.
 

The package includes some sample add-on files to help you get started. (See Package.)


 

Layers, Properties, Methods, and Action Events

 

 



Layers

You have access to some specific layers inside the main flash file to add movie clips, draw graphics, ... .
(The main flash file has a placeholder movie clip for each layer that you can use.)

User Interface Layers:
  • buttons2: Inside the toolbar, for creating a custom toolbar (similar to the print toolbar).
  • buttons1: Inside the toolbar, for adding new buttons to the main toolbar.
  • toolbar2: Above the toolbar.
  • toolbar1: Below the toolbar.
  • plan2: Above the plan layer.
  • plan1: Below the plan layer.
 
Plan Layers:
  • topmost: Above all plan elements.
  • objects2: Above objects, shapes, texts and images.
  • objects1: Below objects, shapes, texts and images.
  • walls2: Above walls and fences.
  • walls1: Below walls and fences.
  • areas2: Above fill areas.
  • areas1: Below fill areas.
  • back: Below all plan elements.
 
Example
var mc = app.topmost;
mc.graphics.beginFill(0x00FF00);
mc.graphics.lineStyle(1, 0x0000FF);
mc.graphics.drawRect(0, 0, 200, 200);
mc.graphics.endFill();

 

 

 

 



Properties

 

Name Data Type Description
showAddon Boolean Gets/sets a value that indicates whether the add-on (the loaded SWF file) is visible or hidden.
 
Example
app.showAddon=true;
showCustomToolbar Boolean Gets/sets a value that indicates whether the custom toolbar is visible or hidden.
 
Example
app.showCustomToolbar=true;

 

 

 

 



Methods

 

registerAddon(object):Boolean

Registers the add-on module.

Parameters:
  • object: The object that owns the onEvent function.

Returns: true/false (Boolean).

  • true: If successful.
  • false: On failure (if an add-on module is already registered).
Example
app.registerAddon(this);

 

addButton(toolbarNumber:Number, name:String, icon:String, tooltip:String, width:Number):Boolean

Adds a new button to the toolbar.

Parameters:
  • toolbarNumber: Indicates where to add the new button.
    Valid Values:
    • 1: toolbar1 (the main toolbar).
    • 2: toolbar2 (the custom toolbar).
  • name: The name of the new button.
  • icon: The linkage ID of the icon to be used.
  • tooltip: The tooltip string.
  • width: The width of the button.
 
Returns: true/false (Boolean).
  • true: If successful.
  • false: On failure (if a button with the same name already exists).
Example
app.addButton(1, "button1", "icon1", "Hello", 30);
(You need to have an item in the library that its linkage ID is icon1)

See also showCustomToolbar.

 

addSeparator(toolbarNumber:Number):void

Adds a separator line after the last custom button.

Parameters:
  • toolbarNumber: Indicates where to add the new separator line.
    Valid Values:
    • 1: toolbar1 (the main toolbar).
    • 2: toolbar2 (the custom toolbar).

Returns: Nothing.

Example
app.addSeparator(1);

 

setButtonProperty(buttonName:String, propertyName:String, propertyValue):Boolean

Sets the value of a property of a button.

Parameters:
  • buttonName: The name of the button.
  • propertyName: The name of the property.
    Valid Values:
    • enabled: Whether to enable/disable the button.
  • propertyValue: The new value to be set.
Returns: true/false (Boolean).
  • true: If successful.
  • false: On failure (no button with the specified name).
Example
app.setButtonProperty("button1", "enabled", false);

 

getButtonProperty(buttonName:String, propertyName:String)

Gets the value of a property of a button.

Parameters:
  • buttonName: The name of the button.
  • propertyName: The name of the property.
    Valid Values:
    • enabled: Whether the button is enabled.

Returns: the return type depends on propertyName.

Example
val = app.getButtonProperty("button1", "enabled");

 

setToolbarWidth(toolbarNumber:Number, width:Number):void

Lets you specify the space that you need for showing the content of the buttons1 and buttons2 layers.
(When you want to add/draw something inside the buttons1 and buttons2 layers directly, without using the addButton and addSeparator methods.)

Parameters:
  • toolbarNumber: The toolbar number.
    Valid Values:
    • 1: toolbar1 (the main toolbar).
    • 2: toolbar2 (the custom toolbar).
  • width: The required width value.

Returns: Nothing.

Example
app.setToolbarWidth(1, 200);

 

changeDefaultToolbar(buttons:String):void

Sets the visibility of the toolbar buttons.

Parameters:
  • buttons: A comma delimited list of button names.
    Button Names:
    • file_menu: The File Menu button. (editor/viewer)
    • new: The New button. (editor)
    • open: The Open button. (editor)
    • save: The Save button. (editor)
    • publish: The Publish button. (editor)
    • pointer: The Pointer button. (editor/viewer)
    • pan: The Pan button. (editor/viewer)
    • preview: The Preview button. (editor)
    • wall: The Draw Walls and Default Wall Properties buttons. (editor)
    • fence: The Draw Fences and Default Fence Properties buttons. (editor)
    • library: The Objects Library button. (editor)
    • markers: The Markers & Icons button. (editor)
    • text: The Add Text and Default Text Properties buttons. (editor)
    • dimension_line: The Add Dimension Lines and Default Dimension Line Properties buttons. (editor)
    • shape: The Add Shape and Shapes Menu buttons. (editor)
    • background_image: The Add Background Image button. (editor)
    • image: The Add Image button. (editor)
    • snap: The Snap button. (editor)
    • show_hide: The Show/Hide button. (editor/viewer)
    • ruler: The Ruler button. (editor/viewer)
    • settings: The Settings button. (editor)
    • pop_ups: The Pop-ups button. (editor)
    • files: The Imported Files button. (editor)
    • zoom: The Zoom Out, Zoom In, Zoom Menu, Full Screen Mode and Exit Full Screen Mode buttons and the Zoom Value textbox. (editor/viewer)

Returns: Nothing.

Example
app.changeDefaultToolbar("pointer,pan,zoom");

 

enableMouseWheel(enable:Boolean):void

Enables/Disables the mouse-wheel event handler of the main flash file.

Parameters:
  • enable: Whether to enable/disable the event handler.

Returns: Nothing.

Example
app.enableMouseWheel(false);

 

enableKeyboard(enable:Boolean):void

Enables/Disables the keyboard event handler of the main flash file.

Parameters:
  • enable: Whether to enable/disable the event handler.

Returns: Nothing.

Example
app.enableKeyboard(false);

 

raiseEvent(eventName:String):void

Raises the event specified by the eventName parameter.

Parameters:
  • eventName: The name of the event to raise.
    Button Names:
    • "new": The Click event of the "New" menu item and the New button. (editor)
    • "open": The Click event of the "Open..." menu item and the Open button. (editor/viewer)
    • "save": The Click event of the "Save" menu item and the Save button. (editor)
    • "save_as": The Click event of the "Save As..." menu item. (editor)
    • "close": The Click event of the "Close" menu item. (editor/viewer)
    • "export_image": The Click event of the "Export Image..." menu item. (editor/viewer)
    • "print": The Click event of the "Print..." menu item. (editor/viewer)
    • "pointer": The Click event of the Pointer button. (editor/viewer)
    • "pan": The Click event of the Pan button. (editor/viewer)
    • "preview": The Click event of the Preview button. (editor)
    • "wall": The Click event of the Draw Walls button. (editor)
    • "fence": The Click event of the Draw Fences button. (editor)
    • "library": The Click event of the Objects Library button. (editor)
    • "markers": The Click event of the Markers & Icons button. (editor)
    • "text": The Click event of the Add Text button. (editor)
    • "dimension_line": The Click event of the Add Dimension Lines button. (editor)
    • "shape": The Click event of the Add Shape button. (editor)
    • "background_image": The Click event of the Add Background Image button. (editor)
    • "image": The Click event of the Add Image button. (editor)
    • "ruler": The Click event of the Ruler button. (editor/viewer)
    • "settings": The Click event of the Settings button. (editor)
    • "pop_ups": The Click event of the Pop-ups button. (editor)
    • "files": The Click event of the Imported Files button. (editor)

Returns: Nothing.

Example
app.raiseEvent("print");

 

cancelAction():void

Cancels the current action (only works if the current action event is "app"."before_save")

Parameters: None.

Returns: Nothing.

Example
app.cancelAction();

 

getNamesArray(elementType:String):Array

Returns an array of all elements' names for a specific element type.

Parameters:
  • elementType: The type of elements.
    Valid Values:
    • "object": Objects (and markers).
    • "text": Text elements.
    • "wall": Walls and fences.
    • "area": Fill areas.
    • "dimension_line": Dimension lines.
    • "shape": Shapes.
    • "image": Images.

Returns: Array.

Example
arr = app.getNamesArray("wall");

 

setExtraParameters(objectName:String, extraData:String):Boolean

Sets the extra data of an object.

Parameters:
  • objectName: The name of the object.
    Valid Values:
    • "plan": The plan.
    • object name (Like "object1", "object2", "marker1", ...).
    • text name (Like "text1", "text2", ...).
    • wall/fence name (Like "wall1", "wall2", ...).
    • fill area name (Like "area1", "area2", ...).
    • dimension line name (Like "dimension_line1", "dimension_line2", ...).
    • shape name (Like "shape1", "shape2", ...).
    • image name (Like "image1", "image2", ...).
  • extraData: The extra data to be set (an XML formatted string).
    The root node of the XML data should be <add_on>.
 
Returns: true/false (Boolean).
  • true: If successful.
  • false: On failure (no element with the specified name).
Example
app.setExtraParameters("object1", "<add_on><data1>1</data1><data2>2</data2></add_on>");

 

getExtraParameters(objectName:String):String

Gets the extra data associated with an object.

Parameters:
  • objectName: The name of the object.
    Valid Values:
    • "plan": The plan.
    • object name (Like "object1", "object2", "marker1", ...).
    • text name (Like "text1", "text2", ...).
    • wall/fence name (Like "wall1", "wall2", ...).
    • fill area name (Like "area1", "area2", ...).
    • dimension line name (Like "dimension_line1", "dimension_line2", ...).
    • shape name (Like "shape1", "shape2", ...).
    • image name (Like "image1", "image2", ...).

Returns: XML formatted string.

Example
val = app.getExtraParameters("plan");

 

setColorEffect(elementName:String, colors:String):Boolean

Applies a color transformation to a plan element.

Parameters:
  • elementName: The name of the plan element.
  • colors: A comma delimited string with 6 parameters (redMultiplier, redOffset, blueMultiplier, blueOffset, greenMultiplier, greenOffset, alphaMultiplier, and alphaOffset).
     
    new red=red*redMultiplier+redOffset
    new green=green*greenMultiplier+greenOffset
    new blue=blue*blueMultiplier+blueOffset
    new alpha=alpha*alphaMultiplier+alphaOffset
    (Valid offset values are between -255 and 255, and valid multiplier values are between 0 and 1)
 
Returns: true/false (Boolean).
  • true: If successful.
  • false: On failure (no element with the specified name).
Example
app.setColorEffect("object1", "1,0,1,0,1,0,0.5,0");

 

getBitmapData(scale:Number, x:Number, y:Number, width:Number, height:Number):BitmapData

Creates an empty BitmapData object and draws the specified area of the plan onto it.

Parameters:
  • scale: The zoom factor.
  • x: The x coordinate of the area.
  • y: The y coordinate of the area.
  • width: The area width.
  • height: The area height.
Returns:
  • BitmapData: If successful.
  • null: On failure.
     
    bitmap-width = width * (scale / 100) / 2
    bitmap-height = height * (scale / 100) / 2
 
Example
b = app.getBitmapData(100, 0, 0, 500, 500);

 

setValue(objectName:String, propertyName:String, propertyValue):void

Sets the value of a property of an object.

Parameters:
  • objectName: The name of the object.
    Valid Values:
    • "app": The application (editor/viewer).
    • "plan": The plan.
  • propertyName: The name of the property to be set.
    Valid Values:
    If objectName=="app" : "xml", "extra1", "extra2", "extra3", "full_screen", "toolbar", and "status_bar".
    If objectName=="plan" : "title", "x", "y", and "scale".
    (See Properties List.)
  • propertyValue: The new value to set the property to.

Returns: Nothing.

Example
app.setValue("plan", "x", 0);

 

getValue(objectName:String, propertyName:String)

Gets the value of a property of an object.

Parameters:
  • objectName: The name of the object.
    Valid Values:
    • "app": The application (editor/viewer).
    • "plan": The plan.
    • "grid": The background grid.
    • object name (Like "object1", "object2", "marker1", ...).
    • text name (Like "text1", "text2", ...).
    • wall/fence name (Like "wall1", "wall2", ...).
    • fill area name (Like "area1", "area2", ...).
    • dimension line name (Like "dimension_line1", "dimension_line2", ...).
    • shape name (Like "shape1", "shape2", ...).
    • image name (Like "image1", "image2", ...).
  • propertyName: The name of the property to get.
    (See Properties List.)

Returns: The return type depends on propertyName.

Example
val = app.getValue("object1", "x");

 

 


Properties List

(All parameters are read only unless otherwise stated with a "*" )
(Drawing unit is 0.5 pixels, for example if object1.width==100 => object1 is 50 pixels in width)

Object Property Data Type Description
"app" path String The path of the current plan file.
file String The name of the current plan file.
xml   * String The source code of the current plan.
extra1   * String The first optional parameter to be included when the Flash object sends a request to the server.
extra2   * String The second optional parameter to be included when the Flash object sends a request to the server.
extra3   * String The third optional parameter to be included when the Flash object sends a request to the server.
version Number The version number of the main flash file.
width Number The width of the stage (in pixels).
height Number The height of the stage (in pixels).
editor Boolean Indicates the type of the main flash file (true:editor, false:viewer).
viewer Boolean Indicates the type of the main flash file (true:viewer, false:editor).
open_window Boolean Indicates whether there is an open dialog box.
open_file Boolean Indicates whether there is an open plan document.
full_screen   * Boolean Indicates whether the main flash file is in the full screen mode.
menu_bar    Boolean Indicates whether the menu bar is visible.
toolbar   * Boolean Indicates whether the toolbar is visible.
status_bar   * Boolean Indicates whether the status bar is visible.
library_window Boolean Indicates whether the Objects Library window is visible.
print_mode Boolean Indicates whether the main flash file is in the print mode.
export_mode Boolean Indicates whether the main flash file is in the export mode.
plan_rectangle Rectangle The bounds of the current plan.
print_rectangle Rectangle The bounds of the selected area in the print mode.
export_rectangle Rectangle The bounds of the selected area in the export mode.
"plan" version Number The version of the FLDraw editor used to save the plan file.
viewer_version Number The minimum version of the FLDraw viewer (or editor) required to open the plan file.
units Number The unit of measurement.
precision Number The number of digits after the decimal point.
x   * Number The x coordinate of the plan.
y   * Number The y coordinate of the plan.
width Number The plan width.
height Number The plan height.
scale   * Number The plan scale.
back_color String The background color of the plan.
title   * String The plan title.
"grid" enabled Boolean The visibility of the grid.
spacing Number The distance between grid lines.
type Number The grid type.
thickness Number The thickness of grid lines/dots.
color String The grid color.
Object index Number The object index.
name String The object name.
file_id Number The file ID.
file String The file name.
title String The object title.
x Number The x coordinate of the center of the object.
y Number The y coordinate of the center of the object.
z Number The index position of the object inside the objects layer.
width Number The object width.
height Number The object height.
flip_horizontal Boolean Indicates whether the object is flipped horizontally.
flip_vertical Boolean Indicates whether the object is flipped vertically.
rotation Number The rotation angle of the object.
snap_edge Number The edge that will snap to walls.
sample Number The index of the selected sample in the Samples tab.
style Number The index of the selected style in the Styles tab.
colors String The list of colors to be used for rendering the object.
symbol_color String The symbol color.
mouse_enabled Boolean Indicates whether the object receives mouse/touch events.
tooltip String The tooltip text string.
event_type Number The mouse-click event type.
info_text String The info-box text (if event_type==1).
pop_up_id Number The pop-up ID (if event_type==2).
info_image_id Number The image ID (if event_type==3).
link String The URL of the document to load (if event_type==3).
window String The target browser window for the link (if event_type==3).
java_script String The JavaScript function name (if event_type==4).
Text index Number The text index.
name String The text name.
x Number The x coordinate of the center of the text element.
y Number The y coordinate of the center of the text element.
z Number The index position of the text inside the objects layer.
rotation Number The rotation angle of the text element.
string String The text string.
mouse_enabled Boolean Indicates whether the text element receives mouse/touch events.
tooltip String The tooltip text string.
event_type Number The mouse-click event type.
info_text String The info text (if event_type==1).
pop_up_id Number The pop-up ID (if event_type==2).
info_image_id Number The image ID (if event_type==3).
link String The URL of the document to load (if event_type==3).
window String The target browser window for the link (if event_type==3).
java_script String The JavaScript function name (if event_type==4).
Wall/Fence index Number The wall index.
name String The wall name.
title String The pattern title.
wall Boolean Indicates whether it's a wall or a fence.
thickness Number The wall thickness.
color String The color of the wall (if pattern==false).
pattern Boolean Indicates whether or not to use a pattern to draw the wall.
pattern_id Number The pattern ID.
pattern_file String The pattern file name.
scale Number The pattern scale.
width Number The pattern width.
height Number The pattern height.
flip_horizontal Boolean Indicates whether the pattern is flipped horizontally.
flip_vertical Boolean Indicates whether the pattern is flipped vertically.
sample Number The index of the selected sample in the Colors tab.
colors String The list of colors to be used for drawing the wall (if pattern==true).
x1 Number The x coordinate of the first point.
y1 Number The y coordinate of the first point.
x2 Number The x coordinate of the second point.
y2 Number The y coordinate of the second point.
objects String The list of doors and windows that are inside the wall.
mouse_enabled Boolean Indicates whether the wall element receives mouse/touch events.
tooltip String The tooltip text string.
event_type Number The mouse-click event type.
info_text String The info text (if event_type==1).
pop_up_id Number The pop-up ID (if event_type==2).
info_image_id Number The image ID (if event_type==3).
link String The URL of the document to load (if event_type==3).
window String The target browser window for the link (if event_type==3).
java_script String The JavaScript function name (if event_type==4).
Fill Area index Number The area index.
name String The area name.
x Number The x coordinate of the center of the area.
y Number The y coordinate of the center of the area.
z Number The index position of the area inside the areas layer.
title String The pattern title.
solid Boolean Indicates whether or not to use a solid color to fill the area.
pattern Boolean Indicates whether or not to use a pattern to fill the area.
color String The color to be used for filling the area (if solid==true).
pattern_id Number The pattern ID.
pattern_file String The pattern file name.
scale Number The pattern scale.
width Number The pattern width.
height Number The pattern height.
flip_horizontal Boolean Indicates whether the pattern is flipped horizontally.
flip_vertical Boolean Indicates whether the pattern is flipped vertically.
rotation Number The pattern rotation angle.
sample Number The index of the selected sample in the Colors tab.
colors String The list of colors to be used for filling the area (if pattern==true).
correct Boolean Indicates whether the area is correct (without collision errors).
room_name String The title of the area.
area_value Boolean Indicates whether the area size is shown.
area_value_num Number The area size.
points_xy String The x-y coordinates of the corner points.
mouse_enabled Boolean Indicates whether the area element receives mouse/touch events.
tooltip String The tooltip text string.
event_type Number The mouse-click event type.
info_text String The info text (if event_type==1).
pop_up_id Number The pop-up ID (if event_type==2).
info_image_id Number The image ID (if event_type==3).
link String The URL of the document to load (if event_type==3).
window String The target browser window for the link (if event_type==3).
java_script String The JavaScript function name (if event_type==4).
Dimension Line index Number The dimension line index.
name String The dimension line name.
x1 Number The x coordinate of the first point.
y1 Number The y coordinate of the first point.
x2 Number The x coordinate of the second point.
y2 Number The y coordinate of the second point.
Shape index Number The shape index.
name String The shape name.
type String The shape type.
x Number The x coordinate of the center of the shape.
y Number The y coordinate of the center of the shape.
z Number The index position of the shape inside the objects layer.
width Number The shape width.
height Number The shape height.
rotation Number The rotation angle of the shape.
mouse_enabled Boolean Indicates whether the shape element receives mouse/touch events.
tooltip String The tooltip text string.
event_type Number The mouse-click event type.
info_text String The info text (if event_type==1).
pop_up_id Number The pop-up ID (if event_type==2).
info_image_id Number The image ID (if event_type==3).
link String The URL of the document to load (if event_type==3).
window String The target browser window for the link (if event_type==3).
java_script String The JavaScript function name (if event_type==4).
Image index Number The image index.
name String The image name.
file_id Number The file ID.
background Boolean Indicates whether it's a background image.
x Number The x coordinate of the center of the image.
y Number The y coordinate of the center of the image.
z Number The index position of the image inside the objects layer (or inside the background layer if background==true).
width Number The image width.
height Number The image height.
flip_horizontal Boolean Indicates whether the image is flipped horizontally.
flip_vertical Boolean Indicates whether the image is flipped vertically.
rotation Number The rotation angle of the image.
mouse_enabled Boolean Indicates whether the image element receives mouse/touch events.
tooltip String The tooltip text string.
event_type Number The mouse-click event type.
info_text String The info text (if event_type==1).
pop_up_id Number The pop-up ID (if event_type==2).
info_image_id Number The image ID (if event_type==3).
link String The URL of the document to load (if event_type==3).
window String The target browser window for the link (if event_type==3).
java_script String The JavaScript function name (if event_type==4).

 

 

 

 



Action Events

An action event occurs when a certain event in the main flash file takes place.
Each action event causes the onEvent function to be called:

onEvent(objectName:String, eventName:String, param):void

Parameters: .
  • objectName: The event target.
    Valid Values:
    • "app": The application (editor/viewer).
    • "menu_bar": The menu bar.
    • "toolbar": The toolbar.
    • "status_bar": The status bar.
    • "plan": The plan.
    • "back": The plan background.
    • object name (Like "object1", "object2", "marker1", ...).
    • text name (Like "text1", "text2", ...).
    • wall/fence name (Like "wall1", "wall2", ...).
    • fill area name (Like "area1", "area2", ...).
    • dimension line name (Like "dimension_line1", "dimension_line2", ...).
    • shape name (Like "shape1", "shape2", ...).
    • image name (Like "image1", "image2", ...).
    • custom button name (Like "button1", "button2", ...)
  • eventName: The event type.
  • param: Placeholder for future use.
 

The package includes a sample add-on file in the fldraw/samples/add_on/tracing_events folder that you can use it to trace events.


Events List

Object Event Occurs...
"app" "ready" When the main flash file is ready and you can use its methods, properties and layers.
"enable" When the editing/viewing tools are enabled (when app.open_file changes to true).
"disable" When the editing/viewing tools are disabled (when app.open_file changes to false).
"full_screen" When the display status changes from normal to full screen.
"exit_full_screen" When the display status changes from full screen to normal.
"window_open" When a dialog box is opened.
"window_close" When a dialog box is closed.
"info_box_open" When an info box is opened.
"info_box_close" When an info box is closed.
"pop_up_open" When a pop-up box is opened.
"pop_up_close" When a pop-up box is closed.
"after_new" After creating a new plan.
"after_close" After closing a plan.
"before_load" Before loading a plan.
"after_load" After loading a plan (when the plan is ready to be used).
"create_xml" When the main flash file needs to rebuild the plan XML string.
"before_save" Before saving a plan.
"after_save" After saving a plan.
"library_window" When the Objects Library window is opened/closed.
"pointer" When the pointer mode is activated.
"pan" When click the Pan button.
"preview" When click the Preview button.
"ruler" When click the Ruler button.
"draw_walls" When click the Draw Walls button.
"draw_fences" When click the Draw Fences button.
"add_object" When start to drag an object from the Objects Library window.
"add_text" When click the Add Text button.
"add_dimension_lines" When click the Add Dimension Lines button.
"add_shape" When click the Add Shape button.
"print_mode" When select the Print... menu item.
"print_settings" When the printing area changes.
"before_print" When click the Print button.
"after_print" When the Print dialog box is closed.
"exit_print_mode" When the print operation is completed/cancelled.
"export_mode" When select the Export Image... menu item.
"export_settings" When the export area changes.
"before_export" When click the Export button.
"after_export" When the Save dialog box is closed.
"exit_export_mode" When the export operation is completed/cancelled.
"menu_bar" "new" When select New from the File menu.
"open" When select Open... from the File menu.
"save" When select Save from the File menu.
"save_as" When select Save As... from the File menu.
"close" When select Close from the File menu.
"export_image" When select Export Image... from the File menu.
"print" When select Print... from the File menu.
"about" When select About FLDraw from the File menu.
"properties" When select Properties from the Edit menu.
"forward" When select Bring Forward from the Edit menu.
"backward" When select Send Backward from the Edit menu.
"duplicate" When select Duplicate from the Edit menu.
"delete" When select Delete from the Edit menu.
"select_all" When select Select All from the Edit menu.
"wall" When select Walls from the Insert menu.
"fence" When select Fences from the Insert menu.
"text" When select Text from the Insert menu.
"dimension_line" When select Dimension Lines from the Insert menu.
"oval" When select Oval from the Insert=>Shape menu.
"rectangle" When select Rectangle from the Insert=>Shape menu.
"line" When select Line from the Insert=>Shape menu.
"polygon" When select Polygon from the Insert=>Shape menu.
"image" When select Image... from the Insert menu.
"background_image" When select Background Image... from the Insert menu.
"pointer" When select Pointer from the View menu.
"pan" When select Pan from the View menu.
"preview" When select Preview from the View menu.
"zoom_in" When select Zoom In from the View=>Zoom menu.
"zoom_out" When select Zoom Out from the View=>Zoom menu.
"zoom_100" When select 100% from the View=>Zoom menu.
"fit_in_window" When select Fit in Window from the View=>Zoom menu.
"toolbar" When select Toolbar from the View menu.
"status_bar" When select Status Bar from the View menu.
"show_grid" When select Grid from the View=>Show/Hide menu.
"show_texts" When select Texts from the View=>Show/Hide menu.
"show_dimension_lines" When select Dimension Lines from the View=>Show/Hide menu.
"show_objects" When select Objects from the View=>Show/Hide menu.
"show_images" When select Images from the View=>Show/Hide menu.
"show_shapes" When select Shapes from the View=>Show/Hide menu.
"show_walls" When select Walls from the View=>Show/Hide menu.
"show_fences" When select Fences from the View=>Show/Hide menu.
"show_areas" When select Fill Areas from the View=>Show/Hide menu.
"show_area_labels" When select Fill Area Labels from the View=>Show/Hide menu.
"snap_position1" When select Position (#1) from the View=>Snap menu.
"snap_position2" When select Position (to Grid) from the View=>Snap menu.
"snap_length1" When select Length (#1) from the View=>Snap menu.
"snap_length2" When select Length (#2) from the View=>Snap menu.
"snap_angle1" When select Angle (1°) from the View=>Snap menu.
"snap_angle2" When select Angle (5°) from the View=>Snap menu.
"snap_angle3" When select Angle (45°) from the View=>Snap menu.
"ruler" When select Ruler from the Options menu.
"settings" When select Settings from the Options menu.
"library" When select Objects Library from the Window menu.
"pop_ups" When select Pop-ups from the Window menu.
"files" When select Imported Files from the Window menu.
"toolbar" "show" When the toolbar is being shown.
"hide" When the toolbar is being hidden.
"status_bar" "show" When the status bar is being shown.
"hide" When the status bar is being hidden.
"plan" "clear" When the plan is cleared.
"properties" When a modification is made to the plan settings (including the plan title).
"move" When the x-y coordinates of the plan are changed.
"scale" When the scale of the plan is changed.
"back" "select" When the plan background is selected.
"mouse_down" When the left mouse button is pressed over the plan background.
"mouse_up" When the left mouse button is released (if the plan background has been pressed before).
Object "create" When the object is created.
"delete" When delete the object.
"select" When select the object.
"select2" When select the object (multi-select mode).
"deselect2" When deselect the object (multi-select mode).
"properties" When click the OK or Apply button in the Object Properties dialog box.
"menu" When the context menu of the object is displayed.
"move" When the position of the object is changed.
"move2" When the position of the object is changed (multi-select mode).
"rotate" When the rotation angle of the object is changed (except for changing it using the properties window).
"resize" When the size of the object is changed (except for changing it using the properties window).
"flip" When click the Flip Horizontal or Flip Vertical button (those buttons appear for a door or window that is inside a wall/fence).
"mouse_down" When the left mouse button is pressed over the object.
"mouse_up" When the left mouse button is released (for the object that has been pressed before).
Text "create" When the text element is created.
"delete" When delete the text element.
"select" When select the text element.
"select2" When select the text element (multi-select mode).
"deselect2" When deselect the text element (multi-select mode).
"properties" When click the OK or Apply button in the Text Properties dialog box.
"menu" When the context menu of the text element is displayed.
"move" When the position of the text element is changed.
"move2" When the position of the text element is changed (multi-select mode).
"rotate" When the rotation angle of the text element is changed (except for changing it using the properties window).
"mouse_down" When the left mouse button is pressed over the text element.
"mouse_up" When the left mouse button is released (for the text element that has been pressed before).
Wall (or Fence) "create" When the wall is created.
"create_temp" When the wall is created temporarily.
"delete" When delete the wall.
"select" When select the wall.
"select2" When select the wall (multi-select mode).
"deselect2" When deselect the wall (multi-select mode).
"properties" When click the OK or Apply button in the Wall Properties dialog box.
"menu" When the context menu of the wall is displayed.
"move2" When the position of the wall is changed (multi-select mode).
"change" When the wall is changed.
"mouse_down" When the left mouse button is pressed over the wall.
"mouse_up" When the left mouse button is released (for the wall that has been pressed before).
"point_mouse_down" When the left mouse button is pressed over one of the end-points of the wall.
"point_mouse_up" When the left mouse button is released (for the wall that one of its end-points has been pressed before).
Fill Area "create" When the area element is created.
"delete" When delete the area element.
"select" When select the area element.
"select2" When select the area element (multi-select mode).
"select2_label" When select the area value label (multi-select mode).
"deselect2" When deselect the area element (multi-select mode).
"deselect2_label" When deselect the area value label (multi-select mode).
"properties" When click the OK or Apply button in the Area Properties dialog box.
"menu" When the context menu of the area element is displayed.
"move" When the position of the area value label is changed.
"move2" When the position of the area element is changed (multi-select mode).
"move2_label" When the position of the area value label is changed (multi-select mode).
"rotate" When the rotation angle of the area value label is changed (except for changing it using the properties window).
"change" When the shape of the area element is changed.
"mouse_down" When the left mouse button is pressed over the area element.
"mouse_up" When the left mouse button is released (for the area element that has been pressed before).
Dimension Line "create" When the dimension line is created.
"create_temp" When the dimension line is created temporarily.
"delete" When delete the dimension line.
"select" When select the dimension line.
"select2" When select the dimension line (multi-select mode).
"deselect2" When deselect the dimension line (multi-select mode).
"properties" When click the OK or Apply button in the Dimension Line Properties dialog box.
"menu" When the context menu of the dimension line is displayed.
"move2" When the position of the dimension line is changed (multi-select mode).
"change" When the dimension line is changed.
"mouse_down" When the left mouse button is pressed over the dimension line.
"mouse_up" When the left mouse button is released (for the dimension line that has been pressed before).
"point_mouse_down" When the left mouse button is pressed over one of the end-points of the dimension line.
"point_mouse_up" When the left mouse button is released (for the dimension line that one of its end-points has been pressed before).
Shape "create" When the shape element is created.
"delete" When delete the shape element.
"select" When select the shape element.
"select2" When select the shape element (multi-select mode).
"deselect2" When deselect the shape element (multi-select mode).
"properties" When click the OK or Apply button in the Shape Properties dialog box.
"menu" When the context menu of the shape element is displayed.
"move" When the position of the shape element is changed.
"move2" When the position of the shape element is changed (multi-select mode).
"change" When the shape of a polygon or line element is changed.
"rotate" When the rotation angle of the shape element is changed (except for changing it using the properties window).
"resize" When the size of the shape element is changed (except for changing it using the properties window).
"mouse_down" When the left mouse button is pressed over the shape element.
"mouse_up" When the left mouse button is released (for the shape element that has been pressed before).
Image "create" When the image element is created.
"delete" When delete the image element.
"select" When select the image element.
"select2" When select the image element (multi-select mode).
"deselect2" When deselect the image element (multi-select mode).
"properties" When click the OK or Apply button in the Image Properties dialog box.
"menu" When the context menu of the image element is displayed.
"move" When the position of the image element is changed.
"move2" When the position of the image element is changed (multi-select mode).
"rotate" When the rotation angle of the image element is changed (except for changing it using the properties window).
"resize" When the size of the image element is changed (except for changing it using the properties window).
"mouse_down" When the left mouse button is pressed over the image element.
"mouse_up" When the left mouse button is released (for the image element that has been pressed before).
Custom Button "button_click" When click a custom button.