Example #1
0
        public void DoShowClue(int col, int row, int?number, UiClueState clue, UiCellValue cell)
        {
            var width  = _scaler.ImageWidth;
            var height = _scaler.ImageHeight;
            var x0     = width * Convert.ToSingle(col) / Convert.ToSingle(_cols);
            var x1     = width * Convert.ToSingle(col + 1) / Convert.ToSingle(_cols);
            var y0     = height * Convert.ToSingle(row) / Convert.ToSingle(_rows);
            var y1     = height * Convert.ToSingle(row + 1) / Convert.ToSingle(_rows);
            var p0     = Point.Round(_scaler.ImageToScreen(x0, y0));
            var p1     = Point.Round(_scaler.ImageToScreen(x1, y1));

            var rect      = new Rectangle(p0.X, p0.Y, p1.X - p0.X, p1.Y - p0.Y);
            var fillBrush = cell == UiCellValue.Unknown
                ? _brushUnknown
                : cell == UiCellValue.Filled
                    ? _brushFilled
                    : _brushEmpty;
            var textBrush = clue == UiClueState.Used
                ? new SolidBrush(Color.DimGray)
                : cell == UiCellValue.Empty
                    ? new SolidBrush(Color.Black)
                    : new SolidBrush(Color.White);

            using (var g = panel1.CreateGraphics())
            {
                g.FillRectangle(fillBrush, rect);
                g.DrawRectangle(_penClueBoundary, rect);
                if (number != null)
                {
                    g.DrawString(number.ToString(),
                                 new Font(DefaultFont.Name, _scaler.Scale * 20), textBrush, rect,
                                 _clueFormat);
                }
            }
        }
Example #2
0
 public void LogShowClue(int col, int row, int?number, UiClueState clue, UiCellValue cell)
 => AddUiOverlayCommand(() => DoShowClue(col, row, number, clue, cell));