コード例 #1
0
// Generated AddToManagers
        public virtual void ReAddToManagers(Layer layerToAddTo)
        {
            LayerProvidedByContainer = layerToAddTo;
            SpriteManager.AddPositionedObject(this);
            GuiManager.AddWindow(this);
            SpriteManager.AddToLayer(PlayerSprite, LayerProvidedByContainer);
        }
コード例 #2
0
 public virtual void AddToManagers(Layer layerToAddTo)
 {
     LayerProvidedByContainer = layerToAddTo;
     SpriteManager.AddPositionedObject(this);
     GuiManager.AddWindow(this);
     SpriteManager.AddToLayer(PlayerSprite, LayerProvidedByContainer);
     AddToManagersBottomUp(layerToAddTo);
     CustomInitialize();
 }
コード例 #3
0
// Generated AddToManagers
        public virtual void ReAddToManagers(Layer layerToAddTo)
        {
            LayerProvidedByContainer = layerToAddTo;
            SpriteManager.AddPositionedObject(this);
            GuiManager.AddWindow(this);
            TextManager.AddToLayer(LabelText, LayerProvidedByContainer);
            if (LabelText.Font != null)
            {
                LabelText.SetPixelPerfectScale(LayerProvidedByContainer);
            }
        }
コード例 #4
0
// Generated AddToManagers
        public virtual void ReAddToManagers(Layer layerToAddTo)
        {
            LayerProvidedByContainer = layerToAddTo;
            SpriteManager.AddPositionedObject(this);
            GuiManager.AddWindow(this);
            VictoryTextLabel.ReAddToManagers(LayerProvidedByContainer);
            PlayAgainText.ReAddToManagers(LayerProvidedByContainer);
            NoButton.ReAddToManagers(LayerProvidedByContainer);
            YesButton.ReAddToManagers(LayerProvidedByContainer);
            SpriteManager.AddToLayer(BackgroundSprite, LayerProvidedByContainer);
        }
コード例 #5
0
        public IObjectDisplayer GetObjectDisplayerForObject(object objectToDisplay, Window requestingWindow, string memberName, out bool isNewWindow)
        {
            IObjectDisplayer requestingWindowAsObjectDisplayer = requestingWindow as IObjectDisplayer;

            if (mObjectDisplayers.ContainsKey(objectToDisplay))
            {
                isNewWindow = false;
                return(mObjectDisplayers[objectToDisplay]);
            }
            else //Definitely creating a new ObjectDisplayer.
            {
                #region Remove existing windows depending on the new window limitation
                switch (mNewWindowLimitation)
                {
                    #region By Type
                case NewWindowLimitation.ByType:
                    // if there is already something showing this type, get rid of it
                    Type typeOfObject = objectToDisplay.GetType();

                    foreach (KeyValuePair <object, IObjectDisplayer> kvp in mObjectDisplayers)
                    {
                        if (kvp.Key.GetType() == typeOfObject)
                        {
                            if (mObjectDisplayers[kvp.Key] is Window)
                            {
                                ((Window)mObjectDisplayers[kvp.Key]).CloseWindow();
                            }
                            else
                            {
                                throw new NotImplementedException("We don't currently support IObjectDisplayers that are not Windows.");
                            }

                            break;
                        }
                    }
                    break;
                    #endregion

                    #region By Requesting Window
                case NewWindowLimitation.ByRequestingWindow:
                    if (requestingWindow != null)
                    {
                        if (mWindowFamilies.ContainsKey(requestingWindowAsObjectDisplayer))
                        {
                            Window windowToGetRidOf =
                                mWindowFamilies[requestingWindowAsObjectDisplayer] as Window;

                            // Any Window that is created through this object
                            // will have its Closing event remove itself from the
                            // GuiManager.
                            windowToGetRidOf.CloseWindow();
                        }
                    }
                    break;
                    #endregion

                default:
                    break;
                }
                #endregion

                #region Create the new IObjectDisplayer, add it to the by-object dictionary, and assign it its ObjectDisplaying
                isNewWindow = true;
                IObjectDisplayer newObjectDisplayer = CreateObjectDisplayer(objectToDisplay, requestingWindow, memberName);

                newObjectDisplayer.ObjectDisplayingAsObject = objectToDisplay;
                mObjectDisplayers.Add(objectToDisplay, newObjectDisplayer);
                #endregion

                #region If the newly-created object displayer is a Window, then add it to the GuiManager and give it the appropriate events
                if (newObjectDisplayer is Window)
                {
                    Window asWindow = newObjectDisplayer as Window;

                    GuiManager.AddWindow(asWindow);
                    asWindow.HasCloseButton = true;
                    asWindow.HasMoveBar     = true;

                    asWindow.Closing += RemovalOfWatchedWindow;
                }
                #endregion

                #region We have a parent window of this new object
                if (mNewWindowLimitation == NewWindowLimitation.ByRequestingWindow && requestingWindow != null)
                {
                    mWindowFamilies.Add(requestingWindowAsObjectDisplayer, newObjectDisplayer);
                }
                #endregion

                return(newObjectDisplayer);
            }
        }