Esempio n. 1
0
 public void DetermineColor()
 {
     if (selected)
     {
         if (isvalid)
         {
             cBack = e.CellStyle.SelectionBackColor;
             cFore = e.CellStyle.SelectionForeColor;
         }
         else
         {
             cBack = Gdi::Color.Red;
             cFore = Gdi::Color.White;
         }
     }
     else
     {
         if (data == null)
         {
             cBack = Gdi::Color.Silver;
             cFore = Gdi::Color.Black;
         }
         else if (isvalid)
         {
             cBack = e.CellStyle.BackColor;
             cFore = e.CellStyle.ForeColor;
         }
         else
         {
             cBack = Gdi::Color.LavenderBlush;
             cFore = Gdi::Color.Red;
         }
     }
 }
Esempio n. 2
0
 public void Clear()
 {
     this.bgtype  = ColorType.DefaultBack;
     this.bgcolor = Gdi::Color.Empty;
     this.fgtype  = ColorType.DefaultText;
     this.fgcolor = Gdi::Color.Empty;
     this.style   = TextDecorationStyle.None;
 }
Esempio n. 3
0
 public TextDecorationConstructor(TextDecoration b)
 {
     this.bgtype  = b.BackColorType;
     this.bgcolor = b.BackColor;
     this.fgtype  = b.TextColorType;
     this.fgcolor = b.TextColor;
     this.style   = b.TextStyle;
 }
Esempio n. 4
0
 /// <summary>
 /// 矩形を塗り潰し、反転色で枠を描画します。
 /// </summary>
 /// <param name="g">描画対象の矩形を指定します。</param>
 /// <param name="fill">塗り潰すのに使用する色を指定します。</param>
 /// <param name="rect">対象の矩形を指定します。</param>
 public static void FillRectangleReverseDotFramed(Gdi::Graphics g, Gdi::Color fill, Gdi::Rectangle rect)
 {
     using (Gdi::SolidBrush brush = new Gdi::SolidBrush(fill))
         using (Gdi::Pen pen = new Gdi::Pen(~(afh.Drawing.Color32Argb)fill)){
             pen.DashStyle = Gdi::Drawing2D.DashStyle.Dot;
             FillRectangleFramed(g, brush, pen, rect);
         }
 }
Esempio n. 5
0
 /// <summary>
 /// 指定した色の反転色で矩形枠を描画します。
 /// </summary>
 /// <param name="g">描画対象の矩形を指定します。</param>
 /// <param name="fill">矩形枠の反転色を指定します。</param>
 /// <param name="rect">対象の矩形を指定します。</param>
 public static void DrawRectangleReverseDotFramed(Gdi::Graphics g, Gdi::Color fill, Gdi::Rectangle rect)
 {
     using (Gdi::Pen pen = new Gdi::Pen(~(afh.Drawing.Color32Argb)fill)){
         pen.DashStyle = Gdi::Drawing2D.DashStyle.Dot;
         rect.Width--;
         rect.Height--;
         g.DrawRectangle(pen, rect);
     }
 }
Esempio n. 6
0
            public CellDrawer(Forms::DataGridView sender, Forms::DataGridViewCellPaintingEventArgs e)
            {
                this.sender = sender;
                this.e      = e;
                this.data   = this.sender.Rows[e.RowIndex].DataBoundItem as SshUserData;

                this.selected = 0 != (e.State & Forms::DataGridViewElementStates.Selected);
                this.isvalid  = true;
                this.cBack    = default(Gdi::Color);
                this.cFore    = default(Gdi::Color);
                this.text     = null;
            }
Esempio n. 7
0
        /// <summary>
        /// ISO 8613-6 [CCITT Recommendation T.416] "13.1.8 Select Graphic Rendition (SGR)"
        /// http://www.itu.int/rec/T-REC-T.416-199303-I/en
        /// に従って SGR の色指定 38/48 を読み取ります。
        /// </summary>
        /// <param name="color">色を返します。</param>
        /// <param name="args">引数の配列を表すオブジェクトを指定します。</param>
        /// <param name="offset">引数内の色指定の開始位置を指定します。38 または 48 に対応する番号です。</param>
        /// <returns>正しい色指定の場合に、消費した引数の数を返します。色指定が誤っている場合は 0 を返します。</returns>
        public static int GetISO8613_6Colors(out Gdi::Color color, mwg.RosaTerm.IReadOnlyIndexer <int> args, int offset)
        {
            // 本来は引数は ":" 区切である上に、可変長である。
            // 38:1
            // 38:2:r:g:b:?:tol:tolc
            // 38:3:c:m:y:?:tol:tols
            // 38:4:c:m:y:k:tol:tols
            // 38:5:i
            // tol = tolerance, tols = color space associated with the tolerance
            if (args[offset] == 38 || args[offset] == 48)
            {
                switch (args[++offset])
                {
                case 0:
                    color = Gdi::Color.Empty;
                    return(2);

                case 1:
                    color = Gdi::Color.Transparent;
                    return(2);

                case 2:
                    color = Gdi::Color.FromArgb(args[offset + 1], args[offset + 2], args[offset + 3]);
                    return(5);

                case 3:
                {
                    int r = 255 - args[offset + 1];
                    int g = 255 - args[offset + 2];
                    int b = 255 - args[offset + 3];
                    color = Gdi::Color.FromArgb(r, g, b);
                }
                    return(5);

                case 4:
                {
                    int bright = 255 - args[offset + 4];
                    int r      = (255 - args[offset + 1]) * bright / 255;
                    int g      = (255 - args[offset + 2]) * bright / 255;
                    int b      = (255 - args[offset + 3]) * bright / 255;
                    color = Gdi::Color.FromArgb(r, g, b);
                }
                    return(6);

                case 5:
                    color = GetXterm256Color(args[offset + 1]);
                    return(3);
                }
            }
            color = Gdi::Color.Empty;
            return(0);
        }