| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import strings = require("ui/EditorStrings");
- import EditorEvents = require("editor/EditorEvents");
- import EditorUI = require("ui/EditorUI");
- var UIMenuItemSource = Atomic.UIMenuItemSource;
- var UIMenuItem = Atomic.UIMenuItem;
- var StringID = strings.StringID;
- var srcLookup = {};
- export function getMenuItemSource(id: string): Atomic.UIMenuItemSource {
- return srcLookup[id];
- }
- function createMenuItemSourceRecursive(items: any): Atomic.UIMenuItemSource {
- var src = new UIMenuItemSource();
- for (var key in items) {
- if (items.hasOwnProperty(key)) {
- var value = items[key];
- if (typeof value === 'string') {
- src.addItem(new UIMenuItem(key, value));
- } else if (value == null) {
- // add a separator
- src.addItem(new UIMenuItem(key));
- } else if (Object.prototype.toString.call(value) === '[object Array]') {
- if (value.length == 1)
- src.addItem(new UIMenuItem(key, value[0]));
- else if (value.length == 2)
- src.addItem(new UIMenuItem(key, value[0], strings.EditorString.GetString(value[1])));
- else if (value.length == 3) {
- var str = "";
- if (value[1])
- str = strings.EditorString.GetString(value[1]);
- var skinBg = "";
- if (value[2])
- skinBg = value[2];
- src.addItem(new UIMenuItem(key, value[0], str, skinBg));
- }
- }
- else if (typeof value === 'object') {
- var subsrc = createMenuItemSourceRecursive(value);
- var item = new Atomic.UIMenuItem(key);
- item.subSource = subsrc;
- src.addItem(item);
- }
- }
- }
- return src;
- }
- export function createMenuItemSource(id: string, items: any): Atomic.UIMenuItemSource {
- srcLookup[id] = createMenuItemSourceRecursive(items);
- return srcLookup[id];
- }
|