Beispiel #1
0
	def __init__(self, parent, chrt, options, pds, title):
		super(PrimDirsListFrame, self).__init__(parent, -1, title, wx.DefaultPosition, size=wx.Size(640, 400))

		self.parent = parent
		self.chart = chrt
		self.pdrange = pds.pdrange
		self.direction = pds.direction

		self.horoscope = None # for time-stepping

		#Navigating toolbar
		self.tb = self.CreateToolBar(wx.TB_HORIZONTAL|wx.NO_BORDER|wx.TB_FLAT)

		tsize = (24, 24)
		tostart_bmp = wx.ArtProvider.GetBitmap(wx.ART_GO_UP, wx.ART_TOOLBAR, tsize)
		back_bmp = wx.ArtProvider.GetBitmap(wx.ART_GO_BACK, wx.ART_TOOLBAR, tsize)
		forward_bmp = wx.ArtProvider.GetBitmap(wx.ART_GO_FORWARD, wx.ART_TOOLBAR, tsize)
		toend_bmp= wx.ArtProvider.GetBitmap(wx.ART_GO_DOWN, wx.ART_TOOLBAR, tsize)

		self.tb.SetToolBitmapSize(tsize)

		self.ID_Start = 10
		self.tb.AddLabelTool(10, "Start", tostart_bmp, shortHelp=mtexts.txts["Start"], longHelp=mtexts.txts["ToFirstPage"])
		self.Bind(wx.EVT_TOOL, self.OnStart, id=self.ID_Start)

		self.ID_Back = 20
		self.tb.AddLabelTool(20, "Back", back_bmp, shortHelp=mtexts.txts["Back"], longHelp=mtexts.txts["ToBackPage"])
		self.Bind(wx.EVT_TOOL, self.OnBack, id=self.ID_Back)

		self.ID_Forward = 30
		self.tb.AddLabelTool(30, "Forward", forward_bmp, shortHelp=mtexts.txts["Forward"], longHelp=mtexts.txts["ToForwardPage"])
		self.Bind(wx.EVT_TOOL, self.OnForward, id=self.ID_Forward)

		self.ID_End = 40
		self.tb.AddLabelTool(40, "End", toend_bmp, shortHelp=mtexts.txts["End"], longHelp=mtexts.txts["ToLastPage"])
		self.Bind(wx.EVT_TOOL, self.OnEnd, id=self.ID_End)

		self.tb.AddSeparator()

#		self.tb.AddControl(wx.StaticText(self.tb, -1, '              '))
#		txt = str(chrt.time.origyear)+'.'+str(chrt.time.origmonth).zfill(2)+'.'+str(chrt.time.origday).zfill(2)+'. '+str(chrt.time.hour).zfill(2)+':'+str(chrt.time.minute).zfill(2)+':'+str(chrt.time.second).zfill(2)

#		self.tb.AddControl(wx.StaticText(self.tb, -1, txt))

		self.tb.AddControl(wx.StaticText(self.tb, -1, '              '))

		#Range
		rnge = 3000
		checker = rangechecker.RangeChecker()
		if checker.isExtended():
			rnge = 5000
		#year
		self.year = wx.TextCtrl(self.tb, -1, '', validator=intvalidator.IntValidator(0, rnge), size=(50, -1), style=wx.TE_READONLY)
		if checker.isExtended():
			self.year.SetHelpText(mtexts.txts['HelpYear'])
		else:
			self.year.SetHelpText(mtexts.txts['HelpYear2'])
		self.year.SetMaxLength(4)
		self.year.SetValue(str(chrt.time.origyear))
		self.tb.AddControl(self.year)

		self.tb.AddControl(wx.StaticText(self.tb, -1, ' '))

		#month
		self.month = wx.TextCtrl(self.tb, -1, '', validator=intvalidator.IntValidator(1, 12), size=(30, -1), style=wx.TE_READONLY)
		self.month.SetHelpText(mtexts.txts['HelpMonth'])
		self.month.SetMaxLength(2)
		self.month.SetValue(str(chrt.time.origmonth).zfill(2))
		self.tb.AddControl(self.month)

		self.tb.AddControl(wx.StaticText(self.tb, -1, ' '))

		#day
		self.day = wx.TextCtrl(self.tb, -1, '', validator=intvalidator.IntValidator(1, 31), size=(30, -1), style=wx.TE_READONLY)
		self.day.SetHelpText(mtexts.txts['HelpDay'])
		self.day.SetMaxLength(2)
		self.day.SetValue(str(chrt.time.origday).zfill(2))
		self.tb.AddControl(self.day)

		self.tb.AddControl(wx.StaticText(self.tb, -1, '   '))

		#hour
		self.hour = wx.TextCtrl(self.tb, -1, '', validator=intvalidator.IntValidator(0, 23), size=(30, -1), style=wx.TE_READONLY)
		self.hour.SetHelpText(mtexts.txts['HelpHour'])
		self.hour.SetMaxLength(2)
		self.hour.SetValue(str(chrt.time.hour))
		self.tb.AddControl(self.hour)

		self.tb.AddControl(wx.StaticText(self.tb, -1, ':'))

		#minute
		self.minute = wx.TextCtrl(self.tb, -1, '', validator=intvalidator.IntValidator(0, 59), size=(30, -1), style=wx.TE_READONLY)
		self.minute.SetHelpText(mtexts.txts['HelpMin'])
		self.minute.SetMaxLength(2)
		self.minute.SetValue(str(chrt.time.minute).zfill(2))
		self.tb.AddControl(self.minute)

		self.tb.AddControl(wx.StaticText(self.tb, -1, ':'))

		#second
		self.sec = wx.TextCtrl(self.tb, -1, '', validator=intvalidator.IntValidator(0, 59), size=(30, -1), style=wx.TE_READONLY)
		self.sec.SetHelpText(mtexts.txts['HelpMin'])
		self.sec.SetMaxLength(2)
		self.sec.SetValue(str(chrt.time.second).zfill(2))
		self.tb.AddControl(self.sec)

		self.tb.AddControl(wx.StaticText(self.tb, -1, '     '))

		#Rectification
		self.tb.AddControl(wx.StaticText(self.tb, -1, mtexts.txts['Rectification']))
		self.tb.AddControl(wx.StaticText(self.tb, -1, ': '))

		self.recttypes = ('1s', '5s', '10s', '1m', '5m', '10m')
		self.rectcb = wx.ComboBox(self.tb, -1, self.recttypes[0], size=(70, -1), choices=self.recttypes, style=wx.CB_DROPDOWN|wx.CB_READONLY)
		self.rectcb.SetSelection(0)
		self.tb.AddControl(self.rectcb)

		self.tb.AddControl(wx.StaticText(self.tb, -1, ' '))

		self.btnIncr = wx.Button(self.tb, -1, '+', size=(40, 30))
		self.tb.AddControl(self.btnIncr)

		self.btnDecr = wx.Button(self.tb, -1, '-', size=(40, 30))
		self.tb.AddControl(self.btnDecr)

		self.tb.AddControl(wx.StaticText(self.tb, -1, '  '))

		self.btnCalc = wx.Button(self.tb, -1, mtexts.txts['Calculate'], size=(-1, 30))
		self.tb.AddControl(self.btnCalc)

		self.Bind(wx.EVT_BUTTON, self.onIncr, id=self.btnIncr.GetId())
		self.Bind(wx.EVT_BUTTON, self.onDecr, id=self.btnDecr.GetId())
		self.Bind(wx.EVT_BUTTON, self.onCalc, id=self.btnCalc.GetId())

		self.tb.Realize()

		self.initTB(chrt, options, pds, parent)

		self.SetMinSize((200, 200))

		self.Bind(EVT_PDREADY, self.OnPDReady)
Beispiel #2
0
	def __init__(self, parent, title, langid):
		self.langid = langid

        # Instead of calling wx.Dialog.__init__ we precreate the dialog
        # so we can set an extra style that must be set before
        # creation, and then we create the GUI object using the Create
        # method.
		pre = wx.PreDialog()
		pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
		pre.Create(parent, -1, title, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE)

        # This next step is the most important, it turns this Python
        # object into the real wrapper of the dialog (instead of pre)
        # as far as the wxPython extension is concerned.
		self.PostCreate(pre)

		#main vertical sizer
		mvsizer = wx.BoxSizer(wx.VERTICAL)
		#main horizontal sizer
		mhsizer = wx.BoxSizer(wx.HORIZONTAL)

		#Time
		rnge = 3000
		checker = rangechecker.RangeChecker()
		if checker.isExtended():
			rnge = 5000
		self.stime =wx.StaticBox(self, label='')
		timesizer = wx.StaticBoxSizer(self.stime, wx.VERTICAL)
		vsizer = wx.BoxSizer(wx.VERTICAL)
		self.timeckb = wx.CheckBox(self, -1, mtexts.txts['BC'])
		vsizer.Add(self.timeckb, 0, wx.ALIGN_LEFT|wx.LEFT|wx.RIGHT|wx.TOP, 5)

		fgsizer = wx.FlexGridSizer(2, 3)
		vvsizer = wx.BoxSizer(wx.VERTICAL)
		self.yearlabel = wx.StaticText(self, -1, mtexts.txts['Year']+':')
		vvsizer.Add(self.yearlabel, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.year = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, rnge), size=(50,-1))
		vvsizer.Add(self.year, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		if checker.isExtended():
			self.year.SetHelpText(mtexts.txts['HelpYear'])
		else:
			self.year.SetHelpText(mtexts.txts['HelpYear2'])
		self.year.SetMaxLength(4)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vvsizer = wx.BoxSizer(wx.VERTICAL)
		self.monthlabel = wx.StaticText(self, -1, mtexts.txts['Month']+':')
		vvsizer.Add(self.monthlabel, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.month = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(1, 12), size=(50,-1))
		self.month.SetHelpText(mtexts.txts['HelpMonth'])
		self.month.SetMaxLength(2)
		vvsizer.Add(self.month, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vvsizer = wx.BoxSizer(wx.VERTICAL)
		self.daylabel = wx.StaticText(self, -1, mtexts.txts['Day']+':')
		vvsizer.Add(self.daylabel, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.day = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(1, 31), size=(50,-1))
		self.day.SetHelpText(mtexts.txts['HelpDay'])
		self.day.SetMaxLength(2)
		vvsizer.Add(self.day, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vvsizer = wx.BoxSizer(wx.VERTICAL)
		self.hourlabel = wx.StaticText(self, -1, mtexts.txts['Hour']+':')
		vvsizer.Add(self.hourlabel, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.hour = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 23), size=(50,-1))
		self.hour.SetHelpText(mtexts.txts['HelpHour'])
		self.hour.SetMaxLength(2)
		vvsizer.Add(self.hour, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vvsizer = wx.BoxSizer(wx.VERTICAL)
		self.minlabel = wx.StaticText(self, -1, mtexts.txts['Min']+':')
		vvsizer.Add(self.minlabel, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.minute = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(50,-1))
		self.minute.SetHelpText(mtexts.txts['HelpMin'])
		self.minute.SetMaxLength(2)
		vvsizer.Add(self.minute, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vvsizer = wx.BoxSizer(wx.VERTICAL)
		self.seclabel = wx.StaticText(self, -1, mtexts.txts['Sec']+':')
		vvsizer.Add(self.seclabel, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.sec = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(50,-1))
		self.sec.SetHelpText(mtexts.txts['HelpMin'])
		self.sec.SetMaxLength(2)
		vvsizer.Add(self.sec, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)
		vsizer.Add(fgsizer, 0, wx.ALIGN_LEFT|wx.ALL, 0)
		timesizer.Add(vsizer, 0, wx.ALIGN_LEFT|wx.ALL, 0)

		vvsubsizer = wx.BoxSizer(wx.VERTICAL)
		vvsubsizer.Add(timesizer, 0, wx.GROW|wx.ALIGN_LEFT|wx.RIGHT, 5)###

		#Place
		fgsizer = wx.FlexGridSizer(2, 4)
		vsizer = wx.BoxSizer(wx.VERTICAL)

		self.splace =wx.StaticBox(self, label='')
		placesizer = wx.StaticBoxSizer(self.splace, wx.VERTICAL)
		label = wx.StaticText(self, -1, mtexts.txts['Long']+':')
		fgsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5)

		vvsizer = wx.BoxSizer(wx.VERTICAL)
		label = wx.StaticText(self, -1, mtexts.txts['Deg']+':')
		vvsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		self.londeg = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 180), size=(40,-1))
		self.londeg.SetHelpText(mtexts.txts['HelpLonDeg'])
		self.londeg.SetMaxLength(3)
		vvsizer.Add(self.londeg, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vvsizer = wx.BoxSizer(wx.VERTICAL)
		label = wx.StaticText(self, -1, mtexts.txts['Min']+':')
		vvsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		self.lonmin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40, -1))
		self.lonmin.SetHelpText(mtexts.txts['HelpMin'])
		self.lonmin.SetMaxLength(2)
		vvsizer.Add(self.lonmin, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vvsizer = wx.BoxSizer(wx.VERTICAL)
		self.placerbE = wx.RadioButton(self, -1, mtexts.txts['E'], style=wx.RB_GROUP)
		vvsizer.Add(self.placerbE, 0, wx.ALIGN_LEFT|wx.TOP|wx.RIGHT|wx.LEFT, 2)
		self.placerbW = wx.RadioButton(self, -1, mtexts.txts['W'])
		vvsizer.Add(self.placerbW, 0, wx.ALIGN_LEFT|wx.TOP|wx.RIGHT|wx.LEFT, 2)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
#		fgsizer.AddGrowableCol(4, 0)

		label = wx.StaticText(self, -1, mtexts.txts['Lat']+':')
		fgsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT|wx.ALL, 5)
		vvsizer = wx.BoxSizer(wx.VERTICAL)
		label = wx.StaticText(self, -1, mtexts.txts['Deg']+':')
		vvsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		self.latdeg = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 90), size=(40,-1))
		self.latdeg.SetHelpText(mtexts.txts['HelpLatDeg'])
		self.latdeg.SetMaxLength(2)
		vvsizer.Add(self.latdeg, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vvsizer = wx.BoxSizer(wx.VERTICAL)
		label = wx.StaticText(self, -1, mtexts.txts['Min']+':')
		vvsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		self.latmin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40, -1))
		self.latmin.SetHelpText(mtexts.txts['HelpMin'])
		self.latmin.SetMaxLength(2)
		vvsizer.Add(self.latmin, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vvsizer = wx.BoxSizer(wx.VERTICAL)
		self.placerbN = wx.RadioButton(self, -1, mtexts.txts['N'], style=wx.RB_GROUP)
		vvsizer.Add(self.placerbN, 0, wx.ALIGN_LEFT|wx.TOP|wx.RIGHT|wx.LEFT, 2)
		self.placerbS = wx.RadioButton(self, -1, mtexts.txts['S'])
		vvsizer.Add(self.placerbS, 0, wx.ALIGN_LEFT|wx.TOP|wx.RIGHT|wx.LEFT, 2)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vsizer.Add(fgsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		ID_PlaceButton = wx.NewId()
		placebtn = wx.Button(self, ID_PlaceButton, mtexts.txts['Place']+':', size=(100, -1))
		vsizer.Add(placebtn, 0, wx.ALIGN_LEFT|wx.TOP|wx.LEFT|wx.RIGHT, 5)
		self.birthplace = wx.TextCtrl(self, -1, '', size=(170,-1))
		self.birthplace.SetHelpText(mtexts.txts['HelpPlace'])
		self.birthplace.SetMaxLength(20)
		vsizer.Add(self.birthplace, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		placesizer.Add(vsizer, 0, wx.ALIGN_LEFT|wx.ALL, 0)

		vvsubsizer.Add(placesizer, 0, wx.ALIGN_LEFT|wx.RIGHT, 5)
		mhsizer.Add(vvsubsizer, 0, wx.ALIGN_LEFT|wx.ALL, 0)

		#Zone
		self.szone =wx.StaticBox(self, label='')
		zonesizer = wx.StaticBoxSizer(self.szone, wx.VERTICAL)
		self.calcb = wx.ComboBox(self, -1, mtexts.calList[0], size=(100, -1), choices=mtexts.calList, style=wx.CB_DROPDOWN|wx.CB_READONLY)
		zonesizer.Add(self.calcb, 0, wx.GROW|wx.ALIGN_LEFT|wx.ALL, 5)
		self.zonecb = wx.ComboBox(self, -1, mtexts.zoneList[0], size=(100, -1), choices=mtexts.zoneList, style=wx.CB_DROPDOWN|wx.CB_READONLY)
		zonesizer.Add(self.zonecb, 0, wx.GROW|wx.ALIGN_LEFT|wx.ALL, 5)
#		self.zonecb.SetHelpText(mtexts.txts['zone-time')
		hhsizer = wx.BoxSizer(wx.HORIZONTAL)
		self.gmtlabel = wx.StaticText(self, -1, mtexts.txts['GMT'])
		hhsizer.Add(self.gmtlabel, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5)
		self.pluscb = wx.ComboBox(self, -1, TimeSpaceDlg.PLUSCHOICES[0], size=(50, -1), choices=TimeSpaceDlg.PLUSCHOICES, style=wx.CB_DROPDOWN|wx.CB_READONLY)
		hhsizer.Add(self.pluscb, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		zonesizer.Add(hhsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)
		fgsizer = wx.FlexGridSizer(1, 2)
		vvsizer = wx.BoxSizer(wx.VERTICAL)
		self.zhourlabel = wx.StaticText(self, -1, mtexts.txts['Hour']+':')
		vvsizer.Add(self.zhourlabel, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		self.zhour = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 12), size=(50,-1))
		self.zhour.SetHelpText(mtexts.txts['HelpZoneHour'])
		self.zhour.SetMaxLength(2)
		vvsizer.Add(self.zhour, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)
		vvsizer = wx.BoxSizer(wx.VERTICAL)
		self.zminutelabel = wx.StaticText(self, -1, mtexts.txts['Min']+':')
		vvsizer.Add(self.zminutelabel, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		self.zminute = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(50,-1))
		self.zminute.SetHelpText(mtexts.txts['HelpMin'])
		self.zminute.SetMaxLength(2)
		vvsizer.Add(self.zminute, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 5)
		fgsizer.Add(vvsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)
		zonesizer.Add(fgsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)
		self.daylightckb = wx.CheckBox(self, -1, mtexts.txts['Daylight'])
		zonesizer.Add(self.daylightckb, 0, wx.ALIGN_LEFT|wx.ALL, 5)
		self.daylightckb.SetHelpText(mtexts.txts['HelpDaylight'])

		mhsizer.Add(zonesizer, 0, wx.GROW|wx.ALIGN_LEFT|wx.ALL, 0)
		mvsizer.Add(mhsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		btnsizer = wx.StdDialogButtonSizer()

		if wx.Platform != '__WXMSW__':
			btn = wx.ContextHelpButton(self)
			btnsizer.AddButton(btn)
        
		btnOk = wx.Button(self, wx.ID_OK, mtexts.txts['Ok'])
		btnsizer.AddButton(btnOk)
		btnOk.SetHelpText(mtexts.txts['HelpOk'])
		btnOk.SetDefault()

		btn = wx.Button(self, wx.ID_CANCEL, mtexts.txts['Cancel'])
		btnsizer.AddButton(btn)
		btn.SetHelpText(mtexts.txts['HelpCancel'])

		btnsizer.Realize()

		mvsizer.Add(btnsizer, 0, wx.GROW|wx.ALL, 10)
		self.SetSizer(mvsizer)
		mvsizer.Fit(self)

		self.Bind(wx.EVT_BUTTON, self.onOK, id=wx.ID_OK)
		self.Bind(wx.EVT_BUTTON, self.onPlaceButton, id=ID_PlaceButton)
		self.Bind(wx.EVT_COMBOBOX, self.onZone, id=self.zonecb.GetId())

		btnOk.SetFocus()
Beispiel #3
0
	def __init__(self, parent, time):
		super(TransitMonthDlg, self).__init__()
        # Instead of calling wx.Dialog.__init__ we precreate the dialog
        # so we can set an extra style that must be set before
        # creation, and then we create the GUI object using the Create
        # method.

		#pre = wx.Dialog()
		#pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
		#pre.Create(parent, -1, mtexts.txts['Transit'].capitalize(), pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE)

		wx.Dialog.__init__(self)
		self.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
		self.Create(parent, -1, mtexts.txts['Transit'].capitalize(), pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE)

        # This next step is the most important, it turns this Python
        # object into the real wrapper of the dialog (instead of pre)
        # as far as the wxPython extension is concerned.
		#self.PostCreate(pre)

		#main vertical sizer
		mvsizer = wx.BoxSizer(wx.VERTICAL)

		#Time
		rnge = 3000
		checker = rangechecker.RangeChecker()
		if checker.isExtended():
			rnge = 5000
		self.stime =wx.StaticBox(self, label='')
		timesizer = wx.StaticBoxSizer(self.stime, wx.VERTICAL)
		vsizer = wx.BoxSizer(wx.VERTICAL)
		fgsizer = wx.FlexGridSizer(1, gap=wx.Size(0,0))
		label = wx.StaticText(self, -1, mtexts.txts['Year']+':')
		vsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.year = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, rnge), size=(50,-1))
		vsizer.Add(self.year, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)
		if checker.isExtended():
			self.year.SetHelpText(mtexts.txts['HelpYear'])
		else:
			self.year.SetHelpText(mtexts.txts['HelpYear2'])
		self.year.SetMaxLength(4)
		vsizer = wx.BoxSizer(wx.VERTICAL)
		label = wx.StaticText(self, -1, mtexts.txts['Month']+':')
		vsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.month = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(1, 12), size=(50,-1))
		vsizer.Add(self.month, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)
		self.month.SetHelpText(mtexts.txts['HelpMonth'])
		self.month.SetMaxLength(2)

		timesizer.Add(fgsizer, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5)

		mvsizer.Add(timesizer, 0, wx.GROW|wx.ALIGN_LEFT|wx.LEFT|wx.RIGHT, 5)

		#Initialize
		self.year.SetValue(str(time.year))
		self.month.SetValue(str(time.month))

		btnsizer = wx.StdDialogButtonSizer()

		if wx.Platform != '__WXMSW__':
			btn = wx.ContextHelpButton(self)
			btnsizer.AddButton(btn)

		btnOk = wx.Button(self, wx.ID_OK, mtexts.txts['Ok'])
		btnsizer.AddButton(btnOk)
		btnOk.SetHelpText(mtexts.txts['HelpOk'])
		btnOk.SetDefault()

		btn = wx.Button(self, wx.ID_CANCEL, mtexts.txts['Cancel'])
		btnsizer.AddButton(btn)
		btn.SetHelpText(mtexts.txts['HelpCancel'])

		btnsizer.Realize()

		mvsizer.Add(btnsizer, 0, wx.GROW|wx.ALL, 10)
		self.SetSizer(mvsizer)
		mvsizer.Fit(self)

		btnOk.SetFocus()

		self.Bind(wx.EVT_BUTTON, self.onOK, id=wx.ID_OK)
Beispiel #4
0
    def __init__(self, parent):
        super(GraphEphemDlg, self).__init__()
        # Instead of calling wx.Dialog.__init__ we precreate the dialog
        # so we can set an extra style that must be set before
        # creation, and then we create the GUI object using the Create
        # method.
        #pre = wx.Dialog()
        #pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
        #pre.Create(parent, -1, mtexts.txts['Ephemeris'], pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE)

        wx.Dialog.__init__(self)
        self.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
        self.Create(parent,
                    -1,
                    mtexts.txts['Ephemeris'],
                    pos=wx.DefaultPosition,
                    size=wx.DefaultSize,
                    style=wx.DEFAULT_DIALOG_STYLE)

        # This next step is the most important, it turns this Python
        # object into the real wrapper of the dialog (instead of pre)
        # as far as the wxPython extension is concerned.
        #self.PostCreate(pre)

        #main vertical sizer
        mvsizer = wx.BoxSizer(wx.VERTICAL)
        #main horizontal sizer
        mhsizer = wx.BoxSizer(wx.HORIZONTAL)

        #Time
        rnge = 3000
        checker = rangechecker.RangeChecker()
        if checker.isExtended():
            rnge = 5000
        self.syear = wx.StaticBox(self, label=mtexts.txts['Year'])
        yearsizer = wx.StaticBoxSizer(self.syear, wx.VERTICAL)
        self.year = wx.TextCtrl(self,
                                -1,
                                '',
                                validator=intvalidator.IntValidator(0, rnge),
                                size=(50, -1))
        yearsizer.Add(self.year, 0, wx.GROW | wx.ALIGN_CENTER | wx.ALL, 5)
        if checker.isExtended():
            self.year.SetHelpText(mtexts.txts['HelpYear'])
        else:
            self.year.SetHelpText(mtexts.txts['HelpYear2'])
        self.year.SetMaxLength(4)

        mhsizer.Add(yearsizer, 1, wx.GROW | wx.ALIGN_CENTER | wx.ALL, 5)
        mvsizer.Add(mhsizer, 0, wx.GROW | wx.ALIGN_CENTER | wx.ALL, 5)

        btnsizer = wx.StdDialogButtonSizer()

        if wx.Platform != '__WXMSW__':
            btn = wx.ContextHelpButton(self)
            btnsizer.AddButton(btn)

        btnOk = wx.Button(self, wx.ID_OK, mtexts.txts['Ok'])
        btnsizer.AddButton(btnOk)
        btnOk.SetHelpText(mtexts.txts['HelpOk'])
        btnOk.SetDefault()

        btn = wx.Button(self, wx.ID_CANCEL, mtexts.txts['Cancel'])
        btnsizer.AddButton(btn)
        btn.SetHelpText(mtexts.txts['HelpCancel'])

        btnsizer.Realize()

        mvsizer.Add(btnsizer, 0, wx.GROW | wx.ALL, 10)
        self.SetSizer(mvsizer)
        mvsizer.Fit(self)

        btnOk.SetFocus()

        now = datetime.datetime.now()
        self.year.SetValue(str(now.year))
	def __init__(self, parent):
        # Instead of calling wx.Dialog.__init__ we precreate the dialog
        # so we can set an extra style that must be set before
        # creation, and then we create the GUI object using the Create
        # method.
		pre = wx.PreDialog()
		pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
		pre.Create(parent, -1, mtexts.txts['SunTransits'], pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE)

        # This next step is the most important, it turns this Python
        # object into the real wrapper of the dialog (instead of pre)
        # as far as the wxPython extension is concerned.
		self.PostCreate(pre)

		#main vertical sizer
		mvsizer = wx.BoxSizer(wx.VERTICAL)
		#main horizontal sizer
		mhsizer = wx.BoxSizer(wx.HORIZONTAL)

		#Target
		self.starget =wx.StaticBox(self, label='')
		targetsizer = wx.StaticBoxSizer(self.starget, wx.VERTICAL)
		self.ascrb = wx.RadioButton(self, -1, mtexts.txts['Ascendant'], style=wx.RB_GROUP)
		targetsizer.Add(self.ascrb, 0, wx.ALIGN_LEFT|wx.ALL, 2)
		self.mcrb = wx.RadioButton(self, -1, mtexts.txts['MediumCoeli'])
		targetsizer.Add(self.mcrb, 0, wx.ALIGN_LEFT|wx.ALL, 2)
		self.sunrb = wx.RadioButton(self, -1, mtexts.txts['Sun'])
		targetsizer.Add(self.sunrb, 0, wx.ALIGN_LEFT|wx.ALL, 2)
		self.moonrb = wx.RadioButton(self, -1, mtexts.txts['Moon'])
		targetsizer.Add(self.moonrb, 0, wx.ALIGN_LEFT|wx.ALL, 2)
		self.mercuryrb = wx.RadioButton(self, -1, mtexts.txts['Mercury'])
		targetsizer.Add(self.mercuryrb, 0, wx.ALIGN_LEFT|wx.ALL, 2)
		self.venusrb = wx.RadioButton(self, -1, mtexts.txts['Venus'])
		targetsizer.Add(self.venusrb, 0, wx.ALIGN_LEFT|wx.ALL, 2)
		self.marsrb = wx.RadioButton(self, -1, mtexts.txts['Mars'])
		targetsizer.Add(self.marsrb, 0, wx.ALIGN_LEFT|wx.ALL, 2)
		self.jupiterrb = wx.RadioButton(self, -1, mtexts.txts['Jupiter'])
		targetsizer.Add(self.jupiterrb, 0, wx.ALIGN_LEFT|wx.ALL, 2)
		self.saturnrb = wx.RadioButton(self, -1, mtexts.txts['Saturn'])
		targetsizer.Add(self.saturnrb, 0, wx.ALIGN_LEFT|wx.ALL, 2)
		self.uranusrb = wx.RadioButton(self, -1, mtexts.txts['Uranus'])
		targetsizer.Add(self.uranusrb, 0, wx.ALIGN_LEFT|wx.ALL, 2)
		self.neptunerb = wx.RadioButton(self, -1, mtexts.txts['Neptune'])
		targetsizer.Add(self.neptunerb, 0, wx.ALIGN_LEFT|wx.ALL, 2)
		self.plutorb = wx.RadioButton(self, -1, mtexts.txts['Pluto'])
		targetsizer.Add(self.plutorb, 0, wx.ALIGN_LEFT|wx.ALL, 2)

		mhsizer.Add(targetsizer, 0, wx.ALIGN_LEFT|wx.LEFT, 0)

		#Time
		rnge = 3000
		checker = rangechecker.RangeChecker()
		if checker.isExtended():
			rnge = 5000
		self.stime =wx.StaticBox(self, label='')
		timesizer = wx.StaticBoxSizer(self.stime, wx.VERTICAL)
		label = wx.StaticText(self, -1, mtexts.txts['StartingDate'])
		vsubsizer = wx.BoxSizer(wx.VERTICAL)
		vsubsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer = wx.FlexGridSizer(2, 3)
		label = wx.StaticText(self, -1, mtexts.txts['Year']+':')
		vsizer = wx.BoxSizer(wx.VERTICAL)
		vsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.year = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, rnge), size=(50,-1))
		vsizer.Add(self.year, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		if checker.isExtended():
			self.year.SetHelpText(mtexts.txts['HelpYear'])
		else:
			self.year.SetHelpText(mtexts.txts['HelpYear2'])
		self.year.SetMaxLength(4)
		fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vsizer = wx.BoxSizer(wx.VERTICAL)
		label = wx.StaticText(self, -1, mtexts.txts['Month']+':')
		vsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.month = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(1, 12), size=(50,-1))
		self.month.SetHelpText(mtexts.txts['HelpMonth'])
		self.month.SetMaxLength(2)
		vsizer.Add(self.month, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vsizer = wx.BoxSizer(wx.VERTICAL)
		label = wx.StaticText(self, -1, mtexts.txts['Day']+':')
		vsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.day = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(1, 31), size=(50,-1))
		self.day.SetHelpText(mtexts.txts['HelpDay'])
		self.day.SetMaxLength(2)
		vsizer.Add(self.day, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vsubsizer.Add(fgsizer, 0, wx.ALIGN_CENTER_HORIZONTAL)
		timesizer.Add(vsubsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)

		mhsizer.Add(timesizer, 0, wx.GROW|wx.ALIGN_LEFT|wx.LEFT, 5)
		mvsizer.Add(mhsizer, 0, wx.ALIGN_LEFT|wx.LEFT|wx.RIGHT, 5)

		btnsizer = wx.StdDialogButtonSizer()

		if wx.Platform != '__WXMSW__':
			btn = wx.ContextHelpButton(self)
			btnsizer.AddButton(btn)
        
		btnOk = wx.Button(self, wx.ID_OK, mtexts.txts['Ok'])
		btnsizer.AddButton(btnOk)
		btnOk.SetHelpText(mtexts.txts['HelpOk'])
		btnOk.SetDefault()

		btn = wx.Button(self, wx.ID_CANCEL, mtexts.txts['Cancel'])
		btnsizer.AddButton(btn)
		btn.SetHelpText(mtexts.txts['HelpCancel'])

		btnsizer.Realize()

		mvsizer.Add(btnsizer, 0, wx.GROW|wx.ALL, 10)
		self.SetSizer(mvsizer)
		mvsizer.Fit(self)

		btnOk.SetFocus()
Beispiel #6
0
    def find(self):
        rnge = 3000
        checker = rangechecker.RangeChecker()
        if checker.isExtended():
            rnge = 5000

        y = 1973  #year doesn't matter
        m = 3
        d = 21
        for i in range(
                int(self.ftdata[astrology.SE_SUN][
                    findtimedlg.FindTimeDlg.LON])):
            y, m, d = util.incrDay(y, m, d)

        #Because the Sun's velocity is not exactly one degree per day. It is variable. The targetdate (from Sun's long) won't exactly be in the middle of the range
        tim = chart.event.DateTime(y, m, d, 0, 0, 0, self.bc,
                                   chart.event.DateTime.GREGORIAN,
                                   chart.event.DateTime.GREENWICH, True, 0, 0,
                                   False, None, False)
        tmpSun = planets.Planet(tim.jd, astrology.SE_SUN, self.flags)
        lonSun = tmpSun.data[planets.Planet.LONG]
        lontofind = self.ftdata[astrology.SE_SUN][findtimedlg.FindTimeDlg.LON]

        if lonSun > FindTime.CIRCLE - FindTime.OFFSET and lontofind < FindTime.OFFSET:
            lontofind += FindTime.CIRCLE
        if lontofind > FindTime.CIRCLE - FindTime.OFFSET and lonSun < FindTime.OFFSET:
            lonSun += FindTime.CIRCLE

        diff = int(math.fabs(int(lonSun) - int(lontofind)))
        if int(self.ftdata[astrology.SE_SUN][
                findtimedlg.FindTimeDlg.LON]) < int(lonSun):
            for i in range(diff):
                y, m, d = util.decrDay(y, m, d)
        else:
            for i in range(diff):
                y, m, d = util.incrDay(y, m, d)

        ybeg, mbeg, dbeg = y, m, d
        yend, mend, dend = y, m, d
        DATEOFFS = 7
        #adjust range
        for i in range(DATEOFFS):
            ybeg, mbeg, dbeg = util.decrDay(ybeg, mbeg, dbeg)
            yend, mend, dend = util.incrDay(yend, mend, dend)

        tfnd = (1, 1, 1, 1.0, 1.0)
        y = 1
        m = mbeg
        d = dbeg
        while (y < rnge):
            if self.abort.abort:
                return

            fnd = self.day(
                y, m, d, astrology.SE_SUN,
                self.ftdata[astrology.SE_SUN][findtimedlg.FindTimeDlg.LON])
            if fnd != None:
                found = True
                #The order of the search is chaldean (i.e. acc. to speed)
                for i in range(FindTime.TRADPL_NUM):
                    j = self.mapChaldeanToModern(i)
                    if j != 3:  #SUN
                        tfnd = self.day(
                            y, m, d, j,
                            self.ftdata[j][findtimedlg.FindTimeDlg.LON])
                        if tfnd == None:
                            found = False
                            break

                if found:
                    #update wnd
                    evt = findtimedlg.FTDataReadyEvent(attr1=tfnd)
                    wx.PostEvent(self.win, evt)

            yt = y
            if m == mend and d == dend:
                y += 1
                m = mbeg
                d = dbeg
            else:
                y, m, d = util.incrDay(y, m, d)

            if yt != y and yt % 50 == 0:
                evt = findtimedlg.FTYearEvent(attr1=yt)
                wx.PostEvent(self.win, evt)
    def __init__(self, parent, chrt, y, m, d, t, direct, arc, opts,
                 terrestrial):

        self.parent = parent
        self.chart = chrt
        self.y = y
        self.m = m
        self.d = d
        self.t = t
        self.direct = direct
        self.arc = arc
        self.options = opts
        self.terrestrial = terrestrial

        # Instead of calling wx.Dialog.__init__ we precreate the dialog
        # so we can set an extra style that must be set before
        # creation, and then we create the GUI object using the Create
        # method.
        pre = wx.Dialog()
        pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
        pre.Create(parent,
                   -1,
                   mtexts.txts['PDsInChart'],
                   pos=wx.DefaultPosition,
                   size=wx.DefaultSize,
                   style=wx.DEFAULT_DIALOG_STYLE)

        # This next step is the most important, it turns this Python
        # object into the real wrapper of the dialog (instead of pre)
        # as far as the wxPython extension is concerned.
        self.PostCreate(pre)

        #main vertical sizer
        mvsizer = wx.BoxSizer(wx.VERTICAL)
        #main horizontal sizer
        mhsizer = wx.BoxSizer(wx.HORIZONTAL)

        #Date
        rnge = 3000
        checker = rangechecker.RangeChecker()
        if checker.isExtended():
            rnge = 5000
        self.sdate = wx.StaticBox(self, label='')
        datesizer = wx.StaticBoxSizer(self.sdate, wx.VERTICAL)
        self.daterb = wx.RadioButton(self, -1, '', style=wx.RB_GROUP)
        datesizer.Add(self.daterb, 0, wx.GROW | wx.ALIGN_LEFT | wx.ALL, 5)  ###
        vsizer = wx.BoxSizer(wx.VERTICAL)
        #		self.dateckb = wx.CheckBox(self, -1, mtexts.txts['BC'])
        #		vsizer.Add(self.dateckb, 0, wx.ALIGN_LEFT|wx.LEFT|wx.RIGHT|wx.TOP, 5)

        fgsizer = wx.FlexGridSizer(2, gap=wx.Size(0, 0))
        self.yeartxt = wx.StaticText(self, -1, mtexts.txts['Year'] + ':')
        vsizer.Add(self.yeartxt, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.year = wx.TextCtrl(self,
                                -1,
                                '',
                                validator=intvalidator.IntValidator(0, rnge),
                                size=(50, -1))
        vsizer.Add(self.year, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        if checker.isExtended():
            self.year.SetHelpText(mtexts.txts['HelpYear'])
        else:
            self.year.SetHelpText(mtexts.txts['HelpYear2'])
        self.year.SetMaxLength(4)
        self.year.SetValue(str(self.y))
        fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT | wx.ALL, 5)

        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.monthtxt = wx.StaticText(self, -1, mtexts.txts['Month'] + ':')
        vsizer.Add(self.monthtxt, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.month = wx.TextCtrl(self,
                                 -1,
                                 '',
                                 validator=intvalidator.IntValidator(1, 12),
                                 size=(50, -1))
        self.month.SetHelpText(mtexts.txts['HelpMonth'])
        self.month.SetMaxLength(2)
        self.month.SetValue(str(self.m))
        vsizer.Add(self.month, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT | wx.ALL, 5)

        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.daytxt = wx.StaticText(self, -1, mtexts.txts['Day'] + ':')
        vsizer.Add(self.daytxt, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.day = wx.TextCtrl(self,
                               -1,
                               '',
                               validator=intvalidator.IntValidator(1, 31),
                               size=(50, -1))
        self.day.SetHelpText(mtexts.txts['HelpDay'])
        self.day.SetMaxLength(2)
        self.day.SetValue(str(self.d))
        vsizer.Add(self.day, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT | wx.ALL, 5)

        #time
        ho, mi, se = util.decToDeg(self.t)

        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.hourtxt = wx.StaticText(self, -1, mtexts.txts['Hour'] + ':')
        vsizer.Add(self.hourtxt, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.hour = wx.TextCtrl(self,
                                -1,
                                '',
                                validator=intvalidator.IntValidator(0, 23),
                                size=(50, -1))
        self.hour.SetHelpText(mtexts.txts['HelpHour'])
        vsizer.Add(self.hour, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.hour.SetMaxLength(2)
        self.hour.SetValue(str(ho))
        fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT | wx.ALL, 5)

        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.minutetxt = wx.StaticText(self, -1, mtexts.txts['Min'] + ':')
        vsizer.Add(self.minutetxt, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.minute = wx.TextCtrl(self,
                                  -1,
                                  '',
                                  validator=intvalidator.IntValidator(0, 59),
                                  size=(50, -1))
        self.minute.SetHelpText(mtexts.txts['HelpMin'])
        self.minute.SetMaxLength(2)
        self.minute.SetValue(str(mi))
        vsizer.Add(self.minute, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT | wx.ALL, 5)

        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.secondtxt = wx.StaticText(self, -1, mtexts.txts['Sec'] + ':')
        vsizer.Add(self.secondtxt, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.second = wx.TextCtrl(self,
                                  -1,
                                  '',
                                  validator=intvalidator.IntValidator(0, 59),
                                  size=(50, -1))
        self.second.SetHelpText(mtexts.txts['HelpMin'])
        self.second.SetMaxLength(2)
        self.second.SetValue(str(se))
        vsizer.Add(self.second, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT | wx.ALL, 5)

        datesizer.Add(fgsizer, 0, wx.GROW | wx.ALIGN_CENTER | wx.ALL, 5)  ###

        #DA
        self.sda = wx.StaticBox(self, label='')
        dasizer = wx.StaticBoxSizer(self.sda, wx.VERTICAL)

        self.arcrb = wx.RadioButton(self, -1, '')
        dasizer.Add(self.arcrb, 0, wx.ALIGN_LEFT | wx.ALL, 5)
        vsizer = wx.BoxSizer(wx.VERTICAL)
        hsizer = wx.BoxSizer(wx.HORIZONTAL)
        self.datxt = wx.StaticText(self, -1, mtexts.txts['Arc'] + ':')
        hsizer.Add(self.datxt, 0, wx.ALIGN_CENTER | wx.LEFT, 0)
        self.da = wx.TextCtrl(self,
                              -1,
                              '',
                              validator=floatvalidator.FloatValidator(
                                  0.0, 100.0),
                              size=(100, -1))
        self.da.SetMaxLength(10)
        hsizer.Add(self.da, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        vsizer.Add(hsizer, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)

        dasizer.Add(vsizer, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALL, 5)
        self.da.SetValue(str(self.arc))

        #Direction
        self.sdir = wx.StaticBox(self, label='')
        dirsizer = wx.StaticBoxSizer(self.sdir, wx.VERTICAL)

        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.positiverb = wx.RadioButton(self,
                                         -1,
                                         mtexts.txts['Direct'],
                                         style=wx.RB_GROUP)
        self.negativerb = wx.RadioButton(self, -1, mtexts.txts['Converse'])
        vsizer.Add(self.positiverb, 0, wx.LEFT, 0)
        vsizer.Add(self.negativerb, 0, wx.LEFT, 0)

        if self.direct:
            self.positiverb.SetValue(True)
        else:
            self.negativerb.SetValue(True)

        dirsizer.Add(vsizer, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)

        #ShowBtn
        self.sshow = wx.StaticBox(self, label='')
        showsizer = wx.StaticBoxSizer(self.sshow, wx.VERTICAL)
        ID_SHOWBTN = wx.NewId()
        self.btnShow = wx.Button(self, ID_SHOWBTN, mtexts.txts['Show'])
        showsizer.Add(self.btnShow, 0, wx.ALIGN_CENTER | wx.ALL, 10)

        mvsizer.Add(datesizer, 0, wx.GROW | wx.ALIGN_LEFT | wx.LEFT | wx.RIGHT,
                    5)
        mvsizer.Add(dasizer, 0, wx.GROW | wx.ALIGN_LEFT | wx.LEFT | wx.RIGHT,
                    5)
        mvsizer.Add(dirsizer, 0, wx.GROW | wx.ALIGN_LEFT | wx.LEFT | wx.RIGHT,
                    5)
        mvsizer.Add(showsizer, 0, wx.GROW | wx.ALIGN_LEFT | wx.LEFT | wx.RIGHT,
                    5)

        btnsizer = wx.StdDialogButtonSizer()

        if wx.Platform != '__WXMSW__':
            btn = wx.ContextHelpButton(self)
            btnsizer.AddButton(btn)

        btnOk = wx.Button(self, wx.ID_OK, mtexts.txts['Ok'])
        btnOk.SetHelpText(mtexts.txts['HelpOk'])
        btnOk.SetDefault()
        btnsizer.AddButton(btnOk)
        btnsizer.Realize()

        mvsizer.Add(btnsizer, 0, wx.GROW | wx.ALL, 10)
        self.SetSizer(mvsizer)
        mvsizer.Fit(self)

        self.Bind(wx.EVT_RADIOBUTTON, self.onDate, id=self.daterb.GetId())
        self.Bind(wx.EVT_RADIOBUTTON, self.onArc, id=self.arcrb.GetId())
        self.Bind(wx.EVT_BUTTON, self.onShowBtn, id=ID_SHOWBTN)

        self.enableDate(True)
        self.enableArc(False)
        #		self.enablePosNeg(False)

        self.da.SetFocus()
Beispiel #8
0
    def __init__(self, parent, radixjd, radixplace):

        self.radixjd = radixjd
        self.radixplace = radixplace

        # Instead of calling wx.Dialog.__init__ we precreate the dialog
        # so we can set an extra style that must be set before
        # creation, and then we create the GUI object using the Create
        # method.
        pre = wx.PreDialog()
        pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
        pre.Create(parent,
                   -1,
                   mtexts.txts['Profections'],
                   pos=wx.DefaultPosition,
                   size=wx.DefaultSize,
                   style=wx.DEFAULT_DIALOG_STYLE)

        # This next step is the most important, it turns this Python
        # object into the real wrapper of the dialog (instead of pre)
        # as far as the wxPython extension is concerned.
        self.PostCreate(pre)

        #main vertical sizer
        mvsizer = wx.BoxSizer(wx.VERTICAL)
        #main horizontal sizer
        mhsizer = wx.BoxSizer(wx.HORIZONTAL)

        #Date
        rnge = 3000
        checker = rangechecker.RangeChecker()
        if checker.isExtended():
            rnge = 5000
        self.sdate = wx.StaticBox(self, label='')
        datesizer = wx.StaticBoxSizer(self.sdate, wx.VERTICAL)
        vsizer = wx.BoxSizer(wx.VERTICAL)
        #		self.dateckb = wx.CheckBox(self, -1, mtexts.txts['BC'])
        #		vsizer.Add(self.dateckb, 0, wx.ALIGN_LEFT|wx.LEFT|wx.RIGHT|wx.TOP, 5)

        fgsizer = wx.FlexGridSizer(1, 3)
        self.yeartxt = wx.StaticText(self, -1, mtexts.txts['Year'] + ':')
        vsizer.Add(self.yeartxt, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.year = wx.TextCtrl(self,
                                -1,
                                '',
                                validator=intvalidator.IntValidator(0, rnge),
                                size=(50, -1))
        vsizer.Add(self.year, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        if checker.isExtended():
            self.year.SetHelpText(mtexts.txts['HelpYear'])
        else:
            self.year.SetHelpText(mtexts.txts['HelpYear2'])
        self.year.SetMaxLength(4)
        fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT | wx.ALL, 5)

        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.monthtxt = wx.StaticText(self, -1, mtexts.txts['Month'] + ':')
        vsizer.Add(self.monthtxt, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.month = wx.TextCtrl(self,
                                 -1,
                                 '',
                                 validator=intvalidator.IntValidator(1, 12),
                                 size=(50, -1))
        self.month.SetHelpText(mtexts.txts['HelpMonth'])
        self.month.SetMaxLength(2)
        vsizer.Add(self.month, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT | wx.ALL, 5)

        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.daytxt = wx.StaticText(self, -1, mtexts.txts['Day'] + ':')
        vsizer.Add(self.daytxt, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.day = wx.TextCtrl(self,
                               -1,
                               '',
                               validator=intvalidator.IntValidator(1, 31),
                               size=(50, -1))
        self.day.SetHelpText(mtexts.txts['HelpDay'])
        self.day.SetMaxLength(2)
        vsizer.Add(self.day, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT | wx.ALL, 5)

        datesizer.Add(fgsizer, 0, wx.GROW | wx.ALIGN_CENTER | wx.ALL, 5)  ###

        #time
        self.stime = wx.StaticBox(self, label='')
        timesizer = wx.StaticBoxSizer(self.stime, wx.VERTICAL)
        fgsizer = wx.FlexGridSizer(1, 3)

        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.hourtxt = wx.StaticText(self, -1, mtexts.txts['Hour'] + ':')
        vsizer.Add(self.hourtxt, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.hour = wx.TextCtrl(self,
                                -1,
                                '',
                                validator=intvalidator.IntValidator(0, 23),
                                size=(50, -1))
        self.hour.SetHelpText(mtexts.txts['HelpHour'])
        vsizer.Add(self.hour, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.hour.SetMaxLength(2)
        fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT | wx.ALL, 5)

        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.minutetxt = wx.StaticText(self, -1, mtexts.txts['Min'] + ':')
        vsizer.Add(self.minutetxt, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.minute = wx.TextCtrl(self,
                                  -1,
                                  '',
                                  validator=intvalidator.IntValidator(0, 59),
                                  size=(50, -1))
        self.minute.SetHelpText(mtexts.txts['HelpMin'])
        self.minute.SetMaxLength(2)
        vsizer.Add(self.minute, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT | wx.ALL, 5)

        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.secondtxt = wx.StaticText(self, -1, mtexts.txts['Sec'] + ':')
        vsizer.Add(self.secondtxt, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        self.second = wx.TextCtrl(self,
                                  -1,
                                  '',
                                  validator=intvalidator.IntValidator(0, 59),
                                  size=(50, -1))
        self.second.SetHelpText(mtexts.txts['HelpMin'])
        self.second.SetMaxLength(2)
        vsizer.Add(self.second, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT, 0)
        fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT | wx.ALL, 5)

        timesizer.Add(fgsizer, 0, wx.GROW | wx.ALIGN_CENTER | wx.ALL, 5)  ###

        mvsizer.Add(datesizer, 0, wx.GROW | wx.ALIGN_LEFT | wx.LEFT | wx.RIGHT,
                    5)
        mvsizer.Add(timesizer, 0, wx.GROW | wx.ALIGN_LEFT | wx.LEFT | wx.RIGHT,
                    5)

        btnsizer = wx.StdDialogButtonSizer()

        if wx.Platform != '__WXMSW__':
            btn = wx.ContextHelpButton(self)
            btnsizer.AddButton(btn)

        btnOk = wx.Button(self, wx.ID_OK, mtexts.txts['Ok'])
        btnOk.SetHelpText(mtexts.txts['HelpOk'])
        btnOk.SetDefault()
        btnsizer.AddButton(btnOk)

        btn = wx.Button(self, wx.ID_CANCEL, mtexts.txts['Cancel'])
        btn.SetHelpText(mtexts.txts['HelpCancel'])
        btnsizer.AddButton(btn)

        btnsizer.Realize()

        mvsizer.Add(btnsizer, 0, wx.GROW | wx.ALL, 10)
        self.SetSizer(mvsizer)
        mvsizer.Fit(self)

        self.Bind(wx.EVT_BUTTON, self.onOK, id=wx.ID_OK)

        self.year.SetFocus()
	def __init__(self, parent):
        # Instead of calling wx.Dialog.__init__ we precreate the dialog
        # so we can set an extra style that must be set before
        # creation, and then we create the GUI object using the Create
        # method.
		pre = wx.PreDialog()
		pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
		pre.Create(parent, -1, mtexts.txts['Revolutions'], pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE)

        # This next step is the most important, it turns this Python
        # object into the real wrapper of the dialog (instead of pre)
        # as far as the wxPython extension is concerned.
		self.PostCreate(pre)

		#main vertical sizer
		mvsizer = wx.BoxSizer(wx.VERTICAL)
		#main horizontal sizer
		mhsizer = wx.BoxSizer(wx.HORIZONTAL)

		#Type
		stype =wx.StaticBox(self, label='')
		typesizer = wx.StaticBoxSizer(stype, wx.VERTICAL)
		self.typecb = wx.ComboBox(self, -1, mtexts.revtypeList[0], size=(100, -1), choices=mtexts.revtypeList, style=wx.CB_DROPDOWN|wx.CB_READONLY)
		typesizer.Add(self.typecb, 0, wx.ALIGN_CENTER|wx.TOP, 20)
		mhsizer.Add(typesizer, 0, wx.GROW|wx.ALIGN_CENTER)

		#Time
		rnge = 3000
		checker = rangechecker.RangeChecker()
		if checker.isExtended():
			rnge = 5000
		self.stime =wx.StaticBox(self, label='')
		timesizer = wx.StaticBoxSizer(self.stime, wx.VERTICAL)
		label = wx.StaticText(self, -1, mtexts.txts['StartingDate'])
		vsubsizer = wx.BoxSizer(wx.VERTICAL)
		vsubsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer = wx.FlexGridSizer(2, 3)
		label = wx.StaticText(self, -1, mtexts.txts['Year']+':')
		vsizer = wx.BoxSizer(wx.VERTICAL)
		vsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.year = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, rnge), size=(50,-1))
		vsizer.Add(self.year, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		if checker.isExtended():
			self.year.SetHelpText(mtexts.txts['HelpYear'])
		else:
			self.year.SetHelpText(mtexts.txts['HelpYear2'])
		self.year.SetMaxLength(4)
		fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vsizer = wx.BoxSizer(wx.VERTICAL)
		label = wx.StaticText(self, -1, mtexts.txts['Month']+':')
		vsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.month = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(1, 12), size=(50,-1))
		self.month.SetHelpText(mtexts.txts['HelpMonth'])
		self.month.SetMaxLength(2)
		vsizer.Add(self.month, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vsizer = wx.BoxSizer(wx.VERTICAL)
		label = wx.StaticText(self, -1, mtexts.txts['Day']+':')
		vsizer.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		self.day = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(1, 31), size=(50,-1))
		self.day.SetHelpText(mtexts.txts['HelpDay'])
		self.day.SetMaxLength(2)
		vsizer.Add(self.day, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.LEFT, 0)
		fgsizer.Add(vsizer, 0, wx.ALIGN_LEFT|wx.ALL, 5)

		vsubsizer.Add(fgsizer, 0, wx.ALIGN_CENTER_HORIZONTAL)
		timesizer.Add(vsubsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)

		mhsizer.Add(timesizer, 0, wx.ALIGN_LEFT|wx.LEFT, 5)
		mvsizer.Add(mhsizer, 0, wx.ALIGN_LEFT|wx.LEFT|wx.RIGHT, 5)

		btnsizer = wx.StdDialogButtonSizer()

		if wx.Platform != '__WXMSW__':
			btn = wx.ContextHelpButton(self)
			btnsizer.AddButton(btn)
        
		btnOk = wx.Button(self, wx.ID_OK, mtexts.txts['Ok'])
		btnsizer.AddButton(btnOk)
		btnOk.SetHelpText(mtexts.txts['HelpOk'])
		btnOk.SetDefault()

		btn = wx.Button(self, wx.ID_CANCEL, mtexts.txts['Cancel'])
		btnsizer.AddButton(btn)
		btn.SetHelpText(mtexts.txts['HelpCancel'])

		btnsizer.Realize()

		mvsizer.Add(btnsizer, 0, wx.GROW|wx.ALL, 10)
		self.SetSizer(mvsizer)
		mvsizer.Fit(self)

		btnOk.SetFocus()

		self.Bind(wx.EVT_BUTTON, self.onOK, id=wx.ID_OK)
Beispiel #10
0
	def __init__(self, parent):
		wx.Dialog.__init__(self, parent, -1, mtexts.txts['FindTime'], pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE)

		self.parent = parent

		#main vertical sizer
		mvsizer = wx.BoxSizer(wx.VERTICAL)
		#main horizontal sizer
		mhsizer = wx.BoxSizer(wx.HORIZONTAL)

		vsizer = wx.BoxSizer(wx.VERTICAL)

		#BC
		sbc = wx.StaticBox(self, label='')
		sbcsizer = wx.StaticBoxSizer(sbc, wx.VERTICAL)
		self.bcckb = wx.CheckBox(self, -1, mtexts.txts['BC'])
		sbcsizer.Add(self.bcckb, 0, wx.ALIGN_LEFT|wx.LEFT|wx.TOP, 5)
#		self.bcckb.Enable(False)

		vsizer.Add(sbcsizer, 0, wx.GROW)

		#Planets
		splanets =wx.StaticBox(self, label='')
		splanetssizer = wx.StaticBoxSizer(splanets, wx.VERTICAL)
		gsizer = wx.GridSizer(7, 5)

		label = wx.StaticText(self, -1, mtexts.txts['Sun']+':')
		gsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.sundeg = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 359), size=(40,-1))
		self.sundeg.SetHelpText(mtexts.txts['HelpDeg'])
		self.sundeg.SetMaxLength(3)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.sundeg, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		label = wx.StaticText(self, -1, mtexts.txts['D2'])
		hsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.sunmin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.sunmin.SetHelpText(mtexts.txts['HelpMin'])
		self.sunmin.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.sunmin, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.sunmintxt = wx.StaticText(self, -1, mtexts.txts['M2'])
		hsizer.Add(self.sunmintxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.sunsec = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.sunsec.SetHelpText(mtexts.txts['HelpMin'])
		self.sunsec.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.sunsec, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.sunsectxt = wx.StaticText(self, -1, mtexts.txts['S2'])
		hsizer.Add(self.sunsectxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		self.sunretr = wx.CheckBox(self, -1, mtexts.txts['R'])
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.sunretr, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.sunretr.Enable(False)

		label = wx.StaticText(self, -1, mtexts.txts['Moon']+':')
		gsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.moondeg = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 359), size=(40,-1))
		self.moondeg.SetHelpText(mtexts.txts['HelpDeg'])
		self.moondeg.SetMaxLength(3)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.moondeg, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		label = wx.StaticText(self, -1, mtexts.txts['D2'])
		hsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.moonmin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.moonmin.SetHelpText(mtexts.txts['HelpMin'])
		self.moonmin.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.moonmin, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.moonmintxt = wx.StaticText(self, -1, mtexts.txts['M2'])
		hsizer.Add(self.moonmintxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.moonsec = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.moonsec.SetHelpText(mtexts.txts['HelpMin'])
		self.moonsec.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.moonsec, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.moonsectxt = wx.StaticText(self, -1, mtexts.txts['S2'])
		hsizer.Add(self.moonsectxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		self.moonretr = wx.CheckBox(self, -1, mtexts.txts['R'])
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.moonretr, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.moonretr.Enable(False)

		label = wx.StaticText(self, -1, mtexts.txts['Mercury']+':')
		gsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.mercurydeg = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 359), size=(40,-1))
		self.mercurydeg.SetHelpText(mtexts.txts['HelpDeg'])
		self.mercurydeg.SetMaxLength(3)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.mercurydeg, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		label = wx.StaticText(self, -1, mtexts.txts['D2'])
		hsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.mercurymin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.mercurymin.SetHelpText(mtexts.txts['HelpMin'])
		self.mercurymin.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.mercurymin, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.mercurymintxt = wx.StaticText(self, -1, mtexts.txts['M2'])
		hsizer.Add(self.mercurymintxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.mercurysec = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.mercurysec.SetHelpText(mtexts.txts['HelpMin'])
		self.mercurysec.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.mercurysec, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.mercurysectxt = wx.StaticText(self, -1, mtexts.txts['S2'])
		hsizer.Add(self.mercurysectxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		self.mercuryretr = wx.CheckBox(self, -1, mtexts.txts['R'])
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.mercuryretr, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		label = wx.StaticText(self, -1, mtexts.txts['Venus']+':')
		gsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.venusdeg = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 359), size=(40,-1))
		self.venusdeg.SetHelpText(mtexts.txts['HelpDeg'])
		self.venusdeg.SetMaxLength(3)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.venusdeg, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		label = wx.StaticText(self, -1, mtexts.txts['D2'])
		hsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.venusmin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.venusmin.SetHelpText(mtexts.txts['HelpMin'])
		self.venusmin.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.venusmin, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.venusmintxt = wx.StaticText(self, -1, mtexts.txts['M2'])
		hsizer.Add(self.venusmintxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.venussec = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.venussec.SetHelpText(mtexts.txts['HelpMin'])
		self.venussec.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.venussec, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.venussectxt = wx.StaticText(self, -1, mtexts.txts['S2'])
		hsizer.Add(self.venussectxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		self.venusretr = wx.CheckBox(self, -1, mtexts.txts['R'])
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.venusretr, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		label = wx.StaticText(self, -1, mtexts.txts['Mars']+':')
		gsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.marsdeg = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 359), size=(40,-1))
		self.marsdeg.SetHelpText(mtexts.txts['HelpDeg'])
		self.marsdeg.SetMaxLength(3)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.marsdeg, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		label = wx.StaticText(self, -1, mtexts.txts['D2'])
		hsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.marsmin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.marsmin.SetHelpText(mtexts.txts['HelpMin'])
		self.marsmin.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.marsmin, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.marsmintxt = wx.StaticText(self, -1, mtexts.txts['M2'])
		hsizer.Add(self.marsmintxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.marssec = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.marssec.SetHelpText(mtexts.txts['HelpMin'])
		self.marssec.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.marssec, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.marssectxt = wx.StaticText(self, -1, mtexts.txts['S2'])
		hsizer.Add(self.marssectxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		self.marsretr = wx.CheckBox(self, -1, mtexts.txts['R'])
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.marsretr, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		label = wx.StaticText(self, -1, mtexts.txts['Jupiter']+':')
		gsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.jupiterdeg = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 359), size=(40,-1))
		self.jupiterdeg.SetHelpText(mtexts.txts['HelpDeg'])
		self.jupiterdeg.SetMaxLength(3)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.jupiterdeg, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		label = wx.StaticText(self, -1, mtexts.txts['D2'])
		hsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.jupitermin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.jupitermin.SetHelpText(mtexts.txts['HelpMin'])
		self.jupitermin.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.jupitermin, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.jupitermintxt = wx.StaticText(self, -1, mtexts.txts['M2'])
		hsizer.Add(self.jupitermintxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.jupitersec = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.jupitersec.SetHelpText(mtexts.txts['HelpMin'])
		self.jupitersec.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.jupitersec, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.jupitersectxt = wx.StaticText(self, -1, mtexts.txts['S2'])
		hsizer.Add(self.jupitersectxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		self.jupiterretr = wx.CheckBox(self, -1, mtexts.txts['R'])
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.jupiterretr, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		label = wx.StaticText(self, -1, mtexts.txts['Saturn']+':')
		gsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.saturndeg = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 359), size=(40,-1))
		self.saturndeg.SetHelpText(mtexts.txts['HelpDeg'])
		self.saturndeg.SetMaxLength(3)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.saturndeg, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		label = wx.StaticText(self, -1, mtexts.txts['D2'])
		hsizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.saturnmin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.saturnmin.SetHelpText(mtexts.txts['HelpMin'])
		self.saturnmin.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.saturnmin, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.saturnmintxt = wx.StaticText(self, -1, mtexts.txts['M2'])
		hsizer.Add(self.saturnmintxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.saturnsec = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.saturnsec.SetHelpText(mtexts.txts['HelpMin'])
		self.saturnsec.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.saturnsec, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.saturnsectxt = wx.StaticText(self, -1, mtexts.txts['S2'])
		hsizer.Add(self.saturnsectxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		self.saturnretr = wx.CheckBox(self, -1, mtexts.txts['R'])
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.saturnretr, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		splanetssizer.Add(gsizer, 0, wx.ALIGN_LEFT|wx.LEFT|wx.TOP, 5)

		vsizer.Add(splanetssizer, 0)

		#Use
		suse = wx.StaticBox(self, label=mtexts.txts['Use'])
		susesizer = wx.StaticBoxSizer(suse, wx.VERTICAL)
		self.useminckb = wx.CheckBox(self, -1, mtexts.txts['Minute'])
		susesizer.Add(self.useminckb, 0, wx.ALIGN_LEFT|wx.LEFT|wx.TOP, 5)
		self.usesecckb = wx.CheckBox(self, -1, mtexts.txts['Second'])
		susesizer.Add(self.usesecckb, 0, wx.ALIGN_LEFT|wx.LEFT|wx.TOP, 5)
		self.useretrckb = wx.CheckBox(self, -1, mtexts.txts['Retrograde'])
		susesizer.Add(self.useretrckb, 0, wx.ALIGN_LEFT|wx.LEFT|wx.TOP, 5)

		vsizer.Add(susesizer, 1, wx.GROW)

		mhsizer.Add(vsizer, 0, wx.GROW|wx.ALIGN_CENTER_HORIZONTAL, 0)

		#Angles
		vvvsizer = wx.BoxSizer(wx.VERTICAL)

		sangles = wx.StaticBox(self, label='')
		sanglessizer = wx.StaticBoxSizer(sangles, wx.VERTICAL)
		gsizer = wx.GridSizer(2, 4)
		self.asctxt = wx.StaticText(self, -1, mtexts.txts['Asc']+':')
		gsizer.Add(self.asctxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.ascdeg = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 359), size=(40,-1))
		self.ascdeg.SetHelpText(mtexts.txts['HelpDeg'])
		self.ascdeg.SetMaxLength(3)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.ascdeg, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.ascdegtxt = wx.StaticText(self, -1, mtexts.txts['D2'])
		hsizer.Add(self.ascdegtxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.ascmin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.ascmin.SetHelpText(mtexts.txts['HelpMin'])
		self.ascmin.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.ascmin, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.ascmintxt = wx.StaticText(self, -1, mtexts.txts['M2'])
		hsizer.Add(self.ascmintxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.ascsec = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.ascsec.SetHelpText(mtexts.txts['HelpMin'])
		self.ascsec.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.ascsec, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.ascsectxt = wx.StaticText(self, -1, mtexts.txts['S2'])
		hsizer.Add(self.ascsectxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		self.mctxt = wx.StaticText(self, -1, mtexts.txts['MC']+':')
		gsizer.Add(self.mctxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.mcdeg = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 359), size=(40,-1))
		self.mcdeg.SetHelpText(mtexts.txts['HelpDeg'])
		self.mcdeg.SetMaxLength(3)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.mcdeg, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.mcdegtxt = wx.StaticText(self, -1, mtexts.txts['D2'])
		hsizer.Add(self.mcdegtxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.mcmin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.mcmin.SetHelpText(mtexts.txts['HelpMin'])
		self.mcmin.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.mcmin, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.mcmintxt = wx.StaticText(self, -1, mtexts.txts['M2'])
		hsizer.Add(self.mcmintxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.mcsec = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.mcsec.SetHelpText(mtexts.txts['HelpMin'])
		self.mcsec.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.mcsec, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.mcsectxt = wx.StaticText(self, -1, mtexts.txts['S2'])
		hsizer.Add(self.mcsectxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		sanglessizer.Add(gsizer, 0, wx.ALIGN_LEFT|wx.LEFT|wx.TOP, 5)

		self.useascmcckb = wx.CheckBox(self, -1, mtexts.txts['Use'])
		sanglessizer.Add(self.useascmcckb, 0, wx.ALIGN_LEFT|wx.LEFT|wx.TOP, 5)

		vvvsizer.Add(sanglessizer, 0, wx.GROW|wx.LEFT, 5)

		#Force date
		rnge = 3000
		checker = rangechecker.RangeChecker()
		if checker.isExtended():
			rnge = 5000

		sforce = wx.StaticBox(self, label='')
		sforcesizer = wx.StaticBoxSizer(sforce, wx.VERTICAL)
		gsizer = wx.GridSizer(2, 3)
		self.fyear = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(1, rnge), size=(50,-1))
		if checker.isExtended():
			self.fyear.SetHelpText(mtexts.txts['HelpYear'])
		else:
			self.fyear.SetHelpText(mtexts.txts['HelpYear2'])
		self.fyear.SetMaxLength(4)

		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.fyear, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.fyeartxt = wx.StaticText(self, -1, mtexts.txts['YE'])
		hsizer.Add(self.fyeartxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.fmonth = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(1, 12), size=(50,-1))
		self.fmonth.SetHelpText(mtexts.txts['HelpMonth'])
		self.fmonth.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.fmonth, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.fmonthtxt = wx.StaticText(self, -1, mtexts.txts['MO2'])
		hsizer.Add(self.fmonthtxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.fday = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(1, 31), size=(50,-1))
		self.fday.SetHelpText(mtexts.txts['HelpDay'])
		self.fday.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.fday, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.fdaytxt = wx.StaticText(self, -1, mtexts.txts['DA'])
		hsizer.Add(self.fdaytxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		self.fhour = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 23), size=(50,-1))
		self.fhour.SetHelpText(mtexts.txts['HelpHour'])
		self.fhour.SetMaxLength(3)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.fhour, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.fhourtxt = wx.StaticText(self, -1, mtexts.txts['HO'])
		hsizer.Add(self.fhourtxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.fmin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(50,-1))
		self.fmin.SetHelpText(mtexts.txts['HelpMin'])
		self.fmin.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.fmin, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.fmintxt = wx.StaticText(self, -1, mtexts.txts['MI'])
		hsizer.Add(self.fmintxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.fsec = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(50,-1))
		self.fsec.SetHelpText(mtexts.txts['HelpMin'])
		self.fsec.SetMaxLength(2)
		hsizer = wx.BoxSizer(wx.HORIZONTAL)#
		hsizer.Add(self.fsec, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.fsectxt = wx.StaticText(self, -1, mtexts.txts['SE'])
		hsizer.Add(self.fsectxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		gsizer.Add(hsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		sforcesizer.Add(gsizer, 0, wx.ALIGN_LEFT|wx.LEFT|wx.TOP, 5)

		self.forceckb = wx.CheckBox(self, -1, mtexts.txts['ForceTheDate'])
		sforcesizer.Add(self.forceckb, 0, wx.ALIGN_LEFT|wx.LEFT|wx.TOP, 5)

		vvvsizer.Add(sforcesizer, 0, wx.GROW|wx.LEFT, 5)

		#Approximation(Planets)
		sapprox = wx.StaticBox(self, label=mtexts.txts['ApproxPlanets'])
		sapproxsizer = wx.StaticBoxSizer(sapprox, wx.VERTICAL)
		self.useapproxckb = wx.CheckBox(self, -1, mtexts.txts['Use'])
		self.approxdeg = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 4), size=(30,-1))
		self.approxdeg.SetHelpText(mtexts.txts['HelpApproxDeg'])
		self.approxdeg.SetMaxLength(1)
		self.approxmin = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.approxmin.SetHelpText(mtexts.txts['HelpMin'])
		self.approxmin.SetMaxLength(2)
		self.approxsec = wx.TextCtrl(self, -1, '', validator=intvalidator.IntValidator(0, 59), size=(40,-1))
		self.approxsec.SetHelpText(mtexts.txts['HelpMin'])
		self.approxsec.SetMaxLength(2)
		hsizerDeg = wx.BoxSizer(wx.HORIZONTAL)#
		hsizerDeg.Add(self.approxdeg, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.approxdegtxt = wx.StaticText(self, -1, mtexts.txts['D'])
		hsizerDeg.Add(self.approxdegtxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		hsizerMin = wx.BoxSizer(wx.HORIZONTAL)#
		hsizerMin.Add(self.approxmin, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.approxmintxt = wx.StaticText(self, -1, mtexts.txts['M'])
		hsizerMin.Add(self.approxmintxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		hsizerSec = wx.BoxSizer(wx.HORIZONTAL)#
		hsizerSec.Add(self.approxsec, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		self.approxsectxt = wx.StaticText(self, -1, mtexts.txts['S'])
		hsizerSec.Add(self.approxsectxt, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		hsizerLon = wx.BoxSizer(wx.HORIZONTAL)#
		hsizerLon.Add(hsizerDeg, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		hsizerLon.Add(hsizerMin, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		hsizerLon.Add(hsizerSec, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		hsizerAppr = wx.BoxSizer(wx.HORIZONTAL)#
		hsizerAppr.Add(self.useapproxckb, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)
		hsizerAppr.Add(hsizerLon, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 2)

		sapproxsizer.Add(hsizerAppr, 0, wx.ALIGN_LEFT|wx.LEFT|wx.TOP, 5)

		vvvsizer.Add(sapproxsizer, 0, wx.GROW|wx.LEFT, 5)

		#List
		sreslist =wx.StaticBox(self, label='')
		reslistsizer = wx.StaticBoxSizer(sreslist, wx.VERTICAL)
		ID_ResList = wx.NewId()
		self.li = ResListCtrl(self, ID_ResList, size=(360,100), style=wx.LC_VRULES|wx.LC_REPORT|wx.LC_SINGLE_SEL)
		reslistsizer.Add(self.li, 1, wx.GROW|wx.ALL, 5)

		vvvsizer.Add(reslistsizer, 0, wx.GROW|wx.LEFT, 5)

		#Start and Show
		List_Start_ID = wx.NewId()
		self.btnStart = wx.Button(self, List_Start_ID, mtexts.txts['Start2'])
		List_Show_ID = wx.NewId()
		self.btnShow = wx.Button(self, List_Show_ID, mtexts.txts['Show'])
		self.btnShow.Enable(False)

		hbtnsizer = wx.BoxSizer(wx.HORIZONTAL)
		hbtnsizer.Add(self.btnStart, 1, wx.GROW|wx.ALIGN_CENTER_HORIZONTAL, 5)
		hbtnsizer.Add(self.btnShow, 1, wx.GROW|wx.ALIGN_CENTER_HORIZONTAL, 5)

		vvvsizer.Add(hbtnsizer, 0, wx.GROW|wx.ALIGN_CENTER_HORIZONTAL, 5)

		mhsizer.Add(vvvsizer, 0, wx.GROW|wx.ALIGN_CENTER_HORIZONTAL, 0)

		mvsizer.Add(mhsizer, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5)

		btnsizer = wx.StdDialogButtonSizer()
	
		if wx.Platform != '__WXMSW__':
			btn = wx.ContextHelpButton(self)
			btnsizer.AddButton(btn)

		btnOk = wx.Button(self, wx.ID_OK, mtexts.txts['Close'])
		btnOk.SetDefault()
		btnsizer.AddButton(btnOk)
		btnsizer.Realize()

		mvsizer.Add(btnsizer, 0, wx.GROW|wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 10)

		self.SetSizer(mvsizer)
		mvsizer.Fit(self)

		self.Bind(wx.EVT_CHECKBOX, self.onUseMin, id=self.useminckb.GetId())
		self.Bind(wx.EVT_CHECKBOX, self.onUseSec, id=self.usesecckb.GetId())
		self.Bind(wx.EVT_CHECKBOX, self.onUseRetr, id=self.useretrckb.GetId())

		self.Bind(wx.EVT_CHECKBOX, self.onUseAscMC, id=self.useascmcckb.GetId())
		self.Bind(wx.EVT_CHECKBOX, self.onUseForce, id=self.forceckb.GetId())

		self.Bind(wx.EVT_CHECKBOX, self.onUseApprox, id=self.useapproxckb.GetId())

		self.useminckb.SetValue(True)
		self.usesecckb.SetValue(True)
		self.useretrckb.SetValue(True)

		self.useascmcckb.SetValue(False)
		self.enableAscMC(self.useascmcckb.GetValue())
		self.enableForce(self.useascmcckb.GetValue())

		self.useapproxckb.SetValue(False)
		self.approxdeg.Enable(False)
		self.approxdegtxt.Enable(False)
		self.approxmin.Enable(False)
		self.approxmintxt.Enable(False)
		self.approxsec.Enable(False)
		self.approxsectxt.Enable(False)

		self.Bind(wx.EVT_BUTTON, self.OnStart, id=self.btnStart.GetId())
		self.Bind(wx.EVT_BUTTON, self.OnShow, id=self.btnShow.GetId())

		self.Bind(wx.EVT_BUTTON, self.onOK, id=btnOk.GetId())

		self.Bind(EVT_FTREADY, self.OnFTReady)
		self.Bind(EVT_FTDATAREADY, self.OnFTDataReady)
		self.Bind(EVT_FTYEAR, self.OnFTYear)

		btnOk.SetFocus()

		self.progtxt = mtexts.txts['BusyInfo2']
		self.suffix = ''
		self.found = False
		self.ar = None