コード例 #1
0
        private IPropertyEntry[] attributeProperties; // Anzeigen für die Attribute (Ebene, Farbe u.s.w)

        public ShowPropertyEllipse(Ellipse Ellipse, IFrame frame) : base(frame)
        {
            this.ellipse = Ellipse;

            centerProperty = new GeoPointProperty("Ellipse.Center", Frame, true);
            centerProperty.SetGeoPointEvent               += new CADability.UserInterface.GeoPointProperty.SetGeoPointDelegate(OnSetCenter);
            centerProperty.GetGeoPointEvent               += new CADability.UserInterface.GeoPointProperty.GetGeoPointDelegate(OnGetCenter);
            centerProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyCenterWithMouse);
            centerProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);

            majorRadiusProperty = new LengthProperty("Ellipse.MajorRadius", Frame, true);
            majorRadiusProperty.SetLengthEvent                 += new CADability.UserInterface.LengthProperty.SetLengthDelegate(OnSetMajorRadius);
            majorRadiusProperty.GetLengthEvent                 += new CADability.UserInterface.LengthProperty.GetLengthDelegate(OnGetMajorRadius);
            majorRadiusProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyMajorRadiusWithMouse);
            majorRadiusProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
            majorRadiusHotSpot             = new LengthHotSpot[2];
            majorRadiusHotSpot[0]          = new LengthHotSpot(majorRadiusProperty);
            majorRadiusHotSpot[0].Position = ellipse.Center + 2.0 / 3.0 * ellipse.MajorAxis;
            majorRadiusHotSpot[1]          = new LengthHotSpot(majorRadiusProperty);
            majorRadiusHotSpot[1].Position = ellipse.Center - 2.0 / 3.0 * ellipse.MajorAxis;

            minorRadiusProperty = new LengthProperty("Ellipse.MinorRadius", Frame, true);
            minorRadiusProperty.SetLengthEvent                 += new CADability.UserInterface.LengthProperty.SetLengthDelegate(OnSetMinorRadius);
            minorRadiusProperty.GetLengthEvent                 += new CADability.UserInterface.LengthProperty.GetLengthDelegate(OnGetMinorRadius);
            minorRadiusProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyMinorRadiusWithMouse);
            minorRadiusProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
            minorRadiusHotSpot             = new LengthHotSpot[2];
            minorRadiusHotSpot[0]          = new LengthHotSpot(minorRadiusProperty);
            minorRadiusHotSpot[0].Position = ellipse.Center + 2.0 / 3.0 * ellipse.MinorAxis;
            minorRadiusHotSpot[1]          = new LengthHotSpot(minorRadiusProperty);
            minorRadiusHotSpot[1].Position = ellipse.Center - 2.0 / 3.0 * ellipse.MinorAxis;

            majorAxisProperty = new GeoVectorProperty("Ellipse.MajorAxis", Frame, true);
            majorAxisProperty.SetHotspotPosition(ellipse.Center + ellipse.MajorAxis);
            majorAxisProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyMajorAxisWithMouse);
            majorAxisProperty.SetGeoVectorEvent              += new CADability.UserInterface.GeoVectorProperty.SetGeoVectorDelegate(OnSetMajorAxis);
            majorAxisProperty.GetGeoVectorEvent              += new CADability.UserInterface.GeoVectorProperty.GetGeoVectorDelegate(OnGetMajorAxis);
            majorAxisProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
            majorAxisHotSpot             = new GeoVectorHotSpot[2];
            majorAxisHotSpot[0]          = new GeoVectorHotSpot(majorAxisProperty);
            majorAxisHotSpot[0].Position = ellipse.Center + ellipse.MajorAxis;
            majorAxisHotSpot[1]          = new GeoVectorHotSpot(majorAxisProperty);
            majorAxisHotSpot[1].Position = ellipse.Center - ellipse.MajorAxis;

            minorAxisProperty = new GeoVectorProperty("Ellipse.MinorAxis", Frame, true);
            minorAxisProperty.SetHotspotPosition(ellipse.Center + ellipse.MinorAxis);
            minorAxisProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyMinorAxisWithMouse);
            minorAxisProperty.SetGeoVectorEvent              += new CADability.UserInterface.GeoVectorProperty.SetGeoVectorDelegate(OnSetMinorAxis);
            minorAxisProperty.GetGeoVectorEvent              += new CADability.UserInterface.GeoVectorProperty.GetGeoVectorDelegate(OnGetMinorAxis);
            minorAxisProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
            minorAxisHotSpot             = new GeoVectorHotSpot[2];
            minorAxisHotSpot[0]          = new GeoVectorHotSpot(minorAxisProperty);
            minorAxisHotSpot[0].Position = ellipse.Center + ellipse.MinorAxis;
            minorAxisHotSpot[1]          = new GeoVectorHotSpot(minorAxisProperty);
            minorAxisHotSpot[1].Position = ellipse.Center - ellipse.MinorAxis;

            if (Ellipse.IsArc)
            {
                startAngleProperty = new AngleProperty("Ellipse.StartAngle", Frame, true);
                startAngleProperty.GetAngleEvent                  += new AngleProperty.GetAngleDelegate(OnGetStartAngle);
                startAngleProperty.SetAngleEvent                  += new AngleProperty.SetAngleDelegate(OnSetStartAngle);
                startAngleProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyStartAngleWithMouse);
                startAngleProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
                startAngleHotSpot          = new AngleHotSpot(startAngleProperty);
                startAngleHotSpot.Position = ellipse.StartPoint;

                endAngleProperty = new AngleProperty("Ellipse.EndAngle", Frame, true);
                endAngleProperty.GetAngleEvent                  += new AngleProperty.GetAngleDelegate(OnGetEndAngle);
                endAngleProperty.SetAngleEvent                  += new AngleProperty.SetAngleDelegate(OnSetEndAngle);
                endAngleProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyEndAngleWithMouse);
                endAngleProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
                endAngleHotSpot          = new AngleHotSpot(endAngleProperty);
                endAngleHotSpot.Position = ellipse.EndPoint;

                directionProperty = new BooleanProperty("Ellipse.Direction", "Arc.Direction.Values");
                directionProperty.BooleanValue     = ellipse.SweepParameter > 0.0;
                directionProperty.GetBooleanEvent += new CADability.UserInterface.BooleanProperty.GetBooleanDelegate(OnGetDirection);
                directionProperty.SetBooleanEvent += new CADability.UserInterface.BooleanProperty.SetBooleanDelegate(OnSetDirection);
                // hat keinen Hotspot
                startPointProperty = new GeoPointProperty("Ellipse.StartPoint", Frame, false);
                startPointProperty.GetGeoPointEvent += new CADability.UserInterface.GeoPointProperty.GetGeoPointDelegate(OnGetStartPoint);
                startPointProperty.ReadOnly          = true;
                startPointProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
                endPointProperty = new GeoPointProperty("Ellipse.EndPoint", Frame, false);
                endPointProperty.GetGeoPointEvent += new CADability.UserInterface.GeoPointProperty.GetGeoPointDelegate(OnGetEndPoint);
                endPointProperty.ReadOnly          = true;
                endPointProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
                base.resourceId = "EllipseArc.Object";
            }
            else
            {
                if (Settings.GlobalSettings.GetBoolValue("CircleShowStartPointProperty", false))
                {
                    startAngleProperty = new AngleProperty("Ellipse.StartAngle", Frame, true);
                    startAngleProperty.GetAngleEvent                  += new AngleProperty.GetAngleDelegate(OnGetStartAngle);
                    startAngleProperty.SetAngleEvent                  += new AngleProperty.SetAngleDelegate(OnSetStartAngle);
                    startAngleProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyStartAngleWithMouse);
                    startAngleProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
                    startAngleHotSpot          = new AngleHotSpot(startAngleProperty);
                    startAngleHotSpot.Position = ellipse.StartPoint;

                    directionProperty = new BooleanProperty("Ellipse.Direction", "Arc.Direction.Values");
                    directionProperty.BooleanValue     = ellipse.SweepParameter > 0.0;
                    directionProperty.GetBooleanEvent += new CADability.UserInterface.BooleanProperty.GetBooleanDelegate(OnGetDirection);
                    directionProperty.SetBooleanEvent += new CADability.UserInterface.BooleanProperty.SetBooleanDelegate(OnSetDirection);
                    // hat keinen Hotspot
                    startPointProperty = new GeoPointProperty("Ellipse.StartPoint", Frame, false);
                    startPointProperty.GetGeoPointEvent += new CADability.UserInterface.GeoPointProperty.GetGeoPointDelegate(OnGetStartPoint);
                    startPointProperty.ReadOnly          = true;
                    startPointProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
                }
                base.resourceId = "Ellipse.Object";
            }

            attributeProperties = ellipse.GetAttributeProperties(Frame);
        }
コード例 #2
0
        public ShowPropertyCircle(Ellipse circle, IFrame frame) : base(frame)
        {
            this.circle    = circle;
            centerProperty = new GeoPointProperty("Circle.Center", Frame, true);
            centerProperty.GetGeoPointEvent               += new CADability.UserInterface.GeoPointProperty.GetGeoPointDelegate(OnGetCenter);
            centerProperty.SetGeoPointEvent               += new CADability.UserInterface.GeoPointProperty.SetGeoPointDelegate(OnSetCenter);
            centerProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyCenterWithMouse);
            centerProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);

            radiusProperty = new LengthProperty("Circle.Radius", Frame, true);
            radiusProperty.GetLengthEvent                 += new CADability.UserInterface.LengthProperty.GetLengthDelegate(OnGetRadius);
            radiusProperty.SetLengthEvent                 += new CADability.UserInterface.LengthProperty.SetLengthDelegate(OnSetRadius);
            radiusProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyRadiusWithMouse);
            radiusProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
            radiusHotSpots = new LengthHotSpot[4];
            for (int i = 0; i < 4; ++i)
            {
                radiusHotSpots[i] = new LengthHotSpot(radiusProperty);
                switch (i)
                {
                case 0:
                    radiusHotSpots[i].Position = circle.Center + circle.MajorAxis;
                    break;

                case 1:
                    radiusHotSpots[i].Position = circle.Center - circle.MajorAxis;
                    break;

                case 2:
                    radiusHotSpots[i].Position = circle.Center + circle.MinorAxis;
                    break;

                case 3:
                    radiusHotSpots[i].Position = circle.Center - circle.MinorAxis;
                    break;
                }
            }

            diameterProperty = new LengthProperty("Circle.Diameter", Frame, true);
            diameterProperty.GetLengthEvent                 += new CADability.UserInterface.LengthProperty.GetLengthDelegate(OnGetDiameter);
            diameterProperty.SetLengthEvent                 += new CADability.UserInterface.LengthProperty.SetLengthDelegate(OnSetDiameter);
            diameterProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyRadiusWithMouse);
            diameterProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);

            if (circle.IsArc)
            {
                startAngleProperty = new AngleProperty("Arc.StartAngle", Frame, true);
                startAngleProperty.GetAngleEvent                  += new AngleProperty.GetAngleDelegate(OnGetStartAngle);
                startAngleProperty.SetAngleEvent                  += new AngleProperty.SetAngleDelegate(OnSetStartAngle);
                startAngleProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyStartAngleWithMouse);
                startAngleProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
                startAngleHotSpot          = new AngleHotSpot(startAngleProperty);
                startAngleHotSpot.Position = circle.StartPoint;

                endAngleProperty = new AngleProperty("Arc.EndAngle", Frame, true);
                endAngleProperty.GetAngleEvent                  += new AngleProperty.GetAngleDelegate(OnGetEndAngle);
                endAngleProperty.SetAngleEvent                  += new AngleProperty.SetAngleDelegate(OnSetEndAngle);
                endAngleProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyEndAngleWithMouse);
                endAngleProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
                endAngleHotSpot          = new AngleHotSpot(endAngleProperty);
                endAngleHotSpot.Position = circle.EndPoint;
                base.resourceId          = "CircleArc.Object";

                directionProperty = new BooleanProperty("Arc.Direction", "Arc.Direction.Values");
                directionProperty.BooleanValue     = circle.SweepParameter > 0.0;
                directionProperty.GetBooleanEvent += new CADability.UserInterface.BooleanProperty.GetBooleanDelegate(OnGetDirection);
                directionProperty.SetBooleanEvent += new CADability.UserInterface.BooleanProperty.SetBooleanDelegate(OnSetDirection);
                // hat keinen Hotspot
                startPointProperty = new GeoPointProperty("Arc.StartPoint", Frame, false);
                startPointProperty.GetGeoPointEvent += new CADability.UserInterface.GeoPointProperty.GetGeoPointDelegate(OnGetStartPoint);
                startPointProperty.ReadOnly          = true;
                startPointProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
                endPointProperty = new GeoPointProperty("Arc.EndPoint", Frame, false);
                endPointProperty.GetGeoPointEvent += new CADability.UserInterface.GeoPointProperty.GetGeoPointDelegate(OnGetEndPoint);
                endPointProperty.ReadOnly          = true;
                endPointProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
            }
            else
            {
                if (Settings.GlobalSettings.GetBoolValue("CircleShowStartPointProperty", false))
                {
                    startAngleProperty = new AngleProperty("Arc.StartAngle", Frame, true);
                    startAngleProperty.GetAngleEvent                  += new AngleProperty.GetAngleDelegate(OnGetStartAngle);
                    startAngleProperty.SetAngleEvent                  += new AngleProperty.SetAngleDelegate(OnSetStartAngle);
                    startAngleProperty.ModifyWithMouseEvent           += new ModifyWithMouseDelegate(ModifyStartAngleWithMouse);
                    startAngleProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
                    startAngleHotSpot          = new AngleHotSpot(startAngleProperty);
                    startAngleHotSpot.Position = circle.StartPoint;

                    directionProperty = new BooleanProperty("Arc.Direction", "Arc.Direction.Values");
                    directionProperty.BooleanValue     = circle.SweepParameter > 0.0;
                    directionProperty.GetBooleanEvent += new CADability.UserInterface.BooleanProperty.GetBooleanDelegate(OnGetDirection);
                    directionProperty.SetBooleanEvent += new CADability.UserInterface.BooleanProperty.SetBooleanDelegate(OnSetDirection);
                    // hat keinen Hotspot
                    startPointProperty = new GeoPointProperty("Arc.StartPoint", Frame, false);
                    startPointProperty.GetGeoPointEvent += new CADability.UserInterface.GeoPointProperty.GetGeoPointDelegate(OnGetStartPoint);
                    startPointProperty.ReadOnly          = true;
                    startPointProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnStateChanged);
                }
                base.resourceId = "Circle.Object";
            }
            arcLengthProperty = new LengthProperty("Circle.ArcLength", Frame, true);
            arcLengthProperty.GetLengthEvent += new CADability.UserInterface.LengthProperty.GetLengthDelegate(OnGetArcLength);
            arcLengthProperty.ReadOnly        = true;
            attributeProperties = circle.GetAttributeProperties(Frame);
        }