#Richard Hearn  ced: 8-906-1268
#Parcial 1 de Programacion 3
#Programa que calcula area de rectangulo, circulo o trapecio e imprime resultado por consola o lo guarda en un archivo txt

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.gridlayout import GridLayout
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput


Builder.load_string('''
<MenuScreen>:
	BoxLayout:
		Button:
			text: 'Calular area de rectangulo'
			on_press: root.manager.current = 'calcular_area_rect'
		Button:
			text: 'Calcular Area de Circulo'
			on_press: root.manager.current = 'calcular_area_circ'
		Button:
			text: 'Calcular Area de Trapecio'
			on_press: root.manager.current = 'calcular_area_tra'
		Button:
			text: 'Salir'
			on_press: exit()
			
			
<Calucar_area_circulo>:
	rad: rad_input
	GridLayout:
		cols: 2	
		Label:
			text: 'Diametro del circulo'
		TextInput:
			id: rad_input	
		Button:
			text: 'Regresar al menu'
			on_press: root.manager.current = 'menu'
		Button:
			text: 'Exportar a archivo txt'
			on_press: app.exportar_c(rad_input.text)
		Button:
			text: 'Imprimir Resultado en Consola'
			on_press: app.imprimir_c(rad_input.text)
			
<Calucar_area_rectangulo>:
	bas: bas_input
	alt: alt_input
	GridLayout:
		cols: 2	
		Label:
			text: 'Base de rectangulo'
		TextInput:
			id: bas_input
		Label:
			text: 'Altura de rectangulo'
		TextInput:
			id: alt_input
		Button:
			text: 'Regresar al menu'
			on_press: root.manager.current = 'menu'
		Button:
			text: 'Exportar a archivo txt'
			on_press: app.exportar_r(bas_input.text, alt_input.text)
		Button:
			text: 'Imprimir Resultado en Consola'
			on_press: app.imprimir_r(bas_input.text, alt_input.text)
			
<Calucar_area_trapecio>:
	base1: base1_input
	base2: base2_input
	alt:   altu_input
	GridLayout:
		cols: 2	
		Label:
			text: 'Base 1 del trapecio'
		TextInput:
			id: base1_input
		Label:
			text: 'Base 2 del trapecio'
		TextInput:
			id: base2_input
		Label:
			text: 'Altura del trapecio'
		TextInput:
			id: altu_input
		Button:
			text: 'Regresar al menu'
			on_press: root.manager.current = 'menu'
		Button:
			text: 'Exportar a archivo txt'
			on_press: app.exportar_t(base1_input.text, base2_input.text, altu_input.text)
		Button:
			text: 'Imprimir Resultado en Consola'
			on_press: app.imprimir_t(base1_input.text, base2_input.text, altu_input.text)
''')


class MenuScreen(Screen):
	pass

class Calucar_area_rectangulo(Screen):
	pass
	
class Calucar_area_circulo(Screen):
	pass

class Calucar_area_trapecio(Screen):
	pass
		
sm = ScreenManager()
sm.add_widget(MenuScreen(name='menu'))
sm.add_widget(Calucar_area_rectangulo(name='calcular_area_rect'))
sm.add_widget(Calucar_area_circulo(name='calcular_area_circ'))
sm.add_widget(Calucar_area_trapecio(name='calcular_area_tra'))

class TestApp(App):
	try:
		doSomething()
	except: 
		pass

	def exportar_c(self, rad_input):
		resp= 3.1416*(pow(float(rad_input),2))
		archivo = open('Area de Circulo', 'a')
		archivo.write("Diametro: " + str(rad_input))
		archivo.write("\nArea: " + str(resp) + "\n\n")
		archivo.close()
		return resp
		
	def exportar_r(self, bas_input, alt_input):
		resp=(float(bas_input)*float(alt_input))
		archivo = open('Area de Rectangulo', 'a')
		archivo.write("Base: " + str(bas_input))
		archivo.write("\nAltura: " + str(alt_input))
		archivo.write("\nArea: " + str(resp) + "\n\n")
		archivo.close()
		return resp
	
	def exportar_t(self, base1_input, base2_input, altu_input):
		resp= (((float(base1_input)+float(base2_input))*float(altu_input))/2)
		archivo = open('Area de Trapecio', 'a')
		archivo.write("Base 1: " + str(base1_input))
		archivo.write("\nBase 2: " + str(base2_input))
		archivo.write("\nAltura: " + str(altu_input))
		archivo.write("\nArea de trapecio: " + str(resp) + "\n\n")
		archivo.close()
		return resp
	
	def imprimir_c(self, rad_input):
		resp= 3.1416*(pow(float(rad_input),2))
		print ("El Area del Circulo es: " + str(resp))
	
	def imprimir_r(self, bas_input, alt_input):
		resp=(float(bas_input)*float(alt_input))
		print ("El Area del Rectangulo es: " + str(resp))
	
	def imprimir_t(self, base1_input, base2_input, altu_input):
		resp= (((float(base1_input)+float(base2_input))*float(altu_input))/2)
		print ("El Area del Trapecio es: " + str(resp))
		
	def callback(instance):
		print('The button <%s> is being pressed' % instance.text)
	
	def build(self):
		return sm
		

if __name__ == '__main__':
	TestApp().run()
	
	