Python Usage Examples#

Use the public API interface#

import omni.kit.widget.layers

# set current focused layer
omni.kit.widget.layers.set_current_focused_layer_item(some_layer_path)

def on_layer_selection_changed(item):
    layer_item = omni.kit.widget.layers.get_current_focused_layer_item()
    if layer_item:
        # do something on layer selection changed
        pass

# subscribe layer item select change in layer widget
omni.kit.widget.layers.add_layer_selection_changed_fn(on_layer_selection_changed)

# remove the subscribe function
omni.kit.widget.layers.remove_layer_selection_changed_fn(on_layer_selection_changed)

Add custom layers widget context menu#

import omni.kit.widget.layers as layers
menu_subscription = layers.ContextMenu.add_menu(
    [
        {"name": ""},
        {
            "name": "Edit...",
            "glyph": "menu_rename.svg",
            "show_fn": [
                layers.ContextMenu.is_layer_item,
                layers.ContextMenu.is_not_missing_layer,
                layers.ContextMenu.is_layer_writable,
                layers.ContextMenu.is_layer_not_locked_by_other,
                layers.ContextMenu.is_layer_and_parent_unmuted,
                LayersMenu.is_not_editing,
            ],
            "onclick_fn": LayersMenu.start_editing,
        },
    ])