+# A convenient wrapper around wx.TextCtrl to give it a spiffy label.
+class ExtStr(wx.Panel):
+ def __init__(self, parent):
+ wx.Panel.__init__(self, parent, -1)
+ sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, 'Extension'), wx.HORIZONTAL)
+ self.ctl = wx.TextCtrl(self, -1, value="wav", style = wx.TE_PROCESS_ENTER )
+ sizer.Add(self.ctl, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 3)
+ self.Enable(True)
+
+ self.SetSizer(sizer)
+ sizer.Fit(self)
+
+ def Enable(self, value):
+ self.ctl.Enable(value)
+
+ def SetValue(self, value):
+ self.ctl.SetValue(value)
+
+ def GetValue(self):
+ return(self.ctl.GetValue())
+
+
+class MimeTypesDemoPanel(wx.Panel):
+ def __init__(self, parent, log):
+
+ self.log = log
+
+ wx.Panel.__init__(self, parent, -1)
+
+ # Contains everything
+ tsizer = wx.BoxSizer(wx.VERTICAL)
+
+ # Contains upper controls
+ usizer = wx.BoxSizer(wx.HORIZONTAL)
+
+ # A little fancy stuff to make things align right.
+ self.ext = ExtStr(self)
+ usizer.Add(self.ext, 0, wx.ALL | wx.ALIGN_TOP, 4)
+ self.ext.Bind(wx.EVT_TEXT_ENTER, self.OnLookup)
+
+ # Select how to look it up
+ self.how = wx.RadioBox(
+ self, -1, "Lookup method", choices=['By extension', 'By MIME type'],
+ majorDimension=2, style=wx.RA_SPECIFY_COLS
+ )
+ usizer.Add(self.how, 0, wx.ALL | wx.ALIGN_TOP, 4)
+ self.how.SetSelection(0)
+
+ # Trigger a lookup (hitting ENTER in the text ctrl will do the same thing)
+ self.go = wx.Button(self, -1, "Go get it!")
+ usizer.Add(self.go, 0, wx.ALL | wx.ALIGN_CENTER, 4)
+ self.Bind(wx.EVT_BUTTON, self.OnLookup, self.go)
+
+ # StaticBox with larger label than usual
+ lbox = wx.StaticBox(self, -1, 'wx.FileType')
+ lbox.SetFont(
+ wx.Font(
+ self.GetFont().GetPointSize() * 2,
+ self.GetFont().GetFamily(),
+ self.GetFont().GetStyle(),
+ wx.BOLD
+ ))
+
+ lsizer = wx.StaticBoxSizer(lbox, wx.HORIZONTAL)
+
+ # Contains the wx.FileType info
+ llsizer = wx.GridBagSizer(2, 2)
+ llsizer.AddGrowableCol(2)
+
+ # This will be used for all of the labels that follow (bold label)
+ bfont = wx.Font(
+ self.GetFont().GetPointSize(),
+ self.GetFont().GetFamily(),
+ self.GetFont().GetStyle(),
+ wx.BOLD
+ )
+
+ #------- Icon info
+
+ t = wx.StaticText(self, -1, 'GetIconInfo: ', style = wx.ALIGN_RIGHT )
+ t.SetFont(bfont)
+ llsizer.Add(t, (0, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)
+
+ self.icon = wx.StaticBitmap(self, -1, images.getNoIconBitmap())
+ llsizer.Add(self.icon, (0, 1), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)
+
+ self.iconsource = wx.TextCtrl(self, -1, value="", style = wx.TE_READONLY )
+ llsizer.Add(self.iconsource, (0, 2), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)
+
+ self.iconoffset = wx.TextCtrl(self, -1, value="", style = wx.TE_READONLY )
+ llsizer.Add(self.iconoffset, (0, 3), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)
+
+ #------- MIME Type
+
+ t = wx.StaticText(self, -1, 'GetMimeType: ', style = wx.ALIGN_RIGHT )
+ t.SetFont(bfont)
+ llsizer.Add(t, (1, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)
+
+ self.mimetype = wx.TextCtrl(self, -1, value="", style = wx.TE_READONLY )
+ llsizer.Add(self.mimetype, (1, 1), (1, 3), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)
+
+ #------- MIME Types
+
+ t = wx.StaticText(self, -1, 'GetMimeTypes: ', style = wx.ALIGN_RIGHT )
+ t.SetFont(bfont)
+ llsizer.Add(t, (2, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)
+
+ self.mimetypes = wx.TextCtrl(self, -1, value="", style = wx.TE_READONLY )
+ llsizer.Add(self.mimetypes, (2, 1), (1, 3), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)
+
+ #------- Extensions
+
+ t = wx.StaticText(self, -1, 'GetExtensions: ', style = wx.ALIGN_RIGHT )
+ t.SetFont(bfont)
+ llsizer.Add(t, (3, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)
+
+ self.extensions = wx.TextCtrl(self, -1, value="", style = wx.TE_READONLY )
+ llsizer.Add(self.extensions, (3, 1), (1, 3), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)
+
+ #------- Description