Inheritance: GDIObject
Example #1
0
        public void Clear(Color color)
        {
            var b = new GDIBrush(color);

            Clear(b);
            b.Dispose();
        }
Example #2
0
        public void FillRect(Color color, int x, int y, int width, int height)
        {
            var b = new GDIBrush(color);

            FillRect(b, x, y, width, height);
            b.Dispose();
        }
Example #3
0
        //---------------------------------------

        public void FillRect(GDIBrush brush, int x, int y, int width, int height)
        {
            APIRect gr;

            gr.top    = y;
            gr.left   = x;
            gr.right  = width + x;
            gr.bottom = height + y;

            NativeMethods.FillRect(mhDC, ref gr, brush.hBrush);
        }
Example #4
0
 public void Clear(GDIBrush brush)
 {
     FillRect(brush, 0, 0, mWidth, mHeight);
 }
Example #5
0
 public void Clear(GDIBrush brush)
 {
     FillRect(brush, 0, 0, mWidth, mHeight);
 }
Example #6
0
 public void Clear(Color color)
 {
     var b = new GDIBrush(color);
     Clear(b);
     b.Dispose();
 }
Example #7
0
 public void FillRect(Color color, int x, int y, int width, int height)
 {
     var b = new GDIBrush(color);
     FillRect(b, x, y, width, height);
     b.Dispose();
 }
Example #8
0
        //---------------------------------------

        public void FillRect(GDIBrush brush, int x, int y, int width, int height)
        {
            APIRect gr;
            gr.top = y;
            gr.left = x;
            gr.right = width + x;
            gr.bottom = height + y;

            NativeMethods.FillRect(mhDC, ref gr, brush.hBrush);
        }
Example #9
0
        private void RenderRow(int RowIndex, int RowPos)
        {
            if (RowIndex >= 0 && RowIndex < Control.Document.Count)
            {
                //do keyword parse before we render the line...
                if (Control.Document[RowIndex].RowState == RowState.SpanParsed)
                {
                    Control.Document.Parser.ParseRow(RowIndex, true);
                    Control.Document[RowIndex].RowState = RowState.AllParsed;
                }
            }


            try
            {
                GDISurface bbuff = GFX.BackBuffer;
                bool found = false;


                GDIBrush bg = GFX.BackgroundBrush;

                try
                {
                    if (RowIndex < Control.Document.Count && RowIndex >= 0)
                    {
                        Row r = Control.Document[RowIndex];
                        if (SpanFound && RowIndex >= FirstSpanRow && RowIndex <= LastSpanRow && Control._SyntaxBox.ScopeBackColor != Color.Transparent)
                        {
                            bg = new GDIBrush(Control._SyntaxBox.ScopeBackColor);
                            found = true;
                        }
                        else if (r.BackColor != Color.Transparent)
                        {
                            bg = new GDIBrush(r.BackColor);
                            found = true;
                        }
                        else
                        {
                            if (r.endSpan != null)
                            {
                                Span tmp = r.expansion_EndSpan;
                                while (tmp != null)
                                {
                                    if (tmp.spanDefinition.Transparent == false)
                                    {
                                        bg = new GDIBrush(tmp.spanDefinition.BackColor);
                                        found = true;
                                        break;
                                    }
                                    tmp = tmp.Parent;
                                }


                                if (!found)
                                {
                                    tmp = r.endSpan;
                                    while (tmp != null)
                                    {
                                        if (tmp.spanDefinition.Transparent == false)
                                        {
                                            bg = new GDIBrush(tmp.spanDefinition.BackColor);
                                            found = true;
                                            break;
                                        }
                                        tmp = tmp.Parent;
                                    }
                                }
                                if (!found)
                                {
                                    tmp = r.expansion_EndSpan;
                                    while (tmp != null)
                                    {
                                        if (tmp.spanDefinition.Transparent == false)
                                        {
                                            bg = new GDIBrush(tmp.spanDefinition.BackColor);
                                            found = true;
                                            break;
                                        }
                                        tmp = tmp.Parent;
                                    }
                                }
                            }
                        }
                    }
                }
                catch { }

                if (RowIndex == Control.Caret.Position.Y && Control.HighLightActiveLine)
                    bbuff.Clear(GFX.HighLightLineBrush);

                else if (RowIndex >= 0 && RowIndex < Control.Document.Count)
                {
                    if (Control.Document[RowIndex].IsCollapsed)
                    {
                        if (Control.Document[RowIndex].Expansion_EndRow.Index == Control.Caret.Position.Y && Control.HighLightActiveLine)
                            bbuff.Clear(GFX.HighLightLineBrush);
                        else
                            bbuff.Clear(bg);
                    }
                    else
                        bbuff.Clear(bg);
                }
                else
                    bbuff.Clear(bg);


                //only render normal text if any part of the row is visible
                if (RowIndex <= Control.Selection.LogicalBounds.FirstRow || RowIndex >= Control.Selection.LogicalBounds.LastRow)
                {
                    RenderText(RowIndex);
                }

                //only render selection text if the line is selected
                if (Control.Selection.IsValid)
                {
                    if (RowIndex >= Control.Selection.LogicalBounds.FirstRow && RowIndex <= Control.Selection.LogicalBounds.LastRow)
                    {
                        if (Control.ContainsFocus)
                            GFX.SelectionBuffer.Clear(Control.SelectionBackColor);
                        else
                            GFX.SelectionBuffer.Clear(Control.InactiveSelectionBackColor);

                        RenderSelectedText(RowIndex);
                    }
                }


                if (Control.ContainsFocus || Control.View.Action == EditAction.DragText)
                {
                    RenderCaret(RowIndex, RowPos * Control.View.RowHeight + yOffset);
                }

                RenderSelection(RowIndex);
                RenderMargin(RowIndex);
                if (Control.Document.Folding)
                    RenderExpansion(RowIndex);

                var e = new RowPaintEventArgs();

                var rec = new Rectangle(0, 0, Control.Width, Control.View.RowHeight);
                e.Graphics = Graphics.FromHdc(bbuff.hDC);
                e.Bounds = rec;
                e.Row = null;
                if (RowIndex >= 0 && RowIndex < Control.Document.Count)
                    e.Row = Control.Document[RowIndex];

                Control._SyntaxBox.OnRenderRow(e);


                bbuff.Flush();
                bbuff.RenderToControl(0, RowPos * Control.View.RowHeight + yOffset);

                //GFX.SelectionBuffer.RenderToControl (0,RowPos*Control.View.RowHeight+this.yOffset);


                if (found)
                    bg.Dispose();
            }
            catch
            {
            }
        }