コード例 #1
0
        private void InternalDraw(ChartDrawMode drawMode, BackgroundMode background)
        {
            // drawing relative offset of tree on graphics
            int spx = 0;
            int spy = 0;

            if (drawMode == ChartDrawMode.dmInteractive)
            {
                var imageViewport = base.ImageViewport;
                spx = imageViewport.Left;
                spy = imageViewport.Top;
                fModel.VisibleArea = UIHelper.Rt2Rt(base.Viewport);
            }
            else
            {
                if (drawMode == ChartDrawMode.dmStaticCentered)
                {
                    Size clientSize = CanvasRectangle.Size;

                    if (fModel.ImageWidth < clientSize.Width)
                    {
                        spx += (clientSize.Width - fModel.ImageWidth) / 2;
                    }

                    if (fModel.ImageHeight < clientSize.Height)
                    {
                        spy += (clientSize.Height - fModel.ImageHeight) / 2;
                    }
                }

                fModel.VisibleArea = ExtRect.CreateBounds(0, 0, fModel.ImageWidth, fModel.ImageHeight);
            }

            fModel.SetOffsets(spx, spy);

            DrawBackground(background);

#if DEBUG_IMAGE
            using (Pen pen = new Pen(Color.Red)) {
                fRenderer.DrawRectangle(pen, Color.Transparent, fSPX, fSPY, fImageWidth, fImageHeight);
            }
#endif

            bool hasDeep = (fSelected != null && fSelected != fModel.Root && fSelected.Rec != null);

            if (hasDeep && fOptions.DeepMode == DeepMode.Background)
            {
                DrawDeep(fOptions.DeepMode, spx, spy);
            }

            fRenderer.SetTranslucent(0.0f);
            fModel.Draw(drawMode);

            if (hasDeep && fOptions.DeepMode == DeepMode.Foreground)
            {
                DrawDeep(fOptions.DeepMode, spx, spy);
            }
        }
コード例 #2
0
ファイル: WFGfxRenderer.cs プロジェクト: hazzik/GEDKeeper
        public override void DrawImage(IImage image, ExtRect destinationRect, ExtRect sourceRect)
        {
            var sdImage = ((ImageHandler)image).Handle;

            Rectangle destRect = UIHelper.Rt2Rt(destinationRect);
            Rectangle sourRect = UIHelper.Rt2Rt(sourceRect);

            fCanvas.DrawImage(sdImage, destRect, sourRect, GraphicsUnit.Pixel);
        }
コード例 #3
0
        public void Test_Other()
        {
            Rectangle rect1 = UIHelper.Rt2Rt(ExtRect.Empty);

            Assert.AreEqual(0, rect1.Left);
            Assert.AreEqual(0, rect1.Top);
            Assert.AreEqual(0, rect1.Right);
            Assert.AreEqual(0, rect1.Bottom);

            RectangleF rect2 = UIHelper.Rt2Rt(ExtRectF.Empty);

            Assert.AreEqual(0, rect2.Left);
            Assert.AreEqual(0, rect2.Top);
            Assert.AreEqual(0, rect2.Right);
            Assert.AreEqual(0, rect2.Bottom);
        }
コード例 #4
0
        /*private ExtRect GetImageViewport()
         * {
         *  ExtRect viewport;
         *
         *  var imageSize = GetImageSize();
         *  if (!imageSize.IsEmpty) {
         *      Rectangle scrollableViewport = this.Viewport;
         *      viewport = ExtRect.CreateBounds(
         *          scrollableViewport.Left, scrollableViewport.Top,
         *          scrollableViewport.Width, scrollableViewport.Height);
         *  } else {
         *      viewport = ExtRect.Empty;
         *  }
         *
         *  return viewport;
         * }*/

        public ExtRect GetClientRect()
        {
            return(UIHelper.Rt2Rt(base.Viewport));
        }
コード例 #5
0
 private RectangleF GetOffsetRectangle(ExtRect source)
 {
     return(GetOffsetRectangle(UIHelper.Rt2Rt(source)));
 }