public void Load(ConfigNode parent) { ConfigNode node = parent.FindChildConfigNode("macro"); if (node == null) { SetDefault(); } else { ConfigNode var = node.FindChildConfigNode("variables"); if (var != null) { _environmentVariables = var.InnerHashtable; } foreach (ConfigNode ch in node.Children) { if (ch.Name == "module") { MacroModule m = new MacroModule(_entries.Count); m.Load(ch); _entries.Add(m); } } } }
public void ReplaceModule(MacroModule old, MacroModule module) { int i = _entries.IndexOf(old); Debug.Assert(i != -1); _entries[i] = module; }
public ModuleProperty(MacroList p, MacroModule mod, Keys shortcut) { _parent = p; _prevShortCut = shortcut; _module = mod==null? new MacroModule(0) : (MacroModule)mod.Clone(); // // Windows �t�H�[�� �f�U�C�i �T�|�[�g�ɕK�v�ł��B // InitializeComponent(); this._titleLabel.Text = GApp.Strings.GetString("Form.ModuleProperty._titleLabel"); this._pathLabel.Text = GApp.Strings.GetString("Form.ModuleProperty._pathLabel"); this._additionalAssemblyLabel.Text = GApp.Strings.GetString("Form.ModuleProperty._additionalAssemblyLabel"); this._shortcutLabel.Text = GApp.Strings.GetString("Form.ModuleProperty._shortcutLabel"); this._debugOption.Text = GApp.Strings.GetString("Form.ModuleProperty._debugOption"); this._okButton.Text = GApp.Strings.GetString("Common.OK"); this._cancelButton.Text = GApp.Strings.GetString("Common.Cancel"); this.Text = GApp.Strings.GetString("Form.ModuleProperty.Text"); if(mod!=null) { _title.Text = _module.Title; _path.Text = _module.Path; _additionalAssembly.Text = Concat(_module.AdditionalAssemblies); _debugOption.Checked = _module.DebugMode; _shortcut.Key = shortcut; } }
public object Clone() { MacroModule m = new MacroModule(_index); m._type = _type; m._path = _path; m._title = _title; m._additionalAssemblies = _additionalAssemblies; m._debugMode = _debugMode; return(m); }
public MacroExecutor(MacroModule mod, MethodInfo ep) { _module = mod; _entryPoint = ep; if(mod.DebugMode) { _traceWindow = new MacroTraceWindow(); _traceWindow.AdjustTitle(mod); _traceWindow.Owner = GApp.Frame; _traceWindow.Show(); } }
public MacroExecutor(MacroModule mod, MethodInfo ep) { _module = mod; _entryPoint = ep; if (mod.DebugMode) { _traceWindow = new MacroTraceWindow(); _traceWindow.AdjustTitle(mod); _traceWindow.Owner = GApp.Frame; _traceWindow.Show(); } }
public static Assembly LoadMacroAssembly(MacroModule mod) { if (mod.Type == MacroType.Assembly) { return(Assembly.LoadFrom(mod.Path)); } else if (mod.Type == MacroType.JavaScript) { ICodeCompiler compiler = new JScriptCodeProvider().CreateCompiler(); CompilerParameters param = new CompilerParameters(); param.CompilerOptions += "/debug"; param.GenerateInMemory = true; param.GenerateExecutable = true; //param.ReferencedAssemblies.Add("mscorlib"); //要るの? param.ReferencedAssemblies.Add("System.Drawing.dll"); param.ReferencedAssemblies.Add(GetMyExePath()); param.ReferencedAssemblies.Add(GetGTerminalPath()); foreach (string x in mod.AdditionalAssemblies) { if (x.Length > 0) { param.ReferencedAssemblies.Add(x); } } CompilerResults result = compiler.CompileAssemblyFromFile(param, mod.Path); if (result.Errors.Count > 0) { StringBuilder bld = new StringBuilder(); bld.Append(GApp.Strings.GetString("Message.MacroExec.FailedToCompileScript")); foreach (CompilerError err in result.Errors) { bld.Append(String.Format("Line {0} Column {1} : {2}\n", err.Line, err.Column, err.ErrorText)); } throw new Exception(bld.ToString()); } return(result.CompiledAssembly); } else { throw new Exception("Unsupported macro module type " + mod.Type.ToString() + " is specified."); } }
private void InitSample() { string b = AppDomain.CurrentDomain.BaseDirectory + "macrosample\\"; MacroModule hello = new MacroModule(0); hello.Title = GApp.Strings.GetString("Caption.MacroModule.SampleTitleHelloWorld"); hello.Path = b + "helloworld.js"; GApp.Options.Commands.AddEntry(new Commands.MacroEntry(hello.Title, Keys.None, Keys.None, hello.Index)); _entries.Add(hello); MacroModule telnet = new MacroModule(1); telnet.Title = GApp.Strings.GetString("Caption.MacroModule.SampleTitleAutoTelnet"); telnet.Path = b + "telnet.js"; GApp.Options.Commands.AddEntry(new Commands.MacroEntry(telnet.Title, Keys.None, Keys.None, telnet.Index)); _entries.Add(telnet); MacroModule bashrc = new MacroModule(2); bashrc.Title = GApp.Strings.GetString("Caption.MacroModule.SampleTitleOpenBashrc"); bashrc.Path = b + "bashrc.js"; GApp.Options.Commands.AddEntry(new Commands.MacroEntry(bashrc.Title, Keys.None, Keys.None, bashrc.Index)); _entries.Add(bashrc); }
public void Execute(IWin32Window parent, MacroModule mod) { if (_runningMacro != null) { GUtil.Warning(parent, GApp.Strings.GetString("Message.MacroModule.AlreadyRunning")); return; } if (mod.Type == MacroType.Unknown) { GUtil.Warning(parent, GApp.Strings.GetString("Message.MacroModule.UnknownModuleType")); return; } else { try { GApp.Frame.Cursor = Cursors.WaitCursor; Assembly asm = MacroUtil.LoadMacroAssembly(mod); MethodInfo ep = asm.EntryPoint; if (ep == null) { throw new Exception(GApp.Strings.GetString("Message.MacroModule.NoEntryPoint")); } _runningMacro = new MacroExecutor(mod, ep); IndicateMacroStarted(); _runningMacro.AsyncExec(); } catch (Exception ex) { GUtil.Warning(parent, ex.Message); } finally { GApp.Frame.Cursor = Cursors.Default; } } }
private string GetInfoString(MacroModule mod) { return mod.DebugMode? GApp.Strings.GetString("Caption.MacroList.Trace") : ""; //�Ƃ肠�����̓f�o�b�O���ǂ������� }
public object Clone() { MacroModule m = new MacroModule(_index); m._type = _type; m._path = _path; m._title = _title; m._additionalAssemblies = _additionalAssemblies; m._debugMode = _debugMode; return m; }
public void RemoveModule(MacroModule mod) { _entries.Remove(mod); }
public void ReplaceModule(MacroModule old, MacroModule module) { int i = _entries.IndexOf(old); Debug.Assert(i!=-1); _entries[i] = module; }
public void InsertModule(int n, MacroModule mod) { _entries.Insert(n, mod); }
public void Load(ConfigNode parent) { ConfigNode node = parent.FindChildConfigNode("macro"); if(node==null) SetDefault(); else { ConfigNode var = node.FindChildConfigNode("variables"); if(var!=null) _environmentVariables = var.InnerHashtable; foreach(ConfigNode ch in node.Children) { if(ch.Name=="module") { MacroModule m = new MacroModule(_entries.Count); m.Load(ch); _entries.Add(m); } } } }
public void AddModule(MacroModule mod) { _entries.Add(mod); }
public void Execute(IWin32Window parent, MacroModule mod) { if(_runningMacro!=null) { GUtil.Warning(parent, GApp.Strings.GetString("Message.MacroModule.AlreadyRunning")); return; } if(mod.Type==MacroType.Unknown) { GUtil.Warning(parent, GApp.Strings.GetString("Message.MacroModule.UnknownModuleType")); return; } else { try { GApp.Frame.Cursor = Cursors.WaitCursor; Assembly asm = MacroUtil.LoadMacroAssembly(mod); MethodInfo ep = asm.EntryPoint; if(ep==null) throw new Exception(GApp.Strings.GetString("Message.MacroModule.NoEntryPoint")); _runningMacro = new MacroExecutor(mod, ep); IndicateMacroStarted(); _runningMacro.AsyncExec(); } catch(Exception ex) { GUtil.Warning(parent, ex.Message); } finally { GApp.Frame.Cursor = Cursors.Default; } } }
public void AdjustTitle(MacroModule mod) { this.Text = GApp.Strings.GetString("Caption.MacroTrace.Title") + mod.Title; }
private void AddListItem(MacroModule mod, Keys shortcut) { ListViewItem li = new ListViewItem(mod.Title); li = _list.Items.Add(li); li.SubItems.Add(mod.Path); li.SubItems.Add(UILibUtil.KeyString(shortcut & Keys.Modifiers, shortcut & Keys.KeyCode, '+')); li.SubItems.Add(GetInfoString(mod)); }
public static Assembly LoadMacroAssembly(MacroModule mod) { if(mod.Type==MacroType.Assembly) { return Assembly.LoadFrom(mod.Path); } else if(mod.Type==MacroType.JavaScript) { ICodeCompiler compiler = new JScriptCodeProvider().CreateCompiler(); CompilerParameters param = new CompilerParameters(); param.CompilerOptions += "/debug"; param.GenerateInMemory = true; param.GenerateExecutable = true; //param.ReferencedAssemblies.Add("mscorlib"); //�v��́H param.ReferencedAssemblies.Add("System.Drawing.dll"); param.ReferencedAssemblies.Add(GetMyExePath()); param.ReferencedAssemblies.Add(GetGTerminalPath()); foreach(string x in mod.AdditionalAssemblies) if(x.Length>0) param.ReferencedAssemblies.Add(x); CompilerResults result = compiler.CompileAssemblyFromFile(param, mod.Path); if(result.Errors.Count>0) { StringBuilder bld = new StringBuilder(); bld.Append(GApp.Strings.GetString("Message.MacroExec.FailedToCompileScript")); foreach(CompilerError err in result.Errors) { bld.Append(String.Format("Line {0} Column {1} : {2}\n", err.Line, err.Column, err.ErrorText)); } throw new Exception(bld.ToString()); } return result.CompiledAssembly; } else throw new Exception("Unsupported macro module type " + mod.Type.ToString() + " is specified."); }