import wx

class Search( wx.Panel ):
	def __init__( self, parent, id = wx.ID_ANY, style = 0, size=wx.DefaultSize ):
		super(Search, self).__init__(parent, id, style=style, size=size )

		self.hbs = wx.BoxSizer(wx.VERTICAL)
		
		self.searchLabel = wx.StaticText( self, label=u'Search:' )
		self.search = wx.SearchCtrl(self, style=wx.TE_PROCESS_ENTER )
		self.search.ShowCancelButton( True )
		self.search.Bind(wx.EVT_TEXT_ENTER, self.OnDoSearch)
		self.search.Bind(wx.EVT_TEXT, self.OnDoSearch)
		
		self.hbs.Add( self.searchLabel, flag=wx.ALL, border=4 )
		self.hbs.Add( self.search, 1, flag=wx.ALL|wx.EXPAND, border = 4 )
		self.SetSizer( self.hbs )
		
	def OnDoSearch( self, event ):
		print 'OnDoSearch', self.search.GetValue()
		self.search.SetFocus()		# Comment out this line to make it work.

if __name__ == '__main__':
	app = wx.App(False)
	mainWin = wx.Frame(None, title="SearchBug")
	search = Search( mainWin )
	mainWin.Show()
	app.MainLoop()