コード例 #1
0
ファイル: CurveWidget.cs プロジェクト: schani/bwprocessor
    public CurveWidget(Curve _curve)
        : base()
    {
        PixelsPerUnit = 300;

        CanvasRect rect = new CanvasRect(Root());
        rect.X1 = 0;
        rect.Y1 = 0;
        rect.X2 = 1;
        rect.Y2 = 1;
        rect.FillColor = "white";
        rect.OutlineColor = null;
        rect.WidthUnits = 0.0;

        CenterScrollRegion = true;
        SetScrollRegion(0.0, 0.0, 1.0, 1.0);

        curve = _curve;

        bpath = new MyBPath(Root());
        bpath.WidthPixels = 0;
        bpath.OutlineColor = "blue";

        MakeLine(0,0.25, 1,0.25);
        MakeLine(0,0.5, 1,0.5);
        MakeLine(0,0.75, 1,0.75);

        MakeLine(0.25,0, 0.25,1);
        MakeLine(0.5,0, 0.5,1);
        MakeLine(0.75,0, 0.75,1);

        points = new ArrayList();

        for (uint i = 0; i < curve.NumPoints(); ++i) {
            float x, y;
            curve.GetPoint (i, out x, out y);
            points.Add (new CurvePoint(x, y, this));
        }

        bpath.SetPathDef(MakePathDef());

        marker = new CurveMarker(0, 0, this, "dark grey");
        marker.Active = false;

        ButtonPressEvent += new ButtonPressEventHandler(OnButtonPress);
    }