void CreateScriptingDesignerLoader() { fakeGenerator = new MockDesignerGenerator(); loader = new TestableScriptingDesignerLoader(fakeGenerator); formsDesignerView = new FormsDesignerViewContent(new MockViewContent(), new MockOpenedFile("Test.py")); fakeGenerator.Attach(formsDesignerView); }
void CreateDesignerGenerator() { textEditorViewContent = new MockTextEditorViewContent(); formsDesignerOpenedFile = new MockOpenedFile("test.py"); textEditorViewContent.PrimaryFile = formsDesignerOpenedFile; formsDesignerView = new FormsDesignerViewContent(textEditorViewContent, formsDesignerOpenedFile); textEditorOptions = new MockTextEditorOptions(); generator = new TestableScriptingDesignerGenerator(textEditorOptions); generator.Attach(formsDesignerView); generator.ParseInfoToReturnFromParseFile = generator.CreateParseInfoWithOneClass(); }
bool HandleMenuCommand(FormsDesignerViewContent formDesigner, IComponent activeComponent, Keys keyPressed) { Assembly asm = typeof(WindowsFormsDesignerOptionService).Assembly; // Microsoft made ToolStripKeyboardHandlingService internal, so we need Reflection Type keyboardType = asm.GetType("System.Windows.Forms.Design.ToolStripKeyboardHandlingService"); object keyboardService = formDesigner.Host.GetService(keyboardType); if (keyboardService == null) { LoggingService.Debug("no ToolStripKeyboardHandlingService found"); return(false); // handle command normally } if (activeComponent is ToolStripItem) { if (keyPressed == Keys.Up) { keyboardType.InvokeMember("ProcessUpDown", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, keyboardService, new object[] { false }); return(true); // command was handled specially } else if (keyPressed == Keys.Down) { keyboardType.InvokeMember("ProcessUpDown", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, keyboardService, new object[] { true }); return(true); // command was handled specially } } bool active = (bool)keyboardType.InvokeMember("TemplateNodeActive", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetProperty, null, keyboardService, null); if (active) { return(true); // command will handled specially by the text box, don't invoke the CommandID } return(false); // invoke the CommandID }
public IReadOnlyList<OpenedFile> GetSourceFiles(FormsDesignerViewContent viewContent, out OpenedFile designerCodeFile) { // get new initialize components var parsedFile = SD.ParserService.ParseFile(viewContent.PrimaryFileName, viewContent.PrimaryFileContent); var compilation = SD.ParserService.GetCompilationForFile(viewContent.PrimaryFileName); foreach (var utd in parsedFile.TopLevelTypeDefinitions) { var td = utd.Resolve(new SimpleTypeResolveContext(compilation.MainAssembly)).GetDefinition(); if (FormsDesignerSecondaryDisplayBinding.IsDesignable(td)) { var initializeComponents = FormsDesignerSecondaryDisplayBinding.GetInitializeComponents(td); if (initializeComponents != null) { string designerFileName = initializeComponents.Region.FileName; if (designerFileName != null) { designerCodeFile = SD.FileService.GetOrCreateOpenedFile(designerFileName); return td.Parts .Select(p => SD.FileService.GetOrCreateOpenedFile(p.UnresolvedFile.FileName)) .Distinct().ToList(); } } } } throw new FormsDesignerLoadException("Could not find InitializeComponent method in any part of the open class."); }
public void FormDesignerNotCreatedIfAlreadyAttached() { MockTextEditorViewContent view = new MockTextEditorViewContent(); IViewContent[] views = null; using (FormsDesignerViewContent formsDesigner = new FormsDesignerViewContent(view, new MockOpenedFile("test.py"))) { view.SecondaryViewContents.Add(formsDesigner); views = displayBinding.CreateSecondaryViewContent(view, new MockTextEditorOptions()); } Assert.AreEqual(0, views.Length); }
public CSharpFormsDesignerLoaderContext(FormsDesignerViewContent viewContent) { this.viewContent = viewContent; }
bool HandleMenuCommand(FormsDesignerViewContent formDesigner, IComponent activeComponent, Keys keyPressed) { Assembly asm = typeof(WindowsFormsDesignerOptionService).Assembly; // Microsoft made ToolStripKeyboardHandlingService internal, so we need Reflection Type keyboardType = asm.GetType("System.Windows.Forms.Design.ToolStripKeyboardHandlingService"); object keyboardService = formDesigner.Host.GetService(keyboardType); if (keyboardService == null) { LoggingService.Debug("no ToolStripKeyboardHandlingService found"); return false; // handle command normally } if (activeComponent is ToolStripItem) { if (keyPressed == Keys.Up) { keyboardType.InvokeMember("ProcessUpDown", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, keyboardService, new object[] { false }); return true; // command was handled specially } else if (keyPressed == Keys.Down) { keyboardType.InvokeMember("ProcessUpDown", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, keyboardService, new object[] { true }); return true; // command was handled specially } } bool active = (bool)keyboardType.InvokeMember("TemplateNodeActive", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetProperty, null, keyboardService, null); if (active) { return true; // command will handled specially by the text box, don't invoke the CommandID } return false; // invoke the CommandID }
public void Detach() { this.viewContent = null; }
public void Attach(FormsDesignerViewContent viewContent) { this.viewContent = viewContent; }
public DesignerLoader CreateLoader(FormsDesignerViewContent viewContent) { return new CSharpDesignerLoader(new CSharpFormsDesignerLoaderContext(viewContent)); }
public bool PreFilterMessage(ref Message m) { if (m.Msg != keyPressedMessage /*&& m.Msg != leftMouseButtonDownMessage*/) { return(false); } FormsDesignerViewContent formDesigner = WorkbenchSingleton.Workbench.ActiveContent as FormsDesignerViewContent; if (formDesigner == null || formDesigner.Host == null) { return(false); } if (formDesigner.UserContent != null && !((Control)formDesigner.UserContent).ContainsFocus) { return(false); } Control originControl = Control.FromChildHandle(m.HWnd); if (originControl != null && formDesigner.UserContent != null && !(formDesigner.UserContent == originControl || formDesigner.UserContent.Contains(originControl))) { // Ignore if message origin not in forms designer // (e.g. navigating the main menu) return(false); } Keys keyPressed = (Keys)m.WParam.ToInt32() | Control.ModifierKeys; if (keyPressed == Keys.Escape) { if (formDesigner.IsTabOrderMode) { formDesigner.HideTabOrder(); return(true); } } CommandWrapper commandWrapper; if (keyTable.TryGetValue(keyPressed, out commandWrapper)) { if (commandWrapper.CommandID == MenuCommands.Delete) { // Check Delete menu is enabled. if (!formDesigner.EnableDelete) { return(false); } } LoggingService.Debug("Run menu command: " + commandWrapper.CommandID); IMenuCommandService menuCommandService = (IMenuCommandService)formDesigner.Host.GetService(typeof(IMenuCommandService)); ISelectionService selectionService = (ISelectionService)formDesigner.Host.GetService(typeof(ISelectionService)); ICollection components = selectionService.GetSelectedComponents(); if (components.Count == 1) { foreach (IComponent component in components) { if (HandleMenuCommand(formDesigner, component, keyPressed)) { return(false); } } } menuCommandService.GlobalInvoke(commandWrapper.CommandID); if (commandWrapper.RestoreSelection) { selectionService.SetSelectedComponents(components); } return(true); } return(false); }
public IReadOnlyList<OpenedFile> GetSourceFiles(FormsDesignerViewContent viewContent, out OpenedFile designerCodeFile) { designerCodeFile = viewContent.PrimaryFile; return new[] { viewContent.PrimaryFile }; }
public DesignerLoader CreateLoader(FormsDesignerViewContent viewContent) { return new WixDialogDesignerLoader((IWixDialogDesigner)viewContent); }
public void Detach() { view = null; }
public void Attach(FormsDesignerViewContent view) { this.view = view; textEditor = ((ITextEditorProvider)view.PrimaryViewContent).TextEditor; }
public void AddDesigner(string FormFileName) { FirstCodeGeneration = FormFileName == null; if (DesignerAndCodeTabs != null) return; DesignerAndCodeTabs = new TabControl(); DesignerAndCodeTabs.Visible = false; Controls.Add(DesignerAndCodeTabs); DesignerAndCodeTabs.Dock = DockStyle.Fill; DesignerAndCodeTabs.TabPages.Add(PascalABCCompiler.StringResources.Get("VP_MF_M_FORM_TAB")); DesignerAndCodeTabs.TabPages.Add(PascalABCCompiler.StringResources.Get("VP_MF_M_PROGRAM_TAB")); DesignerPage = DesignerAndCodeTabs.TabPages[0]; TextPage = DesignerAndCodeTabs.TabPages[1]; Controls.Remove(basePanel); TextPage.Controls.Add(basePanel); MainForm.AddToolBox(); MainForm.AddPropertiesWindow(); Designer = new FormsDesignerViewContent(this); Designer.LoadDesigner(FormFileName); DesignerAndCodeTabs.SelectedIndexChanged += tabControl_SelectedIndexChanged; Designer.Modify += SetDocumentChanged; Control designerSurface = Designer.DesignSurface.View as Control; designerSurface.Dock = DockStyle.Fill; DesignerPage.Controls.Add(designerSurface); FormsDesignerViewContent.PropertyPad.SetActiveContainer(Designer.PropertyContainer); DesignerAndCodeTabs.Show(); MainForm.UpdateDesignerIsActive(); //MainForm.UpdateUndoRedoEnabled(); //roman// }