import omni.ui as ui
from omni.kit.window.layer_stack import LayerStackWidget
# Create a window
window = ui.Window("Layer Stack Property Management", width=800, height=600)
# Callback for prim selection changes
def on_prim_selection_changed(prim_path):
print(f"Selected prim: {prim_path}")
with window.frame:
with ui.VStack():
# Create the LayerStackWidget
layer_stack_widget = LayerStackWidget(on_prim_selection_changed=on_prim_selection_changed)
# Property display area
with ui.HStack(height=30):
ui.Label("Selected Property:")
property_label = ui.Label("None")
# UI for managing the widget and properties
with ui.HStack(height=30):
# Get and display the currently selected property
def show_selected_property():
prop = layer_stack_widget.selected_property
property_label.text = str(prop) if prop else "None"
ui.Button("Show Selected Property", clicked_fn=show_selected_property)
# Set a property as selected (in a real app, this would be a real property)
def set_example_property():
example_property = "example_property"
layer_stack_widget.selected_property = example_property
property_label.text = str(example_property)
ui.Button("Set Example Property", clicked_fn=set_example_property)
# Clear the widget
def clear_widget():
layer_stack_widget.clear()
property_label.text = "None"
ui.Button("Clear Widget", clicked_fn=clear_widget)