# Scripting %PRODUCTNAME

/text/shared/guide/scripting.xhp
assigning scripts
programming;scripting
form controls;assigning macros
pictures;assigning macros
hyperlinks;assigning macros
shortcut keys;assigning macros
controls;assigning macros (Basic)
menus;assigning macros
events;assigning scripts
MW deleted "programming;...", "scripting in programming", "BeanShell scripting", "Basic;..." and "java;..."
MW added "controls;..", "menus;..." and "events;..."
Assigning Scripts in %PRODUCTNAME
You can assign custom scripts (macros) to menu items, icons, dialog controls, and events in %PRODUCTNAME.
%PRODUCTNAME internally supports the following scripting languages:
- %PRODUCTNAME Basic
- JavaScript
- BeanShell
- Python
In addition, developers can use high-level languages, for example Java programming language, to control %PRODUCTNAME externally. See the API project at OpenOffice.org.
To assign a script to a new menu entry
- Choose Tools - Customize, and click the Menus tab.
- Click Add.
- In the Category list box, scroll down and open the "%PRODUCTNAME Macros" entry.
- You see entries for "%PRODUCTNAME Macros" (scripts in the share directory of your %PRODUCTNAME installation), "My Macros" (scripts in the user directory), and the current document. Open any one of them to see the supported scripting languages.
- Open any scripting language entry to see the available scripts. Select a script.
- A list of the script functions appears in the Commands list box. Select a function.
- Click Add to create a new menu assignment. The new menu entry appears in the Entries list box.
To assign a script to a key combination
- Choose Tools - Customize - Keyboard.
- In the Category list box, scroll down and open the "%PRODUCTNAME Macros" entry.
- You see entries for "%PRODUCTNAME Macros" (scripts in the share directory of your %PRODUCTNAME installation), "My Macros" (scripts in the user directory), and the current document. Open any one of them to see the supported scripting languages.
- Open any scripting language entry to see the available scripts. Select any script.
- A list of the script functions will appear in the Commands list box. Select any function.
- Click the option button for %PRODUCTNAME or Writer (or whichever application is currently open).
  Selecting the option button sets the scope of the new key combination to be applicable in all of %PRODUCTNAME or only in documents of the current module.
- Select a key combination from the Shortcut keys list box and click Modify.
To assign a script to an event
- Choose Tools - Customize - Events.
- Click Macro button.
- In the Library list box, scroll down and open the "%PRODUCTNAME Macros" entry.
- You see entries for "%PRODUCTNAME Macros" (scripts in the share directory of your %PRODUCTNAME installation), "My Macros" (scripts in the user directory), and the current document. Open any one of them to see the supported scripting languages.
- Open any scripting language entry to see the available scripts. Select any script.
- A list of the script functions will appear in the Assigned Action list box. Select any function.
- Select to save in %PRODUCTNAME or current document.
  This sets the scope of the new event assignment to be applicable in all of %PRODUCTNAME or only in documents of the current module.
- Select an event from the list and click OK.
To assign a script to an event for an embedded object
- Select the embedded object, for example a chart, in your document.
- Choose Format - Frame/Object - Macro.
- In the Macros list box, open the %PRODUCTNAME Scripts entry.
- You see entries for share (scripts in the share directory of your %PRODUCTNAME installation), user (scripts in the user directory), and the current document. Open any one of them to see the supported scripting languages.
- Open any scripting language entry to see the available scripts. Select any script.
- A list of the script functions will appear in the Existing macros in list box. Select any function.
- Select an event from the list and click OK.
To assign a script to a hyperlink
- Position the cursor inside the hyperlink.
- Choose Insert - Hyperlink.
- Click the Events button.
- Select and assign as stated above.
To assign a script to a graphic
- Select the graphic in your document.
- Choose Format - Picture - Macro.
- Select and assign as stated above.
To assign a script to a form control
- Insert a form control, for example a button: Open the Form Controls toolbar, click the Push Button icon, drag open a button on your document.
- With the form control selected, click Control on the Form Controls toolbar.
- Click the Events tab of the Properties dialog.
- Click one of the ... buttons to open a dialog where you can assign a script to the selected event.
To assign a script to a control in the %PRODUCTNAME Basic dialog
- Open the %PRODUCTNAME Basic dialog editor, then create a dialog with a control on it.
- Right-click the control, then choose Properties.
- Click the Events tab of the Properties dialog.
- Click one of the ... buttons to open a dialog where you can assign a script to the selected event.