コード例 #1
0
        public void Update(ResolutionRenderer irr, Vector2? newOffset = null, Vector2? newSize = null)
        {
            bool changed = false;
            if (newOffset != null)
            {
                positionOffset.X = newOffset.Value.X;
                positionOffset.Y = newOffset.Value.Y;
                changed = true;
            }
            if (newSize != null)
            {
                size.X = newSize.Value.X;
                size.Y = newSize.Value.Y;
                changed = true;
            }
            if (displayString != null && displayString != string.Empty && changed)
            {
                displayString = Text.WrapText(font, displayString, size.X);
            }

            // Get the position of the DisplayRect.  If it's not relative to the screen it's absolute position will be good now
            if (screenRelative != ScreenPositions.None)
                position = GetAbsolutePosition(irr);
            else
                position = positionOffset;
        }
コード例 #2
0
 Vector2 GetAbsolutePosition(ResolutionRenderer irr)
 {
     Vector2 ret = Vector2.Zero;
     switch (screenRelative)
     {
         case ScreenPositions.TopLeft:
             ret += positionOffset;
             break;
         case ScreenPositions.TopCenter:
             ret.X += irr.ScreenWidth / 2;
             ret.X -= size.X / 2;
             ret += positionOffset;
             break;
         case ScreenPositions.TopRight:
             ret.X += irr.ScreenWidth;
             ret.X -= size.X;
             ret += positionOffset;
             break;
         case ScreenPositions.RightCenter:
             ret.X += irr.ScreenWidth;
             ret.X -= size.X;
             ret.Y += irr.ScreenHeight / 2;
             ret.X += positionOffset.X;
             ret.Y -= size.Y / 2;
             ret.Y -= positionOffset.Y;
             break;
         case ScreenPositions.BottomRight:
             ret.X += irr.ScreenWidth;
             ret.X -= size.X;
             ret.X -= positionOffset.X;
             ret.Y += irr.ScreenHeight;
             ret.Y -= size.Y;
             ret.Y -= positionOffset.Y;
             break;
         case ScreenPositions.BottomCenter:
             ret.X += irr.ScreenWidth / 2;
             ret.X -= size.X / 2;
             ret.X += positionOffset.X;
             ret.Y += irr.ScreenHeight;
             ret.Y -= size.Y;
             ret.Y -= positionOffset.Y;
             break;
         case ScreenPositions.BottomLeft:
             ret.X += positionOffset.X;
             ret.Y += irr.ScreenHeight;
             ret.Y -= size.Y;
             ret.Y -= positionOffset.Y;
             break;
         case ScreenPositions.LeftCenter:
             ret.X += positionOffset.X;
             ret.Y += irr.ScreenHeight / 2;
             ret.Y -= size.Y / 2;
             ret.Y += positionOffset.Y;
             break;
     };
     return ret;
 }
コード例 #3
0
ファイル: Listbox.cs プロジェクト: RandomCache/LightningBug
 public void Update(ResolutionRenderer irr)
 {
     // Get the position of the DisplayRect.  If it's not relative to the screen it's absolute position will be good now
     if(screenRelative != ScreenPositions.None)
         position = GetAbsolutePosition(irr);
     Vector2 newPos = position;
     int count = 0;
     // Start at the top item to be displayed.  When drawing, that's where Draw will start.
     for(int i = topItemDisplayed; i < mainList.Count; ++i)
     {
         newPos.Y = position.Y + (itemSize.Y * count);
         ++count;
         mainList[i].Update(irr, newPos);
     }
 }