Exemple #1
0
        public MainWindow()
        {
            _metonicYearModel = new MetonicYearModel();
            _moonModel        = new MoonModel();
            _nodesModel       = new NodesModel();
            _sunModel         = new SunModel(_nodesModel);
            _sunCountModel    = new SunCountModel(_sunModel);
            _monthModel       = new MonthModel(_metonicYearModel, _sunModel, _moonModel);
            _dayModel         = new DayModel(_monthModel, _metonicYearModel);


            InitializeComponent();
            SetYearZero();


            CreateRenderWindow();

            var refreshRate = new TimeSpan(0, 0, 0, 0, 1000 / 60);

            this._timer = new DispatcherTimer {
                Interval = refreshRate
            };
            this._timer.Tick += Timer_Tick;
            this._timer.Start();

            _dispatcherTimer          = new DispatcherTimer();
            _dispatcherTimer.Tick    += new EventHandler(DispatcherTimer_Tick);
            _dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 500);
        }
        private static void BuildDayRings(SKImageInfo info, SKCanvas canvas, IDayModel day, IMonthModel month)
        {
            float outerRingPercentageWidth = 31;
            float innerRingPercentageWidth = 26;

            var arcPainter = new SKPaint
            {
                Color       = SKColors.Black,
                Style       = SKPaintStyle.Stroke,
                StrokeWidth = 2
            };

            var dayLabelPainter = new SKPaint
            {
                Color       = Color.FromRgb(0, 0, 0).ToSKColor(),
                Style       = SKPaintStyle.StrokeAndFill,
                StrokeWidth = 2,
                TextSize    = Utility.GetWidthValueFromPercentage(info, 2.5f)
            };

            info = BuildOuterDayRing(info, canvas, outerRingPercentageWidth, arcPainter);
            info = BuildInnerDayRing(info, canvas, innerRingPercentageWidth, arcPainter);

            CircleShape[] outerRingPegPoints = GetOuterPegPoints(info, canvas, outerRingPercentageWidth);
            CircleShape[] innerRingPegPoints = GetInnerPegPoints(info, canvas, innerRingPercentageWidth);

            ConnectDayRingCrossover(canvas, arcPainter, outerRingPegPoints, innerRingPegPoints);
            CreateDayLabels(info, canvas, arcPainter, dayLabelPainter, outerRingPegPoints, innerRingPegPoints);
            SetActiveDayPeg(info, canvas, day, month, outerRingPegPoints, innerRingPegPoints);
        }
        private static void DrawDayRing(RenderWindow app, IDayModel day, IMonthModel month)
        {
            var dayRing1      = ElementDrawer.CreateRing(app, 180, new Color(0, 0, 0), true);
            var day1PegPoints = ElementDrawer.CreatePegPoints(app, dayRing1, 30, (Math.PI * 2) / 30);

            Array.Reverse(day1PegPoints);
            var dayRing2      = ElementDrawer.CreateRing(app, 160, new Color(0, 0, 0), true);
            var day2PegPoints = ElementDrawer.CreatePegPoints(app, dayRing2, 29, (Math.PI * 2) / 29);

            Array.Reverse(day2PegPoints);
            if (!day.IsShortMonth() || (month.Get() == 11 || month.Get() == 10))
            {
                day1PegPoints[day.Get() - 1].FillColor = new Color(255, 0, 0);
            }
            else
            {
                day2PegPoints[day.Get() - 1].FillColor = new Color(255, 0, 0);
            }
            foreach (var p in day1PegPoints)
            {
                app.Draw(p);
            }
            foreach (var p in day2PegPoints)
            {
                app.Draw(p);
            }
        }
 public CalendarControl()
 {
     _metonicYearModel = new MetonicYearModel();
     _moonModel        = new MoonModel();
     _nodesModel       = new NodesModel();
     _sunModel         = new SunModel(_nodesModel);
     _sunCountModel    = new SunCountModel(_sunModel);
     _monthModel       = new MonthModel(_metonicYearModel, _sunModel, _moonModel);
     _dayModel         = new DayModel(_monthModel, _metonicYearModel);
 }
        public DayCounterController(DaySettingsDatabase daySettingsDatabase,
                                    DayCounterPresenter dayCounterPresenter,
                                    IDayModel dayModel,
                                    HourController hourController,
                                    SunView sunView,
                                    SunPrefabFactory sunFactory)
        {
            _daySettingsDatabase = daySettingsDatabase;
            _dayCounterPresenter = dayCounterPresenter;

            _dayModel       = dayModel;
            _hourController = hourController;
            _sunFactory     = sunFactory;
            _sunView        = sunView;
        }
 private void OpenLog(IDayModel day)
 {
     if (day.Name == "userlogs")
     {
         _currentState.SwitchViewToUserlogs(_currentState.Month);
         return;
     }
     try {
         _currentState.Day = day;
         Process.Start(day.Url);
     }
     catch (Exception e) {
         Console.WriteLine(e);
     }
 }
 private static void ColourActiveDayPeg(IDayModel day, IMonthModel month, CircleShape[] outerRingPegPoints, CircleShape[] innerRingPegPoints)
 {
     if (!day.IsShortMonth() || (month.Get() == 11 || month.Get() == 10))
     {
         if (day.Get() == 1)
         {
             innerRingPegPoints[day.Get() - 1].FillColor = new Color(255, 0, 0);
         }
         else
         {
             outerRingPegPoints[day.Get() - 1].FillColor = new Color(255, 0, 0);
         }
     }
     else
     {
         innerRingPegPoints[day.Get() - 1].FillColor = new Color(255, 0, 0);
     }
 }
Exemple #8
0
 public HourController(DaySettingsDatabase daySettingsDatabase, IDayModel dayModel)
 {
     _daySettingsDatabase = daySettingsDatabase;
     _dayModel            = dayModel;
 }
        public static void DrawCalendar(RenderWindow app, INodesModel nodes, ISunModel sun, IMoonModel moon, IMetonicYearModel year, IMonthModel month, IDayModel day, ISunCountModel sunCount)
        {
            ElementDrawer.CreateRing(app, 270, new Color(0, 0, 0), true);
            DrawNodeRing(app, nodes);
            DrawSunRing(app, sun);
            DrawMoonRing(app, moon);
            ElementDrawer.CreateRing(app, 210, new Color(0, 0, 0), true);
            DrawDayRing(app, day, month);
            DrawSunCountRing(app, sunCount);

            DrawMonthRing(app, month);
            DrawYearRing(app, year);
        }
 private static void SetActiveDayPeg(SKImageInfo info, SKCanvas canvas, IDayModel day, IMonthModel month, CircleShape[] outerRingPegPoints, CircleShape[] innerRingPegPoints)
 {
     ColourActiveDayPeg(day, month, outerRingPegPoints, innerRingPegPoints);
     DrawDayPegPoints(info, canvas, outerRingPegPoints, innerRingPegPoints);
 }