예제 #1
0
        internal DesignerHost(BrowserTree objTree, Panel imagePanel)
        {
            _imagePanel = imagePanel;
            if (_host == null)
            {
                _host             = this;
                _serviceContainer = new ServiceContainer();
                _serviceContainer.AddService(typeof(IDesignerHost), _host);
                _serviceContainer.AddService(typeof(IUIService), _host);
                _serviceContainer.AddService(typeof(ISelectionService), _host);
                _serviceContainer.AddService(typeof(IToolboxService), new ToolboxService());
            }

            _container   = new DesignerContainer(this);
            _defaultSite = new DesignerSite(this, null, _container, "Default site");

            _designSurfaceSite = (DesignerSite)_container.CreateSite(_imagePanel, "Design Surface");

            // Hook the design surface to the ParentControlDesigner
            _parentControlDesigner      = new DummyDesigner();
            _imagePanel.Site            = _designSurfaceSite;
            _designSurfaceSite.Designer = _parentControlDesigner;
            _parentControlDesigner.Initialize(_imagePanel);

            // Used to make sure we don't give a designer for anything higher
            // than the design surface (GetDesigner is called on the
            // surface's parent)
            _designSurfaceParent = ((Control)_imagePanel).Parent;

            // Get the type for the UI selection service, since its private
            // the compiler will not let us see it
            _typeISelectionUIService = ReflectionHelper.GetType("System.Windows.Forms.Design.ISelectionUIService");

            // This is required to get an instance of the selection
            // UI service installed, we don't actually use this
            // designer for anything
            _fakePanel = new Panel();
            IDesigner compDes = new ComponentDocumentDesigner();

            _fakePanel.Site = _container.CreateSite(_fakePanel, "Fake Design Surface");
            compDes.Initialize(_fakePanel);

            // Make the size of the selection service cover the design
            // surface panel so that it will see all of the events
            _selUIService = (Control)GetService(_typeISelectionUIService);
            ObjectBrowser.ImagePanel.ResetSize(_selUIService);
            _imagePanel.Controls.Add(_selUIService);
            _imagePanel.SizeChanged += new EventHandler(ImagePanelSizeChange);

            DesignMode = true;

            // So we change the object selected when a control is selected
            SelectionChanged += new EventHandler(objTree.ControlSelectionChanged);
        }
예제 #2
0
        public DesignerSite(DesignerHost host, IComponent comp, IContainer con, string name)
        {
            _host             = host;
            _component        = comp;
            _container        = con;
            _name             = name;
            _serviceContainer = new ServiceContainer();
            _dictHash         = new Hashtable();
            if (comp is Control)
            {
                _origWindowTarget = ((Control)comp).WindowTarget;
            }

            if (ComponentAdded != null)
            {
                ComponentAdded(this, new ComponentEventArgs(comp));
            }
            if (ComponentAdding != null)
            {
                ComponentAdding(this, new ComponentEventArgs(comp));
            }
        }
예제 #3
0
 public DesignerContainer(DesignerHost host)
 {
     _host      = host;
     _container = new Container();
     _sites     = new ArrayList();
 }
 public BrowserDesignerTransaction(DesignerHost host, String name) : base(name)
 {
     _host = host;
 }
 public BrowserDesignerTransaction(DesignerHost host) : base()
 {
     _host = host;
 }
예제 #6
0
		public DesignerContainer(DesignerHost host)
		{
			_host = host;
			_container = new Container();
			_sites = new ArrayList();
		}
예제 #7
0
		public ObjectBrowser(bool showStatusPanel, bool tabbedLayout)
		{
			TOP_OBJ_NAME = StringParser.Parse("${res:ComponentInspector.ObjectBrowser.TopLevelObjects}");
			int start = Environment.TickCount;
			_objBrowser = this;
			InitTypeHandlers();
			InitializeComponent(showStatusPanel, tabbedLayout);
			CreateControl();
			
			// Create the designer host after everything is setup
			_designerHost = new DesignerHost(_objTree, _imagePanel.DesignPanel);
			
			AssemblySupport.AddCurrentAssemblies();
			_helpFile = Directory.GetCurrentDirectory() + "\\CompInsp_" + "1" + ".chm";
			int timeTaken = Environment.TickCount - start;
		}