Пример #1
0
        public void TimelineTest_Position(TimelineOrientation orientation, TimelinePosition position, bool rtl, string[] expectedClass)
        {
            var comp = Context.RenderComponent <TimelineTest>(p => p.AddCascadingValue(rtl));
            //Console.WriteLine(comp.Markup);

            var timeline = comp.FindComponent <MudTimeline>();

            timeline.SetParametersAndRender(p =>
            {
                p.Add(x => x.TimelineOrientation, orientation);
                p.Add(x => x.TimelinePosition, position);
            });


            timeline.Nodes.Should().ContainSingle();
            timeline.Nodes[0].Should().BeAssignableTo <IHtmlDivElement>();

            (timeline.Nodes[0] as IHtmlDivElement).ClassList.Should().Contain(expectedClass);
        }
Пример #2
0
        //Detect orientation
        private void CheckOrientation(SKImageInfo info, bool forceSet = false)
        {
            TimelineOrientation oldorientation = orientation;

            orientation = TimelineOrientation.Portrait;
            if (this.Bounds.Width > this.Bounds.Height)
            {
                orientation = TimelineOrientation.Landscape;
            }

            if ((oldorientation != orientation) || forceSet)
            {
                timelineHeight = info.Height * 0.10f;
                if (timelineHeight < 100)
                {
                    timelineHeight = 100;
                }
                timelineBottomY = timelineHeight;
                timelineMiddleY = timelineHeight / 2;
                unitMarkY1      = timelineBottomY;
                unitMarkY2      = unitMarkY1 - (timelineHeight * 0.45f);
                subUnitMarkY1   = timelineBottomY;
                subUnitMarkY2   = subUnitMarkY1 - (timelineHeight * 0.15f);
                unitTextY       = timelineBottomY - (timelineHeight * 0.5f);
                subUnitTextY    = timelineBottomY - (timelineHeight * 0.2f);
                halfWidth       = info.Width / 2;

                timelinePaint.Color          = this.TimelineColor.ToSKColor();
                timelinePaint.StrokeWidth    = timelineHeight;
                unitMarkPaint.Color          = this.UnitMarkColor.ToSKColor();
                unitMarkPaint.StrokeWidth    = 4;
                unitTextPaint.Color          = this.UnitTextColor.ToSKColor();
                unitTextPaint.TextSize       = unitTextY - 10;
                subUnitMarkPaint.Color       = this.SubUnitMarkColor.ToSKColor();
                subUnitMarkPaint.StrokeWidth = 2;
                subUnitTextPaint.Color       = this.SubUnitTextColor.ToSKColor();
                subUnitTextPaint.TextSize    = unitTextPaint.TextSize - 8;
                highlightPaint.Color         = this.HighlightColor.ToSKColor();
                highlightPaint.StrokeWidth   = 3;

                unitXWidth    = unitTextPaint.MeasureText("X");
                subunitXWidth = subUnitTextPaint.MeasureText("X");

                zoomLimitHourToDay    = (int)(SEC_PER_HOUR / 100);
                zoomLimitDayToMonth   = (int)(SEC_PER_DAY / 150);
                zoomLimitMonthToYear  = (int)(SEC_PER_MONTH / 200);
                zoomLimitYearToDecade = (int)(SEC_PER_YEAR / 150);

                subunitLimitMinute = (int)(SEC_PER_MINUTE / subunitXWidth * 3);
                subunitLimitHour   = (int)(SEC_PER_HOUR / subunitXWidth / 2);
                subunitLimitDay    = (int)(SEC_PER_DAY / subunitXWidth / 2);
                subunitLimitMonth  = (int)(SEC_PER_MONTH / subunitXWidth / 3);
                subunitLimitYear   = (int)(SEC_PER_YEAR / subunitXWidth / 4);

                eventLanes    = 8;
                eventsTopY    = timelineBottomY + 10;
                eventsHeight  = info.Height - eventsTopY;
                laneHeight    = eventsHeight / eventLanes;
                laneBusy      = new bool[eventLanes];
                laneBusyUntil = new TimelineDateTime[eventLanes];

                initialOrientationCheck = false;
            }
        }