#! /usr/bin/env python3
# -*- coding: latin-1 -*-
import wx

import  wx.lib.newevent
MyCustomEvent, EVT_MY_CUSTOM_EVENT = wx.lib.newevent.NewCommandEvent()

class MyWidget(wx.Panel):
	def __init__(self, parent, id_):
		wx.Panel.__init__(self, parent, id_)
		sizer=wx.BoxSizer(wx.VERTICAL)
		self.btn=wx.Button(self, wx.ID_ANY, "Send event")
		sizer.Add(self.btn)
		self.SetSizer(sizer)
		self.Fit()
		self.Bind(wx.EVT_BUTTON, self.OnButton, self.btn)
		self.eventSent=False
	def OnButton(self, evt=None):
		evt=MyCustomEvent(self.GetId())
		wx.PostEvent(self, evt)
		print("event send")
		self.eventSent=True

class DemoFrame(wx.Frame):
	def __init__(self, parent, title):
		wx.Frame.__init__(self, parent, -1, title)
		sizer=wx.BoxSizer(wx.VERTICAL)
		self.mywidget=MyWidget(self, wx.ID_ANY)
		self.text=wx.StaticText(self, wx.ID_ANY, "")
		sizer.Add(self.mywidget)
		sizer.Add(self.text)
		self.SetSizer(sizer)
		self.Fit()
		self.Bind(EVT_MY_CUSTOM_EVENT, self.OnCustomEvent, self.mywidget)

	def OnCustomEvent(self, evt=None):
		self.text.SetLabel("event Ok")
		

class App(wx.App):
	def OnInit(self):
		self.frame = DemoFrame(None, "demo")
		self.SetTopWindow(self.frame)
		self.frame.Raise()
		self.frame.Show(True)
		return True

if __name__ == '__main__':
	DEBUG=True
	app = App()
	app.MainLoop()
