MCPcopy Create free account
hub / github.com/KLayout/klayout / signal_apply_technology

Method signal_apply_technology

src/laybasic/laybasic/layLayoutViewBase.cc:2681–2721  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2679}
2680
2681void
2682LayoutViewBase::signal_apply_technology (lay::LayoutHandle *layout_handle)
2683{
2684 // find the cellview which issued the event
2685 for (unsigned int i = 0; i < cellviews (); ++i) {
2686
2687 if (cellview (i).handle () == layout_handle) {
2688
2689 cancel_esc ();
2690
2691 std::string lyp_file;
2692 const db::Technology *tech = db::Technologies::instance ()->technology_by_name (cellview (i)->tech_name ());
2693 if (tech && ! tech->eff_layer_properties_file ().empty ()) {
2694 lyp_file = tech->eff_layer_properties_file ();
2695 }
2696
2697 if (! lyp_file.empty () || tech->add_other_layers ()) {
2698
2699 // interpolate the layout properties file name
2700 tl::Eval expr;
2701 expr.set_var ("layoutfile", cellview (i)->filename ());
2702 lyp_file = expr.interpolate (lyp_file);
2703
2704 // remove all references to the cellview in the layer properties
2705 for (unsigned int lindex = 0; lindex < layer_lists (); ++lindex) {
2706 lay::LayerPropertiesList props = *m_layer_properties_lists [lindex];
2707 props.remove_cv_references (i);
2708 set_properties (lindex, props);
2709 }
2710
2711 // if a layer properties file is set, create the layer properties now
2712 create_initial_layer_props (i, lyp_file, tech->add_other_layers ());
2713
2714 }
2715
2716 apply_technology_event (int (i));
2717
2718 }
2719
2720 }
2721}
2722
2723void
2724LayoutViewBase::bookmarks (const BookmarkList &b)

Callers

nothing calls this directly

Calls 12

cellviewsFunction · 0.85
cancel_escFunction · 0.85
layer_listsFunction · 0.85
technology_by_nameMethod · 0.80
set_varMethod · 0.80
remove_cv_referencesMethod · 0.80
instanceFunction · 0.70
set_propertiesFunction · 0.70
handleMethod · 0.45
emptyMethod · 0.45
filenameMethod · 0.45
interpolateMethod · 0.45

Tested by

no test coverage detected