]> git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/wxMimeTypesManager.py
9400a5c2d570e4f8666874920e514ac56e239633
[wxWidgets.git] / wxPython / demo / wxMimeTypesManager.py
1
2 import pprint, string
3 from wxPython.wx import *
4 from mimetypes_wdr import *
5
6 #----------------------------------------------------------------------------
7
8 # WDR: classes
9
10 class MimeTypesTestPanel(wxPanel):
11 def __init__(self, parent, id,
12 pos = wxPyDefaultPosition, size = wxPyDefaultSize,
13 style = wxTAB_TRAVERSAL ):
14 wxPanel.__init__(self, parent, id, pos, size, style)
15
16 MakeMimeTypesTestPanel( self, true )
17
18 # WDR: handler declarations for MimeTypesTestPanel
19 EVT_LISTBOX(self, ID_LISTBOX, self.OnListbox)
20 EVT_BUTTON(self, ID_LOOKUP_BTN, self.OnLookup)
21
22 self.GetInputText().SetValue("html")
23 self.OnLookup()
24
25 mimetypes = wxTheMimeTypesManager.EnumAllFileTypes()
26 for mt in mimetypes:
27 self.GetListbox().Append(mt)
28
29
30
31 # WDR: handler implementations for MimeTypesTestPanel
32
33 def OnListbox(self, event):
34 mimetype = event.GetString()
35 self.GetInputText().SetValue(mimetype)
36 self.GetMimeBtn().SetValue(TRUE)
37 self.GetExtensionBtn().SetValue(FALSE)
38 self.OnLookup()
39
40
41 def OnLookup(self, event=None):
42 txt = self.GetInputText().GetValue()
43 if self.GetMimeBtn().GetValue():
44 fileType = wxTheMimeTypesManager.GetFileTypeFromMimeType(txt)
45 msg = "Mime type"
46 else:
47 fileType = wxTheMimeTypesManager.GetFileTypeFromExtension(txt)
48 msg = "File extension"
49 if fileType is None:
50 wxMessageBox(msg + " not found.", "Oops!")
51 else:
52 self.Update(fileType)
53
54
55
56 def Update(self, ft):
57 #icon = ft.GetIcon()
58 info = ft.GetIconInfo()
59 if info is None:
60 bmp = MyBitmapsFunc(0)
61 ##print bmp.Ok(), bmp.GetWidth(), bmp.GetHeight()
62 self.GetIconBmp().SetBitmap(bmp)
63 self.GetIconFileTxt().SetValue("")
64 self.GetIconIndexTxt().SetValue("")
65 else:
66 icon, file, idx = info
67 #bmp = wxBitmapFromIcon(icon)
68 #self.GetIconBmp().SetBitmap(bmp)
69 self.GetIconBmp().SetIcon(icon)
70 self.GetIconFileTxt().SetValue(file)
71 self.GetIconIndexTxt().SetValue(str(idx))
72
73 self.GetMimeTypeTxt().SetValue(str(ft.GetMimeType()))
74 self.GetMimeTypesTxt().SetValue(str(ft.GetMimeTypes()))
75 self.GetExtensionsTxt().SetValue(str(ft.GetExtensions()))
76 self.GetDescriptionTxt().SetValue(str(ft.GetDescription()))
77
78 ext = ft.GetExtensions()[0]
79 mime = ft.GetMimeType() or ""
80 cmd = ft.GetOpenCommand("SPAM" + ext, mime)
81 self.GetOpenCmdTxt().SetValue(str(cmd))
82
83 cmd = ft.GetPrintCommand("SPAM" + ext, mime)
84 self.GetPrintCmdTxt().SetValue(str(cmd))
85
86 all = ft.GetAllCommands("SPAM" + ext, mime)
87 if all is None:
88 self.GetAllCmdsTxt().SetValue("")
89 else:
90 verbs, commands = all
91 text = pprint.pformat(map(None, verbs, commands))
92 self.GetAllCmdsTxt().SetValue(text)
93
94
95 # WDR: methods for MimeTypesTestPanel
96
97 def GetListbox(self):
98 return wxPyTypeCast( self.FindWindowById(ID_LISTBOX), "wxListBox" )
99
100 def GetIconIndexTxt(self):
101 return self.FindWindowById(ID_ICON_INDEX_TXT)
102
103 def GetIconFileTxt(self):
104 return self.FindWindowById(ID_ICON_FILE_TXT)
105
106 def GetMimeBtn(self):
107 return self.FindWindowById(ID_MIME_BTN)
108
109 def GetExtensionBtn(self):
110 return self.FindWindowById(ID_EXTENSION_Btn)
111
112 def GetAllCmdsTxt(self):
113 return self.FindWindowById(ID_ALL_CMDS_TXT)
114
115 def GetPrintCmdTxt(self):
116 return self.FindWindowById(ID_PRINT_CMD_TXT)
117
118 def GetOpenCmdTxt(self):
119 return self.FindWindowById(ID_OPEN_CMD_TXT)
120
121 def GetDescriptionTxt(self):
122 return self.FindWindowById(ID_DESCRIPTION_TXT)
123
124 def GetExtensionsTxt(self):
125 return self.FindWindowById(ID_EXTENSIONS_TXT)
126
127 def GetMimeTypesTxt(self):
128 return self.FindWindowById(ID_MIME_TYPES_TXT)
129
130 def GetMimeTypeTxt(self):
131 return self.FindWindowById(ID_MIME_TYPE_TXT)
132
133 def GetIconBmp(self):
134 return self.FindWindowById(ID_ICON_BMP)
135
136 def GetInputText(self):
137 return self.FindWindowById(ID_INPUT_TEXT)
138
139
140
141
142
143 #----------------------------------------------------------------------
144
145 def runTest(frame, nb, log):
146 win = MimeTypesTestPanel(nb, -1)
147 return win
148
149
150 #----------------------------------------------------------------------
151
152
153
154 overview = """\
155 """
156
157
158
159
160 import mimetypes_wdr
161
162 def MyBitmapsFunc( index ):
163 return wxImage( "bitmaps/noicon.png", wxBITMAP_TYPE_PNG ).ConvertToBitmap()
164
165 mimetypes_wdr.MyBitmapsFunc = MyBitmapsFunc
166
167