コード例 #1
0
ファイル: MainWindow.cs プロジェクト: yuluos/CocoStudio2.0.6
        public void RemovePad(PadCodon codon)
        {
            if (codon.HasId)
            {
                Command command = IdeApp.CommandService.GetCommand((object)codon.Id);
                if (command != null)
                {
                    IdeApp.CommandService.UnregisterCommand(command);
                }
            }
            DockItem dockItem = this.GetDockItem(codon);

            this.padContentCollection.Remove(codon);
            PadWindow padWindow = (PadWindow)this.GetPadWindow(codon);

            if (padWindow != null)
            {
                padWindow.NotifyDestroyed();
                this.padCodons.Remove((IPadWindow)padWindow);
            }
            if (dockItem != null)
            {
                this.dock.RemoveItem(dockItem);
            }
            this.padWindows.Remove(codon);
        }
コード例 #2
0
ファイル: MainWindow.cs プロジェクト: yuluos/CocoStudio2.0.6
        private void AddPad(PadCodon padCodon, string placement, DockItemStatus defaultStatus)
        {
            PadWindow window = new PadWindow((IWorkbench)this, padCodon);

            window.Icon = padCodon.Icon;
            this.padWindows[padCodon]          = (IPadWindow)window;
            this.padCodons[(IPadWindow)window] = padCodon;
            window.StatusChanged += new EventHandler(this.UpdatePad);
            string   dockLocation = this.ToDockLocation(placement);
            DockItem item         = this.dock.AddItem(padCodon.PadId);

            item.Label             = LanguageOption.GetValueBykey(padCodon.Label);
            item.DefaultLocation   = dockLocation;
            item.DefaultVisible    = false;
            item.DefaultStatus     = defaultStatus;
            item.DockLabelProvider = (IDockItemLabelProvider)padCodon;
            window.Item            = item;
            if (padCodon.Initialized)
            {
                this.CreatePadContent(true, padCodon, window, item);
            }
            else
            {
                item.ContentRequired += (EventHandler)((param0, param1) => this.CreatePadContent(false, padCodon, window, item));
            }
            item.VisibleChanged += (EventHandler)((param0, param1) =>
            {
                if (item.Visible)
                {
                    window.NotifyShown();
                }
                else
                {
                    window.NotifyHidden();
                }
            });
            item.ContentVisibleChanged += (EventHandler)((param0, param1) =>
            {
                if (item.ContentVisible)
                {
                    window.NotifyContentShown();
                }
                else
                {
                    window.NotifyContentHidden();
                }
            });
            if (this.padContentCollection.Contains(padCodon))
            {
                return;
            }
            this.padContentCollection.Add(padCodon);
        }
コード例 #3
0
ファイル: MainWindow.cs プロジェクト: yuluos/CocoStudio2.0.6
        private void CreatePadContent(bool force, PadCodon padCodon, PadWindow window, DockItem item)
        {
            if (!force && item.Content != null)
            {
                return;
            }
            IPadContent padContent = padCodon.InitializePadContent((IPadWindow)window);
            Widget      child;

            if (padContent is Widget)
            {
                child = padContent.Control;
            }
            else
            {
                PadCommandRouterContainer commandRouterContainer = new PadCommandRouterContainer(window, padContent.Control, (object)padContent, true);
                commandRouterContainer.Show();
                child = (Widget)commandRouterContainer;
            }
            PadCommandRouterContainer commandRouterContainer1 = new PadCommandRouterContainer(window, child, (object)this.toolbarFrame, false);

            commandRouterContainer1.Show();
            item.Content = (Widget)commandRouterContainer1;
        }