/** * Copyright JS Foundation and other contributors, http://js.foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. **/ RED.menu = (function() { var menuItems = {}; function createMenuItem(opt) { var item; if (opt !== null && opt.id) { var themeSetting = RED.settings.theme("menu."+opt.id); if (themeSetting === false) { return null; } } function setInitialState() { var savedStateActive = RED.settings.get("menu-" + opt.id); if (opt.setting) { // May need to migrate pre-0.17 setting if (savedStateActive !== null) { RED.settings.set(opt.setting,savedStateActive); RED.settings.remove("menu-" + opt.id); } else { savedStateActive = RED.settings.get(opt.setting); } } if (savedStateActive) { link.addClass("active"); triggerAction(opt.id,true); } else if (savedStateActive === false) { link.removeClass("active"); triggerAction(opt.id,false); } else if (opt.hasOwnProperty("selected")) { if (opt.selected) { link.addClass("active"); } else { link.removeClass("active"); } triggerAction(opt.id,opt.selected); } } if (opt === null) { item = $('
'); } else { item = $(''); if (opt.group) { item.addClass("menu-group-"+opt.group); } var linkContent = ''; if (opt.toggle) { linkContent += ''; linkContent += ''; } if (opt.icon !== undefined) { if (/\.png/.test(opt.icon)) { linkContent += '