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); } }
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); }