import * as React from 'react'; import { Menu, Icon, message } from 'antd'; import { MenuType } from './enum/MenuType'; import * as ReactDOM from 'react-dom'; import { MessageUtils, Message } from '../message/MessageUtils'; import { ProjectMessage } from '../project/events/ProjectMessage'; import { FileUtils } from '../../utils/FileUtils'; import { Paths } from '../../utils/Paths'; import { PluginDecoder } from '../plugin/PluginDecoder'; import { PluginVo } from '../plugin/PluginVo'; import { PluginMessage } from '../plugin/events/PluginMessage'; import { Global } from '../../utils/Global'; const ipcRender = require('electron').ipcRenderer; export class Menus extends React.Component{ constructor() { super(); this.state = { plugins: [], components: [] }; } componentWillMount(): void{ this.onPluginsInit(); } //插件初始化 private onPluginsInit(): void { const {plugins, components} = this.state; PluginDecoder.initalize(($plugins) => { console.log('解析插件:', $plugins); for (var i: number = 0, l: number = $plugins.length; i < l; i++) { var pluginVo: PluginVo = $plugins[i]; plugins[i] = {pluginVo.title}; } this.setState({ plugins }); }, this); } render() { const SubMenu = Menu.SubMenu; const MenuItemGroup = Menu.ItemGroup; const {plugins, components} = this.state; return ( 文件}> 新建项目 打开项目 保存 另存为 最近打开项目 重新加载 关闭编辑器 切换全屏 开发者工具 编辑}> 撤销 恢复 剪切 复制 粘贴 全选 查看}> 放大 缩小 重置缩放 插件}> {plugins} 组件}> 精灵图 精灵 动画 按纽 九宫格 瓦片平铺 文本 位图字体 视频 声音 Tiled 数组 XML JSON 微信 骨骼 粒子 帮助}> 欢迎页 关于 问题反馈 ); } handleClick(e) { this.setState({ current: e.key }); message.info("当前状态:" + e.key); var isPlugin: boolean = e.key.indexOf(MenuType.PLUGINS) != -1; if (isPlugin) { var pluginName: string = e.key.slice(MenuType.PLUGINS.length); var curpluginVo: PluginVo = PluginDecoder.getPlugin(pluginName); MessageUtils.send(PluginMessage.ADD_PLUGINS, curpluginVo); } else { switch (e.key) { case MenuType.NEW_PROJECT: MessageUtils.send(ProjectMessage.OPEN_NEW_PROJECT_WINDOW); break; case MenuType.OPEN_PROJECT: MessageUtils.send(ProjectMessage.OPEN_PROJECT); break; case MenuType.SAVE_PROJECT: MessageUtils.send(ProjectMessage.SAVE_PROJECT); break; case MenuType.SAVE_AS_PROJECT: MessageUtils.send(ProjectMessage.SAVE_AS_PROJECT); break; case MenuType.OPEN_RECENT_PROJECT: MessageUtils.send(ProjectMessage.OPEN_RECENT_PROJECT); break; case MenuType.RELOAD_PROJECT: MessageUtils.send(ProjectMessage.RELOAD); break; case MenuType.CLOSE_EDITOR: MessageUtils.send(ProjectMessage.CLOSE_EDITOR); break; case MenuType.SWITCH_FULLSCREEN: MessageUtils.send(ProjectMessage.SWITCH_FULLSCREEN); break; case MenuType.DEVELOP_TOOLS: MessageUtils.send(ProjectMessage.SWITCH_DEVELOP_TOOLS); break; case MenuType.ZOOM_IN: ipcRender.send(MenuType.ZOOM_IN); break; case MenuType.ZOOM_OUT: ipcRender.send(MenuType.ZOOM_OUT); break; case MenuType.ACTUAL_SIZE: ipcRender.send(MenuType.ACTUAL_SIZE); break; } } } }