MenuItemSources.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import strings = require("../EditorStrings");
  2. import EditorEvents = require("../../editor/EditorEvents");
  3. import EditorUI = require("../EditorUI");
  4. var UIMenuItemSource = Atomic.UIMenuItemSource;
  5. var UIMenuItem = Atomic.UIMenuItem;
  6. var StringID = strings.StringID;
  7. var srcLookup = {};
  8. export function getMenuItemSource(id: string): Atomic.UIMenuItemSource {
  9. return srcLookup[id];
  10. }
  11. export function createMenuItemSource(id: string, items: any): Atomic.UIMenuItemSource {
  12. var src = srcLookup[id] = new UIMenuItemSource();
  13. for (var key in items) {
  14. if (items.hasOwnProperty(key)) {
  15. var value = items[key];
  16. if (typeof value === 'string') {
  17. src.addItem(new UIMenuItem(key, value));
  18. } else if (value == null) {
  19. src.addItem(new UIMenuItem(key));
  20. }
  21. else if (typeof value === 'object' && value.length == 1) {
  22. src.addItem(new UIMenuItem(key, value[0]));
  23. } else if (typeof value === 'object' && value.length == 2) {
  24. src.addItem(new UIMenuItem(key, value[0], strings.EditorString.GetString(value[1])));
  25. } else if (typeof value === 'object' && value.length == 3) {
  26. var str = "";
  27. if (value[1])
  28. str = strings.EditorString.GetString(value[1]);
  29. var skinBg = "";
  30. if (value[2])
  31. skinBg = value[2];
  32. src.addItem(new UIMenuItem(key, value[0], str, skinBg));
  33. }
  34. }
  35. }
  36. return src;
  37. }