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();
		}
Exemplo n.º 3
0
        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;
		}
Exemplo n.º 7
0
		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));
		}
Exemplo n.º 11
0
        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 Attach(FormsDesignerViewContent viewContent)
 {
     this.viewContent = viewContent;
 }
 public void Detach()
 {
     this.viewContent = null;
 }
Exemplo n.º 18
0
 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//
 }