Exemple #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;
         }
     }
 }
Exemple #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);
        }
Exemple #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);
        }
Exemple #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);
        }
Exemple #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);
        }
Exemple #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);
                    }
                }
            }
        }