Fixed issue #2174 - two new events

1.) LayoutView#on_current_layer_changed(iter)
"iter" is the iterator pointing to the new current layer
Is called after the current layer (the highlighted layer)
changed.

2.) LayoutView#on_selected_layers_changed
Is called after the selected layer set changed.
This commit is contained in:
Matthias Koefferlein
2025-10-18 15:46:10 +02:00
parent ec5de0ffe8
commit 3ca88ebfcb
7 changed files with 44 additions and 1 deletions
@@ -1781,6 +1781,21 @@ LAYBASIC_PUBLIC Class<lay::LayoutViewBase> decl_LayoutViewBase (decl_Dispatcher,
"\n"
"This event was introduced in version 0.25.\n"
) +
gsi::event ("on_current_layer_changed", static_cast<tl::event<const lay::LayerPropertiesConstIterator &> (lay::LayoutViewBase::*)> (&lay::LayoutViewBase::current_layer_changed_event), gsi::arg ("new_layer"),
"@brief An event indicating the current layer has changed\n"
"@param new_layer The layer iterator of the new current layer\n"
"\n"
"This event is triggered after the current layer was changed - i.e. a new layer is selected in the layer list.\n"
"\n"
"This event was introduced in version 0.30.5.\n"
) +
gsi::event ("on_selected_layers_changed", static_cast<tl::Event (lay::LayoutViewBase::*)> (&lay::LayoutViewBase::selected_layers_changed_event),
"@brief An event indicating the layer selection has changed\n"
"\n"
"This event is triggered after the layer selection was changed - i.e. layers got selected or unselected.\n"
"\n"
"This event was introduced in version 0.30.5.\n"
) +
gsi::event ("on_cell_visibility_changed", static_cast<tl::Event (lay::LayoutViewBase::*)> (&lay::LayoutViewBase::cell_visibility_changed_event),
"@brief An event indicating that the visibility of one or more cells has changed\n"
"\n"
+7 -1
View File
@@ -5643,7 +5643,13 @@ LayoutViewBase::current_layer_changed_slot (const lay::LayerPropertiesConstItera
current_layer_changed_event (iter);
}
void
void
LayoutViewBase::selected_layers_changed_slot ()
{
selected_layers_changed_event ();
}
void
LayoutViewBase::add_new_layers (const LayerState &state)
{
std::vector <lay::ParsedLayerSource> actual;
+13
View File
@@ -786,9 +786,17 @@ public:
/**
* @brief An event signalling that the current layer has changed
*
* The event is emitted when the user changes the current layer.
*/
tl::event<const lay::LayerPropertiesConstIterator &> current_layer_changed_event;
/**
* @brief An event signalling that the selected layers have changed
*
* The event is emitted when the user changes the selection.
*/
tl::Event selected_layers_changed_event;
/**
* @brief An event signalling that the visibility of some cells has changed
@@ -2794,6 +2802,11 @@ public:
*/
void current_layer_changed_slot (const lay::LayerPropertiesConstIterator &iter);
/**
* @brief Called when the layer selection changed
*/
void selected_layers_changed_slot ();
// zoom slots
void zoom_fit ();
void zoom_fit_sel ();