import kivy

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.properties import ListProperty
from kivy.properties import StringProperty

class RootWidget(Widget):
	
	def __init__(self, **kwargs): 
		super(RootWidget, self).__init__(**kwargs) 
		self.add_widget(Button(text='btn 1', pos=(0,100)))
		self.add_widget(Button(text='btn 2', pos=(100,0)))
		cb = CustomBtn()
		cb.bind(pressed=self.btn_pressed) 
		self.add_widget(cb)

	def btn_pressed(self, instance, pos):
		print ('pos: printed from root widget: {pos}'.format(pos=pos))

class CustomBtn(Widget):
	
	pressed = StringProperty([0, 0])

	def on_touch_down(self, touch):
		if self.collide_point(*touch.pos):
			self.pressed = str(touch.pos)
			return True
		return super(CustomBtn, self).on_touch_down(touch) 
	
	def on_pressed(self, instance, pos):
		print ('pressed at {pos}'.format(pos=pos))

class e7App(App):
	def build(self):
		return RootWidget()

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