Beispiel #1
0
 public void AppendLine()
 {
     RealocateLines();
     m_currentLine = m_lines[++m_linesCount];
     m_currentLineRestFreeSpace = m_maxLineWidth;
     RealocateRichTexts();
 }
Beispiel #2
0
        /// <summary>
        /// Draws label
        /// </summary>
        /// <param name="position">Top-left position</param>
        /// <param name="offset"></param>
        /// <param name="drawSizeMax"></param>
        /// <returns></returns>
        public bool Draw(Vector2 position, float offset, Vector2 drawSizeMax)
        {
            float skippedSizeY     = 0f;
            int   currentLineIndex = 0;
            int   linesPrinted     = 0;

            while (offset > skippedSizeY)
            {
                float lineSizeY = m_lines[currentLineIndex].GetSize().Y;
                //if(skippedSizeY + lineSizeY > offset)
                //{
                //    break;
                //}
                skippedSizeY += lineSizeY;
                currentLineIndex++;
            }

            ////  End our standard sprite batch
            //MyGuiManager.EndSpriteBatch();
            ////  Draw the rectangle(basically the opened area) to stencil buffer to be used for clipping partial item
            //MyGuiManager.DrawStencilMaskRectangle(new MyRectangle2D(position, drawSizeMax), MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP);
            ////  Set up the stencil operation and parameters
            //MyGuiManager.BeginSpriteBatch_StencilMask();

            Vector2 drawPosition = Vector2.Zero;

            while (currentLineIndex <= m_linesCount)
            {
                MyRichLabelLine currentLine = m_lines[currentLineIndex];

                if (drawPosition.Y + currentLine.GetSize().Y > drawSizeMax.Y && linesPrinted >= 1)
                {
                    break;
                }

                currentLine.Draw(position + drawPosition);
                drawPosition.Y += currentLine.GetSize().Y;
                currentLineIndex++;
                linesPrinted++;
            }

            ////  End stencil-mask batch, and restart the standard sprite batch
            //MyGuiManager.EndSpriteBatch();
            //MyGuiManager.BeginSpriteBatch();

            return(true);
        }
Beispiel #3
0
 public void Clear()
 {
     m_lines.Clear();
     m_currentLine = null;
     Init();
 }
Beispiel #4
0
 private void AppendPart(MyRichLabelPart part)
 {
     m_currentLine = m_lines[m_linesCount];
     m_currentLine.AddPart(part);
     m_currentLineRestFreeSpace = m_maxLineWidth - m_currentLine.GetSize().X;
 }
Beispiel #5
0
        public void AppendLine()
        {
            RealocateLines();
            m_currentLine = m_lines[++m_linesCount];
            m_currentLineRestFreeSpace = m_maxLineWidth;
            RealocateRichTexts();

        }
Beispiel #6
0
 public void Clear()
 {
     m_lines.Clear();
     m_currentLine = null;
     Init();
 }
Beispiel #7
0
 private void AppendPart(MyRichLabelPart part)
 {
     m_currentLine = m_lines[m_linesCount];
     m_currentLine.AddPart(part);
     m_currentLineRestFreeSpace = m_maxLineWidth - m_currentLine.GetSize().X;
 }