klayout可以自定义菜单项的显示和隐藏。
1.用户选择显示的菜单项后提交
//layMainConfigPages.cc
void
CustomizeMenuConfigPage::commit (lay::PluginRoot *root)
{
...
packed_hidden_flags = pack_menu_items_hidden (hidden);
root->config_set (cfg_menu_items_hidden, packed_hidden_flags);
}
2. 系统应用菜单项的更改
//layMainWindow.cc
bool
MainWindow::configure (const std::string &name, const std::string &value)
{
...
else if (name == cfg_menu_items_hidden) {
std::vector<std::pair<std::string, bool> > hidden = unpack_menu_items_hidden (value);
apply_hidden (hidden);
return true;
}