protected void SplitViewHorizontal(object sender, System.EventArgs e) { MhoraControlContainer c_this = (MhoraControlContainer)this.Parent; MhoraSplitContainer c_grand = (MhoraSplitContainer)c_this.Parent; DivisionalChart dc1 = new DivisionalChart(h); MhoraControlContainer c_dc1 = new MhoraControlContainer(dc1); DivisionalChart dc2 = new DivisionalChart(h); MhoraControlContainer c_cd2 = new MhoraControlContainer(dc2); MhoraSplitContainer ns = new MhoraSplitContainer(c_dc1); ns.Control1 = c_cd2; ns.DrawDock = MhoraSplitContainer.DrawStyle.UpDown; c_grand.Control2 = ns; return; //c_grand.Control2 = c_dc; //c_dc.Dock = DockStyle.Fill; //return; /* * MhoraSplitContainer new_split = new MhoraSplitContainer (c_this); * new_split.Control2 = c_this; * new_split.DrawDock = MhoraSplitContainer.DrawStyle.UpDown; * new_split.Dock = DockStyle.Fill; * * c_grand.Control2 = new_split; * c_grand.Show(); */ }
private void menuLayout2by2_Click(object sender, System.EventArgs e) { if (Contents != null) { this.Controls.Remove(Contents); } DasaControl dc1 = new DasaControl(h, new VimsottariDasa(h)); MhoraControlContainer c_dc1 = new MhoraControlContainer(dc1); BasicCalculationsControl dc2 = new BasicCalculationsControl(h); MhoraControlContainer c_dc2 = new MhoraControlContainer(dc2); DivisionalChart div_rasi = new DivisionalChart(h); MhoraControlContainer c_div_rasi = new MhoraControlContainer(div_rasi); DivisionalChart div_nav = new DivisionalChart(h); div_nav.options.Varga = new Division(Basics.DivisionType.Navamsa); div_nav.SetOptions(div_nav.options); MhoraControlContainer c_div_nav = new MhoraControlContainer(div_nav); MhoraSplitContainer sp_ud = new MhoraSplitContainer(c_div_rasi); sp_ud.Control2 = c_div_nav; sp_ud.DrawDock = MhoraSplitContainer.DrawStyle.UpDown; MhoraSplitContainer sp_ud2 = new MhoraSplitContainer(c_dc1); sp_ud2.Control2 = c_dc2; sp_ud2.DrawDock = MhoraSplitContainer.DrawStyle.UpDown; MhoraSplitContainer sp_dc = new MhoraSplitContainer(sp_ud2); MhoraSplitContainer sp_lr = new MhoraSplitContainer(sp_ud); sp_lr.Control2 = sp_dc; int sz = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height / 2 - 50; sp_lr.Control1.Width = sz; sp_ud.Control1.Height = sz; sp_ud2.Control1.Height = sz; this.Controls.AddRange(new Control[] { sp_lr }); Contents = sp_lr; }
public VargaRectificationForm(Horoscope _h, DivisionalChart _dc, Division _dtype) { // // Required for Windows Form Designer support // InitializeComponent(); if (false == MhoraGlobalOptions.Instance.VargaRectificationFormSize.IsEmpty) { this.Size = MhoraGlobalOptions.Instance.VargaRectificationFormSize; } h = _h; dc = _dc; mOriginal = (Moment)h.info.tob.Clone(); cs = new CuspTransitSearch(h); this.PopulateOptionsInit(_dtype); //this.PopulateOptions(); this.PopulateCache(); this.HScroll = true; this.VScroll = true; this.Invalidate(); }
private void PrintFirstPage(PrintPageEventArgs e) { e.HasMorePages = true; Graphics g = e.Graphics; g.ResetTransform(); g.TranslateTransform(margin_offset, header_offset); PrintTitle(g, 0, this.wday_offset + this.wday_width, "Date/Day"); PrintTitle(g, this.sunrise_offset, this.sunset_offset + this.sunset_width, "Sunrise/set"); PrintTitle(g, this.nak_name_offset, this.nak_time_offset + this.nak_time_width, "Nakshatra"); PrintTitle(g, this.tithi_name_offset, this.tithi_time_offset + this.tithi_time_width, "Tithi"); PrintTitle(g, this.karana_name_1_offset, this.karana_time_2_offset + this.karana_time_width, "Karana"); PrintTitle(g, this.sm_name_offset, this.sm_time_offset + this.sm_time_width, "SM-Yoga"); g.TranslateTransform(0, (float)(f.Height * 1.5)); int iStart = local_index; int i = local_index; while (i < locals.Count) { int numLines = 1; PanchangaLocalMoments local = (PanchangaLocalMoments)locals[i]; Moment m_sunrise = new Moment(local.sunrise_ut, h); Moment m_sunset = new Moment(0, 0, 0, local.sunset); g.DrawString(m_sunrise.ToShortDateString(), f, b, day_offset, 0); g.DrawString(Basics.weekdayToShortString(local.wday), f, b, wday_offset, 0); if (opts.ShowSunriset) { g.DrawString(m_sunrise.ToTimeString(), f, b, sunrise_offset, 0); g.DrawString(m_sunset.ToTimeString(), f, b, sunset_offset, 0); } int numTithis = local.tithi_index_end - local.tithi_index_start; int numNaks = local.nakshatra_index_end - local.nakshatra_index_start; int numSMYogas = local.smyoga_index_end - local.smyoga_index_start; int numKaranas = local.karana_index_end - local.karana_index_start; if (opts.CalcTithiCusps) { numLines = Math.Max(numLines, numTithis); for (int j = 0; j < numTithis; j++) { PanchangaMomentInfo pmi = (PanchangaMomentInfo)globals.tithis_ut[local.tithi_index_start + 1 + j]; Tithi t = new Tithi((Tithi.Name)pmi.info); Moment mTithi = new Moment(pmi.ut, h); g.DrawString(t.ToUnqualifiedString(), f, b, tithi_name_offset, j * f.Height); g.DrawString(this.utTimeToString(pmi.ut, local.sunrise_ut, local.sunrise), f, b, tithi_time_offset, j * f.Height); } } if (opts.CalcKaranaCusps) { numLines = Math.Max(numLines, (int)Math.Ceiling(numKaranas / 2.0)); for (int j = 0; j < numKaranas; j++) { PanchangaMomentInfo pmi = (PanchangaMomentInfo)globals.karanas_ut[local.karana_index_start + 1 + j]; Karana k = new Karana((Karana.Name)pmi.info); Moment mKarana = new Moment(pmi.ut, h); int jRow = (int)Math.Floor((decimal)j / 2); int name_offset = karana_name_1_offset; int time_offset = karana_time_1_offset; if (j % 2 == 1) { name_offset = karana_name_2_offset; time_offset = karana_time_2_offset; } g.DrawString(k.value.ToString(), f, b, name_offset, jRow * f.Height); g.DrawString(this.utTimeToString(pmi.ut, local.sunrise_ut, local.sunrise), f, b, time_offset, jRow * f.Height); } } if (opts.CalcNakCusps) { numLines = Math.Max(numLines, numNaks); for (int j = 0; j < numNaks; j++) { PanchangaMomentInfo pmi = (PanchangaMomentInfo)globals.nakshatras_ut[local.nakshatra_index_start + 1 + j]; Nakshatra n = new Nakshatra((Nakshatra.Name)pmi.info); Moment mNak = new Moment(pmi.ut, h); g.DrawString(n.ToString(), f, b, nak_name_offset, j * f.Height); g.DrawString(this.utTimeToString(pmi.ut, local.sunrise_ut, local.sunrise), f, b, nak_time_offset, j * f.Height); } } if (opts.CalcSMYogaCusps) { numLines = Math.Max(numLines, numSMYogas); for (int j = 0; j < numSMYogas; j++) { PanchangaMomentInfo pmi = (PanchangaMomentInfo)globals.smyogas_ut[local.smyoga_index_start + 1 + j]; SunMoonYoga sm = new SunMoonYoga((SunMoonYoga.Name)pmi.info); Moment mSMYoga = new Moment(pmi.ut, h); g.DrawString(sm.value.ToString(), f, b, sm_name_offset, j * f.Height); g.DrawString(this.utTimeToString(pmi.ut, local.sunrise_ut, local.sunrise), f, b, sm_time_offset, j * f.Height); } } #if DND string s_rahu_kala = string.Format("{0} - {1}", this.utTimeToString(local.kalas_ut[local.rahu_kala_index], local.sunrise_ut, local.sunrise), this.utTimeToString(local.kalas_ut[local.rahu_kala_index + 1], local.sunrise_ut, local.sunrise)); g.DrawString(s_rahu_kala, f, b, rahu_kala_offset, 0); #endif g.TranslateTransform(0, f.Height * numLines); local_index = ++i; if (g.Transform.OffsetY > e.PageBounds.Height - this.header_offset - divisional_chart_size) { goto first_done; } } this.bPrintPanchanga = false; this.local_index = 0; first_done: float offsetY = g.Transform.OffsetY; float offsetX = margin_offset + sm_time_offset + sm_time_width; Moment mCurr = new Moment(((PanchangaLocalMoments)locals[iStart]).sunrise_ut, h); HoraInfo hiCurr = new HoraInfo(mCurr, h.info.lat, h.info.lon, h.info.tz); Horoscope hCurr = new Horoscope(hiCurr, h.options); DivisionalChart dc = new DivisionalChart(hCurr); dc.PrintMode = true; dc.options.ViewStyle = DivisionalChart.UserOptions.EViewStyle.Panchanga; dc.SetOptions(dc.options); dc.DrawChart(g, divisional_chart_size, divisional_chart_size); g.ResetTransform(); // horizontal top & bottom g.DrawLine(p, margin_offset - 5, header_offset - 5, margin_offset + sm_time_offset + sm_time_width + 5, header_offset - 5); g.DrawLine(p, margin_offset - 5, header_offset - 5 + f.Height * (float)1.5, margin_offset + sm_time_offset + sm_time_width + 5, header_offset - 5 + f.Height * (float)1.5); g.DrawLine(p, margin_offset - 5, offsetY + 5, offsetX + 5, offsetY + 5); // vertical left and right g.DrawLine(p, margin_offset - 5, header_offset - 5, margin_offset - 5, offsetY + 5); g.DrawLine(p, offsetX + 5, header_offset - 5, offsetX + 5, offsetY + 5); g.DrawLine(p, margin_offset + sunset_offset + sunset_width - 2, header_offset - 5, margin_offset + sunset_offset + sunset_width - 2, offsetY + 5); g.DrawLine(p, margin_offset + tithi_time_offset + tithi_time_width - 2, header_offset - 5, margin_offset + tithi_time_offset + tithi_time_width - 2, offsetY + 5); g.DrawLine(p, margin_offset + nak_time_offset + nak_time_width - 2, header_offset - 5, margin_offset + nak_time_offset + nak_time_width - 2, offsetY + 5); g.DrawLine(p, margin_offset + karana_time_2_offset + karana_time_width - 2, header_offset - 5, margin_offset + karana_time_2_offset + karana_time_width - 2, offsetY + 5); }
private void menuLayout3by3_Click(object sender, System.EventArgs e) { if (Contents != null) { this.Controls.Remove(Contents); } DivisionalChart d1 = new DivisionalChart(h); MhoraControlContainer c_d1 = new MhoraControlContainer(d1); DivisionalChart d2 = new DivisionalChart(h); d2.options.Varga = new Division(Basics.DivisionType.DrekkanaParasara); d2.SetOptions(d2.options); MhoraControlContainer c_d2 = new MhoraControlContainer(d2); DivisionalChart d3 = new DivisionalChart(h); d3.options.Varga = new Division(Basics.DivisionType.Navamsa); d3.SetOptions(d3.options); MhoraControlContainer c_d3 = new MhoraControlContainer(d3); DivisionalChart d4 = new DivisionalChart(h); d4.options.Varga = new Division(Basics.DivisionType.Saptamsa); d4.SetOptions(d4.options); MhoraControlContainer c_d4 = new MhoraControlContainer(d4); DivisionalChart d5 = new DivisionalChart(h); d5.options.Varga = new Division(Basics.DivisionType.Dasamsa); d5.SetOptions(d5.options); MhoraControlContainer c_d5 = new MhoraControlContainer(d5); DivisionalChart d6 = new DivisionalChart(h); d6.options.Varga = new Division(Basics.DivisionType.Vimsamsa); d6.SetOptions(d6.options); MhoraControlContainer c_d6 = new MhoraControlContainer(d6); MhoraSplitContainer sp_ud1 = new MhoraSplitContainer(c_d1); sp_ud1.Control2 = c_d2; sp_ud1.DrawDock = MhoraSplitContainer.DrawStyle.UpDown; MhoraSplitContainer sp_ud2 = new MhoraSplitContainer(c_d3); sp_ud2.Control2 = c_d4; sp_ud2.DrawDock = MhoraSplitContainer.DrawStyle.UpDown; MhoraSplitContainer sp_ud3 = new MhoraSplitContainer(c_d5); sp_ud3.Control2 = c_d6; sp_ud3.DrawDock = MhoraSplitContainer.DrawStyle.UpDown; MhoraSplitContainer lr2 = new MhoraSplitContainer(sp_ud2); lr2.Control2 = sp_ud3; MhoraSplitContainer lr1 = new MhoraSplitContainer(sp_ud1); lr1.Control2 = lr2; int h_sz = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height / 2 - 30; int w_sz = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width / 3 - 30; int sz = Math.Min(h_sz, w_sz); lr1.Control1.Width = sz; lr2.Control1.Width = sz; sp_ud1.Control1.Height = sz; sp_ud2.Control1.Height = sz; sp_ud3.Control1.Height = sz; this.Controls.AddRange(new Control[] { lr1 }); Contents = lr1; }
private void PrintCoverPage(PrintPageEventArgs e) { g = e.Graphics; left = e.MarginBounds.Left; top = e.MarginBounds.Top; width = e.MarginBounds.Width; DivisionalChart dc_rasi = new DivisionalChart(h); dc_rasi.PrintMode = true; DivisionalChart dc_nav = new DivisionalChart(h); dc_nav.options.Varga = new Division(Basics.DivisionType.Navamsa); dc_nav.PrintMode = true; dc_nav.SetOptions(dc_nav.options); // Rasi & Navamsa charts g.TranslateTransform(left, top); dc_rasi.DrawChart(g, width / 2, width / 2); g.ResetTransform(); g.TranslateTransform(left + (width / 2), top); dc_nav.DrawChart(g, width / 2, width / 2); top += (width / 2) + pad_height; // Birth Details this.PrintString(string.Format("{0} {1}. {2}. {3}, {4}.", h.wday, h.info.tob, h.info.tz, h.info.lat, h.info.lon)); // Tithi Longitude ltithi = h.getPosition(Body.Name.Moon).longitude.sub(h.getPosition(Body.Name.Sun).longitude); double offset = (360.0 / 30.0) - ltithi.toTithiOffset(); Tithi ti = ltithi.toTithi(); this.PrintString(String.Format("Tithi: {0} {1:N}% left", ti.value, offset / 12.0 * 100)); // Nakshatra Longitude lmoon = h.getPosition(Body.Name.Moon).longitude; Nakshatra nmoon = lmoon.toNakshatra(); offset = (360.0 / 27.0) - lmoon.toNakshatraOffset(); int pada = lmoon.toNakshatraPada(); this.PrintString(String.Format("Nakshatra: {0} {1} {2:N}% left", nmoon.value, pada, offset / (360.0 / 27.0) * 100)); // Yoga, Hora Longitude smLon = h.getPosition(Body.Name.Sun).longitude.add(h.getPosition(Body.Name.Moon).longitude); SunMoonYoga smYoga = smLon.toSunMoonYoga(); Body.Name bHora = h.calculateHora(); this.PrintString(string.Format("{0} Yoga, {1} Hora", smYoga.value, bHora)); top += pad_height; // Calculation Details foreach (BodyPosition bp in h.positionList) { switch (bp.type) { case BodyType.Name.Graha: case BodyType.Name.Lagna: case BodyType.Name.SpecialLagna: case BodyType.Name.Upagraha: this.PrintBody(bp); break; } } top = e.MarginBounds.Top + (width / 2) + pad_height + f.Height; left = e.MarginBounds.Left + (width / 2); // Vimsottari Dasa VimsottariDasa vd = new VimsottariDasa(h); vd.options.SeedBody = VimsottariDasa.UserOptions.StartBodyType.Moon; this.PrintVimDasa(vd); }
private void PrintVargas(PrintPageEventArgs e) { g = e.Graphics; left = e.MarginBounds.Left; top = e.MarginBounds.Top; width = e.MarginBounds.Width; Division dtype = new Division(Basics.DivisionType.Rasi); DivisionalChart dc = new DivisionalChart(h); dc.PrintMode = true; int dc_size = Math.Min(width / 2, e.MarginBounds.Height / 3); if (false == this.GetNextVarga(ref dtype)) { return; } dc.options.Varga = dtype; dc.SetOptions(dc.options); g.TranslateTransform(left, top); dc.DrawChart(g, dc_size, dc_size); g.ResetTransform(); if (false == this.GetNextVarga(ref dtype)) { return; } dc.options.Varga = dtype; dc.SetOptions(dc.options); g.TranslateTransform(left + dc_size, top); dc.DrawChart(g, dc_size, dc_size); g.ResetTransform(); if (false == this.GetNextVarga(ref dtype)) { return; } dc.options.Varga = dtype; dc.SetOptions(dc.options); g.TranslateTransform(left, top + dc_size); dc.DrawChart(g, dc_size, dc_size); g.ResetTransform(); if (false == this.GetNextVarga(ref dtype)) { return; } dc.options.Varga = dtype; dc.SetOptions(dc.options); g.TranslateTransform(left + dc_size, top + dc_size); dc.DrawChart(g, dc_size, dc_size); g.ResetTransform(); if (false == this.GetNextVarga(ref dtype)) { return; } dc.options.Varga = dtype; dc.SetOptions(dc.options); g.TranslateTransform(left, top + dc_size * 2); dc.DrawChart(g, dc_size, dc_size); g.ResetTransform(); if (false == this.GetNextVarga(ref dtype)) { return; } dc.options.Varga = dtype; dc.SetOptions(dc.options); g.TranslateTransform(left + dc_size, top + dc_size * 2); dc.DrawChart(g, dc_size, dc_size); }
public void SetView(BaseUserOptions.ViewType view) { MhoraControl mc = null;; switch (view) { case BaseUserOptions.ViewType.DivisionalChart: mc = new DivisionalChart(h); break; case BaseUserOptions.ViewType.Ashtakavarga: mc = new AshtakavargaControl(h); break; case BaseUserOptions.ViewType.ChakraSarvatobhadra81: mc = new Sarvatobhadra81Control(h); break; case BaseUserOptions.ViewType.NavamsaCircle: mc = new NavamsaControl(h); break; case BaseUserOptions.ViewType.VaraChakra: mc = new VaraChakra(h); break; case BaseUserOptions.ViewType.Panchanga: mc = new PanchangaControl(h); break; case BaseUserOptions.ViewType.KutaMatching: { Horoscope h2 = h; foreach (Form f in ((MhoraContainer)MhoraGlobalOptions.mainControl).MdiChildren) { if (f is MhoraChild) { MhoraChild mch = (MhoraChild)f; if (h == h2 && mch.getHoroscope() != h2) { h2 = mch.getHoroscope(); break; } } } mc = new KutaMatchingControl(h, h); } break; case BaseUserOptions.ViewType.DasaVimsottari: mc = new DasaControl(h, new VimsottariDasa(h)); break; case BaseUserOptions.ViewType.DasaYogini: mc = new DasaControl(h, new YoginiDasa(h)); break; case BaseUserOptions.ViewType.DasaShodashottari: mc = new DasaControl(h, new ShodashottariDasa(h)); break; case BaseUserOptions.ViewType.DasaAshtottari: mc = new DasaControl(h, new AshtottariDasa(h)); break; case BaseUserOptions.ViewType.DasaTithiAshtottari: mc = new DasaControl(h, new TithiAshtottariDasa(h)); break; case BaseUserOptions.ViewType.DasaKaranaChaturashitiSama: mc = new DasaControl(h, new KaranaChaturashitiSamaDasa(h)); break; case BaseUserOptions.ViewType.DasaYogaVimsottari: mc = new DasaControl(h, new YogaVimsottariDasa(h)); break; case BaseUserOptions.ViewType.DasaLagnaKendradiRasi: mc = new DasaControl(h, new LagnaKendradiRasiDasa(h)); break; case BaseUserOptions.ViewType.DasaKarakaKendradiGraha: mc = new DasaControl(h, new KarakaKendradiGrahaDasa(h)); break; case BaseUserOptions.ViewType.DasaKalachakra: mc = new DasaControl(h, new KalachakraDasa(h)); break; case BaseUserOptions.ViewType.DasaMoola: mc = new DasaControl(h, new MoolaDasa(h)); break; case BaseUserOptions.ViewType.DasaNavamsa: mc = new DasaControl(h, new NavamsaDasa(h)); break; case BaseUserOptions.ViewType.DasaMandooka: mc = new DasaControl(h, new MandookaDasa(h)); break; case BaseUserOptions.ViewType.DasaChara: mc = new DasaControl(h, new CharaDasa(h)); break; case BaseUserOptions.ViewType.DasaTrikona: mc = new DasaControl(h, new TrikonaDasa(h)); break; case BaseUserOptions.ViewType.DasaSu: mc = new DasaControl(h, new SuDasa(h)); break; case BaseUserOptions.ViewType.DasaSudarshanaChakra: mc = new DasaControl(h, new SudarshanaChakraDasa(h)); break; case BaseUserOptions.ViewType.DasaMudda: { DasaControl dc = new DasaControl(h, new VimsottariDasa(h)); dc.DasaOptions.YearType = ToDate.DateType.SolarYear; dc.DasaOptions.YearLength = 360; dc.DasaOptions.Compression = 1; dc.Reset(); mc = dc; } break; case BaseUserOptions.ViewType.DasaSudarshanaChakraCompressed: { DasaControl dc = new DasaControl(h, new SudarshanaChakraDasa(h)); dc.DasaOptions.YearType = ToDate.DateType.SolarYear; dc.DasaOptions.YearLength = 360; dc.DasaOptions.Compression = 1; dc.Reset(); mc = dc; } break; case BaseUserOptions.ViewType.DasaYogaPraveshVimsottariCompressedYoga: { DasaControl dc = new DasaControl(h, new YogaVimsottariDasa(h)); dc.compressToYogaPraveshaYearYoga(); mc = dc; } break; case BaseUserOptions.ViewType.DasaTithiPraveshAshtottariCompressedTithi: { DasaControl dc = new DasaControl(h, new TithiAshtottariDasa(h)); dc.DasaOptions.YearType = ToDate.DateType.TithiYear; ToDate td_pravesh = new ToDate(h.baseUT, ToDate.DateType.TithiPraveshYear, 360.0, 0, h); ToDate td_tithi = new ToDate(h.baseUT, ToDate.DateType.TithiYear, 360.0, 0, h); sweph.obtainLock(h); if (td_tithi.AddYears(1).toUniversalTime() + 15.0 < td_pravesh.AddYears(1).toUniversalTime()) { dc.DasaOptions.YearLength = 390; } sweph.releaseLock(h); dc.DasaOptions.Compression = 1; TithiAshtottariDasa.UserOptions tuo = (TithiAshtottariDasa.UserOptions)dc.DasaSpecificOptions; tuo.UseTithiRemainder = true; dc.DasaSpecificOptions = tuo; dc.Reset(); mc = dc; } break; case BaseUserOptions.ViewType.DasaTithiPraveshAshtottariCompressedFixed: { DasaControl dc = new DasaControl(h, new TithiAshtottariDasa(h)); ToDate td_pravesh = new ToDate(h.baseUT, ToDate.DateType.TithiPraveshYear, 360.0, 0, h); sweph.obtainLock(h); dc.DasaOptions.YearType = ToDate.DateType.FixedYear; dc.DasaOptions.YearLength = td_pravesh.AddYears(1).toUniversalTime() - td_pravesh.AddYears(0).toUniversalTime(); sweph.releaseLock(h); TithiAshtottariDasa.UserOptions tuo = (TithiAshtottariDasa.UserOptions)dc.DasaSpecificOptions; tuo.UseTithiRemainder = true; dc.DasaSpecificOptions = tuo; dc.DasaOptions.Compression = 1; dc.Reset(); mc = dc; } break; case BaseUserOptions.ViewType.DasaTithiPraveshAshtottariCompressedSolar: { DasaControl dc = new DasaControl(h, new TithiAshtottariDasa(h)); ToDate td_pravesh = new ToDate(h.baseUT, ToDate.DateType.TithiPraveshYear, 360.0, 0, h); sweph.obtainLock(h); double ut_start = td_pravesh.AddYears(0).toUniversalTime(); double ut_end = td_pravesh.AddYears(1).toUniversalTime(); BodyPosition sp_start = Basics.CalculateSingleBodyPosition( ut_start, sweph.BodyNameToSweph(Body.Name.Sun), Body.Name.Sun, BodyType.Name.Graha, this.h); BodyPosition sp_end = Basics.CalculateSingleBodyPosition( ut_end, sweph.BodyNameToSweph(Body.Name.Sun), Body.Name.Sun, BodyType.Name.Graha, this.h); Longitude lDiff = sp_end.longitude.sub(sp_start.longitude); double diff = lDiff.value; if (diff < 120.0) { diff += 360.0; } dc.DasaOptions.YearType = ToDate.DateType.SolarYear; dc.DasaOptions.YearLength = diff; sweph.releaseLock(h); TithiAshtottariDasa.UserOptions tuo = (TithiAshtottariDasa.UserOptions)dc.DasaSpecificOptions; tuo.UseTithiRemainder = true; dc.DasaSpecificOptions = tuo; //dc.DasaOptions.YearType = ToDate.DateType.FixedYear; //dc.DasaOptions.YearLength = td_pravesh.AddYears(1).toUniversalTime() - // td_pravesh.AddYears(0).toUniversalTime(); dc.DasaOptions.Compression = 1; dc.Reset(); mc = dc; } break; case BaseUserOptions.ViewType.DasaDwadashottari: mc = new DasaControl(h, new DwadashottariDasa(h)); break; case BaseUserOptions.ViewType.DasaPanchottari: mc = new DasaControl(h, new PanchottariDasa(h)); break; case BaseUserOptions.ViewType.DasaShatabdika: mc = new DasaControl(h, new ShatabdikaDasa(h)); break; case BaseUserOptions.ViewType.DasaChaturashitiSama: mc = new DasaControl(h, new ChaturashitiSamaDasa(h)); break; case BaseUserOptions.ViewType.DasaDwisaptatiSama: mc = new DasaControl(h, new DwisaptatiSamaDasa(h)); break; case BaseUserOptions.ViewType.DasaShatTrimshaSama: mc = new DasaControl(h, new ShatTrimshaSamaDasa(h)); break; case BaseUserOptions.ViewType.BasicCalculations: mc = new BasicCalculationsControl(h); break; case BaseUserOptions.ViewType.KeyInfo: mc = new KeyInfoControl(h); break; case BaseUserOptions.ViewType.Balas: mc = new BalasControl(h); break; case BaseUserOptions.ViewType.TransitSearch: mc = new TransitSearch(h); break; case BaseUserOptions.ViewType.NaisargikaRasiDasa: mc = new DasaControl(h, new NaisargikaRasiDasa(h)); break; case BaseUserOptions.ViewType.NaisargikaGrahaDasa: mc = new DasaControl(h, new NaisargikaGrahaDasa(h)); break; case BaseUserOptions.ViewType.DasaNarayana: mc = new DasaControl(h, new NarayanaDasa(h)); break; case BaseUserOptions.ViewType.DasaNarayanaSama: mc = new DasaControl(h, new NarayanaSamaDasa(h)); break; case BaseUserOptions.ViewType.DasaShoola: mc = new DasaControl(h, new ShoolaDasa(h)); break; case BaseUserOptions.ViewType.DasaNiryaanaShoola: mc = new DasaControl(h, new NirayaanaShoolaDasa(h)); break; case BaseUserOptions.ViewType.DasaDrig: mc = new DasaControl(h, new DrigDasa(h)); break; case BaseUserOptions.ViewType.DasaTajaka: mc = new DasaControl(h, new TajakaDasa(h)); break; case BaseUserOptions.ViewType.DasaTithiPravesh: { DasaControl dc = new DasaControl(h, new TithiPraveshDasa(h)); dc.DasaOptions.YearType = ToDate.DateType.TithiPraveshYear; dc.LinkToHoroscope = false; dc.Reset(); mc = dc; } break; case BaseUserOptions.ViewType.DasaYogaPravesh: { DasaControl dc = new DasaControl(h, new YogaPraveshDasa(h)); dc.DasaOptions.YearType = ToDate.DateType.YogaPraveshYear; dc.LinkToHoroscope = false; dc.Reset(); mc = dc; } break; case BaseUserOptions.ViewType.DasaNakshatraPravesh: { DasaControl dc = new DasaControl(h, new NakshatraPraveshDasa(h)); dc.DasaOptions.YearType = ToDate.DateType.NakshatraPraveshYear; dc.LinkToHoroscope = false; dc.Reset(); mc = dc; } break; case BaseUserOptions.ViewType.DasaKaranaPravesh: { DasaControl dc = new DasaControl(h, new KaranaPraveshDasa(h)); dc.DasaOptions.YearType = ToDate.DateType.KaranaPraveshYear; dc.LinkToHoroscope = false; dc.Reset(); mc = dc; } break; case BaseUserOptions.ViewType.DasaTattwa: mc = new DasaControl(h, new TattwaDasa(h)); break; default: Debug.Assert(false, "Unknown View Internal error"); break; } mc.Dock = DockStyle.Fill; if (null != this.Control) { this.Control.Dispose(); } this.Control = mc; return; }