コード例 #1
0
 public virtual void SetStatusButtonArea(ButtonArea actualButton, ButtonStatusEnum newStatus)
 {
     foreach (ButtonArea button in _buttonAreaList)
     {
         if (button == actualButton && button.Visible && !button.Disabled)
         {
             button.Status = newStatus;
         }
         else
         {
             button.Status = ButtonStatusEnum.Idle;
         }
     }
     if (Scrollable)
     {
         if (_scrollUpButtonArea == actualButton && _scrollUpButtonArea.Visible && !_scrollUpButtonArea.Disabled)
         {
             _scrollUpButtonArea.Status = newStatus;
         }
         if (_scrollDownButtonArea == actualButton && _scrollDownButtonArea.Visible && !_scrollDownButtonArea.Disabled)
         {
             _scrollDownButtonArea.Status = newStatus;
         }
     }
 }
コード例 #2
0
        public virtual Vector2 GetSize(bool visible, bool disabled, ButtonStatusEnum status, string currentRollingState, string currentRollingState2)
        {
            Vector2 size = new Vector2(0, 0);

            if (_imageList != null && _imageList.Count > 0)
            {
                string buttonImageNameSuffix = GetCurrentExistingImageNameSuffix(visible, disabled, status);
                foreach (ImageSettings image in _imageList)
                {
                    string imageName     = image.ImageNameType == ButtonAreaImageNameTypeEnum.Actual || image.ImageNameType == ButtonAreaImageNameTypeEnum.Character ? image.ImageName : currentRollingState;
                    int    numberOfChars = image.ImageNameType == ButtonAreaImageNameTypeEnum.Actual || image.ImageNameType == ButtonAreaImageNameTypeEnum.RollingState ? imageName.Length : 1;
                    for (int i = 0; i < imageName.Length; i += numberOfChars)
                    {
                        string    characterImageName = imageName.Substring(i, numberOfChars);
                        Texture2D texture            = _contentManager.GetTexture2D(characterImageName + buttonImageNameSuffix);
                        size = GetTextureSize(size, image, texture);
                    }
                }
            }
            return(size);
        }
コード例 #3
0
        public virtual Rectangle GetHorizontalSliderRectangle(int borderLeft, int borderRight, Vector2 position, bool visible, bool disabled, ButtonStatusEnum status, string currentRollingState)
        {
            Vector2 imageOffset = position;

            imageOffset.X = imageOffset.X + borderLeft;
            Rectangle sliderRect = new Rectangle(0, 0, 0, 0);

            if (_imageList != null && _imageList.Count > 0)
            {
                string buttonImageNameSuffix = GetCurrentExistingImageNameSuffix(visible, disabled, status);
                foreach (ImageSettings image in _imageList)
                {
                    string imageName     = image.ImageNameType == ButtonAreaImageNameTypeEnum.Actual || image.ImageNameType == ButtonAreaImageNameTypeEnum.Character ? image.ImageName : currentRollingState;
                    int    numberOfChars = image.ImageNameType == ButtonAreaImageNameTypeEnum.Actual || image.ImageNameType == ButtonAreaImageNameTypeEnum.RollingState ? imageName.Length : 1;
                    for (int i = 0; i < imageName.Length; i += numberOfChars)
                    {
                        string    characterImageName = imageName.Substring(i, numberOfChars);
                        Texture2D texture            = _contentManager.GetTexture2D(characterImageName + buttonImageNameSuffix);
                        imageOffset = GetHorizontalTextureRectangle(imageOffset, ref sliderRect, image, texture);
                        if (!sliderRect.IsEmpty)
                        {
                            break;
                        }
                    }
                }
            }
            if (!sliderRect.IsEmpty)
            {
                sliderRect.Width = sliderRect.Width - (borderLeft + borderRight);
            }
            return(sliderRect);
        }
コード例 #4
0
        private string GetCurrentExistingImageNameSuffix(bool visible, bool disabled, ButtonStatusEnum status)
        {
            ButtonAreaStateImageEnum imageType = GetCurrentImageStateEnum(visible, disabled, status);
            string buttonImageNameSuffix       = GetCurrentImageNameSuffix(imageType);;

            //Check if texture exists
            while (imageType == ButtonAreaStateImageEnum.Disabled || imageType == ButtonAreaStateImageEnum.Focused || imageType == ButtonAreaStateImageEnum.Selected)
            {
                if (_contentManager.GetTexture2D(_imageList[0].ImageName + buttonImageNameSuffix) == null)
                {
                    if (imageType == ButtonAreaStateImageEnum.Disabled)
                    {
                        _disabledMissing = true;
                    }
                    else if (imageType == ButtonAreaStateImageEnum.Focused)
                    {
                        _focusedMissing = true;
                    }
                    else if (imageType == ButtonAreaStateImageEnum.Selected)
                    {
                        _selectedMissing = true;
                    }
                    else
                    {
                        break;
                    }
                    imageType             = GetCurrentImageStateEnum(visible, disabled, status);
                    buttonImageNameSuffix = GetCurrentImageNameSuffix(imageType);
                }
                else
                {
                    break;
                }
            }
            return(buttonImageNameSuffix);
        }
コード例 #5
0
        protected virtual ButtonAreaStateImageEnum GetCurrentImageStateEnum(bool visible, bool disabled, ButtonStatusEnum status)
        {
            ButtonAreaStateImageEnum buttonImageState;

            if (!visible)
            {
                buttonImageState = ButtonAreaStateImageEnum.Hidden;
            }
            else if (disabled && !_disabledMissing)
            {
                buttonImageState = ButtonAreaStateImageEnum.Disabled;
            }
            else if (status == ButtonStatusEnum.Selected && !_selectedMissing)
            {
                buttonImageState = ButtonAreaStateImageEnum.Selected;
            }
            else if ((status == ButtonStatusEnum.Focused || status == ButtonStatusEnum.Selected && _selectedMissing) && !_focusedMissing)
            {
                buttonImageState = ButtonAreaStateImageEnum.Focused;
            }
            else
            {
                buttonImageState = ButtonAreaStateImageEnum.Idle;
            }
            return(buttonImageState);
        }
コード例 #6
0
        public virtual void Draw(GameTime gameTime, GraphicsDevice graphicsDevice, GameSettings gameSettings, SpriteBatch spriteBatch, Vector2 offset, Vector2 position, bool visible, bool disabled, ButtonStatusEnum status, string currentRollingState, string currentRollingState2, int currentHorizontalValue, int currentVerticalValue, int borderLeft, int borderRight)
        {
            Vector2 imageOffset = new Vector2(0, 0);

            if (_imageList != null && _imageList.Count > 0)
            {
                string buttonImageNameSuffix = GetCurrentExistingImageNameSuffix(visible, disabled, status);
                foreach (ImageSettings image in _imageList)
                {
                    string imageName     = image.ImageNameType == ButtonAreaImageNameTypeEnum.Actual || image.ImageNameType == ButtonAreaImageNameTypeEnum.Character ? image.ImageName : currentRollingState;
                    int    numberOfChars = image.ImageNameType == ButtonAreaImageNameTypeEnum.Actual || image.ImageNameType == ButtonAreaImageNameTypeEnum.RollingState ? imageName.Length : 1;
                    for (int i = 0; i < imageName.Length; i += numberOfChars)
                    {
                        string    characterImageName = imageName.Substring(i, numberOfChars);
                        Texture2D texture            = _contentManager.GetTexture2D(characterImageName + buttonImageNameSuffix);
                        imageOffset = DrawTexture(spriteBatch, offset, position, imageOffset, image, texture, currentHorizontalValue, currentVerticalValue, borderLeft, borderRight);
                    }
                }
            }
        }