API reference - Class Macro

Notation used in Ruby API documentation

Module: lay

Description: A macro class

This class is provided mainly to support generation of template macros in the DSL interpreter framework provided by MacroInterpreter. The implementation may be enhanced in future versions and provide access to macros stored inside KLayout's macro repository.

Public constructors

new Macro ptrnewCreates a new object of this class

Public methods

void_createEnsures the C++ object is created
void_destroyExplicitly destroys the object
[const]bool_destroyed?Returns a value indicating whether the object was already destroyed
[const]bool_is_const_object?Returns a value indicating whether the reference is a const reference
void_manageMarks the object as managed by the script side.
void_unmanageMarks the object as no longer owned by the script side.
[const]stringcategoryGets the category tags
voidcategory=(string string)Sets the category tags string
[const]stringdescriptionGets the description text
voiddescription=(string description)Sets the description text
[const]stringepilogGets the epilog code
voidepilog=(string string)Sets the epilog
[const]stringgroup_nameGets the menu group name
voidgroup_name=(string string)Sets the menu group name
[const]stringmenu_pathGets the menu path
voidmenu_path=(string string)Sets the menu path
[const]stringnameGets the name of the macro
[const]stringpathGets the path of the macro
[const]stringprologGets the prolog code
voidprolog=(string string)Sets the prolog
voidshow_in_menu=(bool flag)Sets a value indicating whether the macro shall be shown in the menu
[const]boolshow_in_menu?Gets a value indicating whether the macro shall be shown in the menu
[const]stringtextGets the macro text
voidtext=(string string)Sets the macro text

Public static methods and constants

Macro ptrmacro_by_path(string path)Finds the macro by installation path

Deprecated methods (protected, public, static, non-static and constructors)

voidcreateUse of this method is deprecated. Use _create instead
voiddestroyUse of this method is deprecated. Use _destroy instead
[const]booldestroyed?Use of this method is deprecated. Use _destroyed? instead
[const]boolis_const_object?Use of this method is deprecated. Use _is_const_object? instead

Detailed description

_create

Signature: void _create

Description: Ensures the C++ object is created

Use this method to ensure the C++ object is created, for example to ensure that resources are allocated. Usually C++ objects are created on demand and not necessarily when the script object is created.

_destroy

Signature: void _destroy

Description: Explicitly destroys the object

Explicitly destroys the object on C++ side if it was owned by the script interpreter. Subsequent access to this object will throw an exception. If the object is not owned by the script, this method will do nothing.

_destroyed?

Signature: [const] bool _destroyed?

Description: Returns a value indicating whether the object was already destroyed

This method returns true, if the object was destroyed, either explicitly or by the C++ side. The latter may happen, if the object is owned by a C++ object which got destroyed itself.

_is_const_object?

Signature: [const] bool _is_const_object?

Description: Returns a value indicating whether the reference is a const reference

This method returns true, if self is a const reference. In that case, only const methods may be called on self.

_manage

Signature: void _manage

Description: Marks the object as managed by the script side.

After calling this method on an object, the script side will be responsible for the management of the object. This method may be called if an object is returned from a C++ function and the object is known not to be owned by any C++ instance. If necessary, the script side may delete the object if the script's reference is no longer required.

Usually it's not required to call this method. It has been introduced in version 0.24.

_unmanage

Signature: void _unmanage

Description: Marks the object as no longer owned by the script side.

Calling this method will make this object no longer owned by the script's memory management. Instead, the object must be managed in some other way. Usually this method may be called if it is known that some C++ object holds and manages this object. Technically speaking, this method will turn the script's reference into a weak reference. After the script engine decides to delete the reference, the object itself will still exist. If the object is not managed otherwise, memory leaks will occur.

Usually it's not required to call this method. It has been introduced in version 0.24.

category

Signature: [const] string category

Description: Gets the category tags

The category tags string indicates to which categories a macro will belong to. This string is only used for templates currently and is a comma-separated list of category names.

Python specific notes:
The object exposes a readable attribute 'category'. This is the getter.

category=

Signature: void category= (string string)

Description: Sets the category tags string

See category for details.

Python specific notes:
The object exposes a writable attribute 'category'. This is the setter.

create

Signature: void create

Description: Ensures the C++ object is created

Use of this method is deprecated. Use _create instead

description

Signature: [const] string description

Description: Gets the description text

The description text of a macro will appear in the macro list. If used as a macro template, the description text can have the format "Group;;Description". In that case, the macro will appear in a group with title "Group".

Python specific notes:
The object exposes a readable attribute 'description'. This is the getter.

description=

Signature: void description= (string description)

Description: Sets the description text

description:The description text.

See description for details.

Python specific notes:
The object exposes a writable attribute 'description'. This is the setter.

destroy

Signature: void destroy

Description: Explicitly destroys the object

Use of this method is deprecated. Use _destroy instead

destroyed?

Signature: [const] bool destroyed?

Description: Returns a value indicating whether the object was already destroyed

Use of this method is deprecated. Use _destroyed? instead

epilog

Signature: [const] string epilog

Description: Gets the epilog code

The epilog is executed after the actual code is executed. Interpretation depends on the implementation of the DSL interpreter for DSL macros.

Python specific notes:
The object exposes a readable attribute 'epilog'. This is the getter.

epilog=

Signature: void epilog= (string string)

Description: Sets the epilog

See epilog for details.

Python specific notes:
The object exposes a writable attribute 'epilog'. This is the setter.

group_name

Signature: [const] string group_name

Description: Gets the menu group name

If a group name is specified and show_in_menu? is true, the macro will appear in a separate group (separated by a separator) together with other macros sharing the same group.

Python specific notes:
The object exposes a readable attribute 'group_name'. This is the getter.

group_name=

Signature: void group_name= (string string)

Description: Sets the menu group name

See group_name for details.

Python specific notes:
The object exposes a writable attribute 'group_name'. This is the setter.

is_const_object?

Signature: [const] bool is_const_object?

Description: Returns a value indicating whether the reference is a const reference

Use of this method is deprecated. Use _is_const_object? instead

macro_by_path

Signature: [static] Macro ptr macro_by_path (string path)

Description: Finds the macro by installation path

Returns nil if no macro with this path can be found.

This method has been added in version 0.26.

menu_path

Signature: [const] string menu_path

Description: Gets the menu path

If a menu path is specified and show_in_menu? is true, the macro will appear in the menu at the specified position.

Python specific notes:
The object exposes a readable attribute 'menu_path'. This is the getter.

menu_path=

Signature: void menu_path= (string string)

Description: Sets the menu path

See menu_path for details.

Python specific notes:
The object exposes a writable attribute 'menu_path'. This is the setter.

name

Signature: [const] string name

Description: Gets the name of the macro

This attribute has been added in version 0.25.

new

Signature: [static] new Macro ptr new

Description: Creates a new object of this class

Python specific notes:
This method is the default initializer of the object

path

Signature: [const] string path

Description: Gets the path of the macro

The path is the path where the macro is stored, starting with an abstract group identifier. The path is used to identify the macro in the debugger for example.

prolog

Signature: [const] string prolog

Description: Gets the prolog code

The prolog is executed before the actual code is executed. Interpretation depends on the implementation of the DSL interpreter for DSL macros.

Python specific notes:
The object exposes a readable attribute 'prolog'. This is the getter.

prolog=

Signature: void prolog= (string string)

Description: Sets the prolog

See prolog for details.

Python specific notes:
The object exposes a writable attribute 'prolog'. This is the setter.

show_in_menu=

Signature: void show_in_menu= (bool flag)

Description: Sets a value indicating whether the macro shall be shown in the menu

Python specific notes:
The object exposes a writable attribute 'show_in_menu'. This is the setter.

show_in_menu?

Signature: [const] bool show_in_menu?

Description: Gets a value indicating whether the macro shall be shown in the menu

Python specific notes:
The object exposes a readable attribute 'show_in_menu'. This is the getter.

text

Signature: [const] string text

Description: Gets the macro text

The text is the code executed by the macro interpreter. Depending on the DSL interpreter, the text can be any kind of code.

Python specific notes:
The object exposes a readable attribute 'text'. This is the getter.

text=

Signature: void text= (string string)

Description: Sets the macro text

See text for details.

Python specific notes:
The object exposes a writable attribute 'text'. This is the setter.