private void UpdateExtensionInfo(bool extensionSelected) { if (!extensionSelected) { EExtensionLogoPctbx.Image = Resources.Tanji; } else { ExtensionBase extension = EExtensionsLstvw.GetItemExtension(); if (extension == null || extension.UIContext == null) { return; } EExtensionLogoPctbx.Image = extension.Logo ?? Resources.Tanji; if (EExtensionLogoPctbx.Size.Width < 64 || EExtensionLogoPctbx.Image.Size.Height < 64) { EExtensionLogoPctbx.SizeMode = PictureBoxSizeMode.CenterImage; } else { EExtensionLogoPctbx.SizeMode = PictureBoxSizeMode.Zoom; } extension.UIContext.BringToFront(); } ExtensionsActiveTxt.Text = string.Format(EXTENSIONS_FORMAT, _contractor.ExtensionsRunning.Count, _contractor.Extensions.Count); }
public void InitializeItemExtension() { ExtensionBase extension = GetItemExtension(); if (extension == null) { return; } ((Contractor)extension.Contractor).Initialize(extension); }
public void Install(ExtensionBase extension) { if (extension == null) { return; } ListViewItem item = FocusAdd(extension.Name, extension.Author, extension.Version.ToString()); _items[extension] = item; _extensions[item] = extension; }
public override void Template(TemplateContext context, IGenerationElement concreteElement) { if (!(concreteElement is FunctionCall functionCall)) { throw new TemplateGenerationException(this, $"Can not create a function from a {concreteElement.GetType().Name}"); } Context = context; if (ExtensionBase != null) { AddThisPointer(); } if (functionCall.Object != null) { var functionCallExtensionBase = functionCall.Object.GetResultType(context.CallerContext); if (ExtensionBase == null) { throw new TemplateGenerationException(this, "Generated function has no extension base, " + $"but the function call has the extension base {functionCallExtensionBase}"); } ExtensionBase.Template(context, functionCallExtensionBase); } else if (ExtensionBase != null) { throw new TemplateGenerationException(this, $"Generated function has the extension base {ExtensionBase}," + " but the function call has no extension base"); } if (functionCall.Parameter.Count != Parameter.Count) { throw new TemplateGenerationException(this, $"Expected {functionCall.Parameter.Count} parameters, got {Parameter.Count}"); } for (var i = 0; i < functionCall.Parameter.Count; ++i) { Parameter[i].Template(context, functionCall.Parameter[i].GetResultType(context.CallerContext)); } ReturnType.Template(context, null); foreach (var i in Body) { i.Template(context, null); } }
protected override void RemoveItem(ListViewItem listViewItem) { ExtensionBase extension = GetItemExtension(); if (extension == null) { return; } ((Contractor)extension.Contractor).Uninstall(extension); _items.Remove(extension); _extensions.Remove(listViewItem); base.RemoveItem(listViewItem); }
public override object Clone() { return(new Function { Column = Column, Line = Line, FilePath = FilePath, ReturnType = (SimpleType)ReturnType.CloneDeep(), ExtensionBase = ExtensionBase?.CloneDeep() as SimpleType, Parameter = Parameter.Select(i => (Variable)i.CloneDeep()).ToList(), Body = Body.Select(i => (IStatement)i.CloneDeep()).ToList(), TemplateList = TemplateList?.CloneDeep() as TemplateList, Name = Name, Static = Static }); }
public override string ToString() { var name = ReturnType.ToString() + ' '; if (ExtensionBase != null) { name += ExtensionBase.ToString() + '.'; } name += Name; if (TemplateList != null) { name += TemplateList; } name += $"({string.Join(',', Parameter.Select(i => i.Type))})"; return(name); }
private void CreateInstance(ExtensionField field) { if (field.targetType == null) { UnityEngine.Debug.Log($"[Area::{this.name}]: Unable to load extesion type of \"{field.targetType}\"."); return; } ExtensionBase extensionInstance = ExtensionSingletons .Where(t => t.GetType().IsAssignableFrom(field.targetType)) .FirstOrDefault(); if (extensionInstance == null) { extensionInstance = (ExtensionBase)System.Activator.CreateInstance(field.targetType); ExtensionSingletons.Add(extensionInstance); } System.Threading.CancellationToken token = WorkerTokenSource.Token; workers[field.targetType] = extensionInstance.GetWorker(token, this); }
private void PrintFunctionHeader(PrintType type, Printer printer) { ReturnType.Print(type, printer); printer.Write(" "); if (Static) { ExtensionBase.Print(PrintType.WithoutModifiers, printer); printer.Write("_"); } printer.Write($"{Name}("); if (!Static && ExtensionBase != null) { var thisVariable = new Variable { Line = Line, Column = Column, Name = "__this", Type = ExtensionBase }; thisVariable.Print(type, printer); if (Parameter.Any()) { printer.Write(", "); } } foreach (var i in Parameter) { i.Print(type, printer); if (i != Parameter.Last()) { printer.Write(", "); } } printer.Write(")"); }
/////////////////////////////////////////////////////////////////////////////////////////// private static Option <ExtensionBase> LoadExtension(string path) { if (!File.Exists(path)) { return(Option.None); } Assembly assembly = Assembly.LoadFrom(path); string typeName = Path.GetFileName(path); typeName = typeName.Substring(0, typeName.Length - ExtensionExtension.Length) + "." + ExtensionClassName; Type type = assembly.GetType(typeName); if (type == null) { return(Option.None); } ExtensionBase extension = (ExtensionBase)Activator.CreateInstance(type); return(((ExtensionBase)Activator.CreateInstance(type)).AsOption()); }
public HueUIControl(ExtensionBase ext) { InitializeComponent(); }
public SKoreForm(ExtensionBase extension) : this() { Extension = extension; }