Log errors when instantiation fails in hooke.util.pluggable.construct_*().
[hooke.git] / hooke / ui / gui / dialog / string.py
1 class StringPopup (wx.Dialog):
2
3         self._c = {
4             'text': wx.StaticText(
5                 parent=self, label=message, style=wx.ALIGN_CENTRE),
6             'button': wx.Button(parent=self, id=button_id),
7             'cancel': wx.Button(self, wx.ID_CANCEL),
8             }
9         size = wx.Size(175, 200)
10         if selection_style == 'single':
11             self._c['listbox'] = wx.ListBox(
12                 parent=self, size=size, list=options)
13             if default != None:
14                 self._c['listbox'].SetSelection(default)
15         else:
16             assert selection_style == 'multiple', selection_style
17             self._c['listbox'] = wx.CheckListBox(
18                 parent=self, size=size, list=options)
19             if default != None:
20                 self._c['listbox'].Check(default)
21         self.Bind(wx.EVT_BUTTON, self.button, self._c['button'])
22         self.Bind(wx.EVT_BUTTON, self.cancel, self._c['cancel'])
23
24         border_width = 5
25
26         b = wx.BoxSizer(wx.HORIZONTAL)
27         b.Add(window=self._c['button'],
28               flag=wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL,
29               border=border_width)
30         b.Add(window=self._c['cancel'],
31               flag=wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL,
32               border=border_width)
33
34         v = wx.BoxSizer(wx.VERTICAL)
35         v.Add(window=self._c['text'],
36               flag=wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL,
37               border=border_width)
38         v.Add(window=self._c['listbox'],
39               proportion=1,
40               flag=wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL,
41               border=border_width)
42         v.Add(window=wx.StaticLine(
43                 parent=self, size=(20,-1), style=wx.LI_HORIZONTAL),
44               flag=wx.GROW,
45               border=border_width)
46         v.Add(window=b,
47               flag=wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALL,
48               border=border_width)
49         self.SetSizer(v)
50         v.Fit(self)