From: Robin Dunn Date: Fri, 2 Jan 2004 19:36:26 +0000 (+0000) Subject: New wxDesigner-less version of the MimeTypesManager demo X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/cc6eca35090e1735e2dde009185476dc80726b97 New wxDesigner-less version of the MimeTypesManager demo git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25056 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/wxPython/demo/mimetypes.wdr b/wxPython/demo/mimetypes.wdr deleted file mode 100644 index d3d9583c6d..0000000000 Binary files a/wxPython/demo/mimetypes.wdr and /dev/null differ diff --git a/wxPython/demo/mimetypes_wdr.py b/wxPython/demo/mimetypes_wdr.py deleted file mode 100644 index 348ca568c7..0000000000 --- a/wxPython/demo/mimetypes_wdr.py +++ /dev/null @@ -1,155 +0,0 @@ -#----------------------------------------------------------------------------- -# Python source generated by wxDesigner from file: mimetypes.wdr -# Do not modify this file, all changes will be lost! -#----------------------------------------------------------------------------- - -# Include wxWindows' modules -from wxPython.wx import * - -# Window functions - -ID_INPUT_TEXT = 10000 -ID_EXTENSION_Btn = 10001 -ID_MIME_BTN = 10002 -ID_LOOKUP_BTN = 10003 -ID_LINE = 10004 -ID_TEXT = 10005 -ID_ICON_BMP = 10006 -ID_ICON_FILE_TXT = 10007 -ID_ICON_INDEX_TXT = 10008 -ID_MIME_TYPE_TXT = 10009 -ID_MIME_TYPES_TXT = 10010 -ID_EXTENSIONS_TXT = 10011 -ID_DESCRIPTION_TXT = 10012 -ID_OPEN_CMD_TXT = 10013 -ID_PRINT_CMD_TXT = 10014 -ID_ALL_CMDS_TXT = 10015 -ID_LISTBOX = 10016 - -def MakeMimeTypesTestPanel( parent, call_fit = True, set_sizer = True ): - item0 = wxBoxSizer( wxVERTICAL ) - - item1 = wxBoxSizer( wxHORIZONTAL ) - - item2 = wxTextCtrl( parent, ID_INPUT_TEXT, "", wxDefaultPosition, wxSize(100,-1), 0 ) - item1.AddWindow( item2, 0, wxALIGN_CENTRE|wxALL, 5 ) - - item3 = wxRadioButton( parent, ID_EXTENSION_Btn, "By extension", wxDefaultPosition, wxDefaultSize, wxRB_GROUP ) - item3.SetValue( True ) - item1.AddWindow( item3, 0, wxALIGN_CENTRE|wxALL, 5 ) - - item4 = wxRadioButton( parent, ID_MIME_BTN, "By mime type", wxDefaultPosition, wxDefaultSize, 0 ) - item1.AddWindow( item4, 0, wxALIGN_CENTRE|wxALL, 5 ) - - item5 = wxButton( parent, ID_LOOKUP_BTN, "Lookup", wxDefaultPosition, wxDefaultSize, 0 ) - item5.SetDefault() - item1.AddWindow( item5, 0, wxALIGN_CENTRE|wxALL, 5 ) - - item0.AddSizer( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ) - - item6 = wxStaticLine( parent, ID_LINE, wxDefaultPosition, wxSize(20,-1), wxLI_HORIZONTAL ) - item0.AddWindow( item6, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ) - - item7 = wxBoxSizer( wxHORIZONTAL ) - - item8 = wxFlexGridSizer( 0, 2, 0, 0 ) - item8.AddGrowableCol( 1 ) - item8.AddGrowableRow( 8 ) - - item9 = wxStaticText( parent, ID_TEXT, "wxFileType:", wxDefaultPosition, wxDefaultSize, 0 ) - item9.SetFont( wxFont( 14, wxSWISS, wxNORMAL, wxBOLD ) ) - item8.AddWindow( item9, 0, wxALL, 5 ) - - item8.AddSpacer( (20, 20), 0, wxALIGN_CENTRE|wxALL, 5 ) - - item10 = wxStaticText( parent, ID_TEXT, "GetIconInfo:", wxDefaultPosition, wxDefaultSize, 0 ) - item8.AddWindow( item10, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 ) - - item11 = wxBoxSizer( wxHORIZONTAL ) - - item12 = wxStaticBitmap( parent, ID_ICON_BMP, MyBitmapsFunc( 0 ), wxDefaultPosition, wxDefaultSize ) - item11.AddWindow( item12, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ) - - item13 = wxTextCtrl( parent, ID_ICON_FILE_TXT, "", wxDefaultPosition, wxSize(120,-1), wxTE_READONLY ) - item11.AddWindow( item13, 1, wxALIGN_CENTRE|wxRIGHT|wxTOP|wxBOTTOM, 5 ) - - item14 = wxTextCtrl( parent, ID_ICON_INDEX_TXT, "", wxDefaultPosition, wxSize(30,-1), wxTE_READONLY ) - item11.AddWindow( item14, 0, wxALIGN_CENTRE|wxRIGHT|wxTOP|wxBOTTOM, 5 ) - - item8.AddSizer( item11, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 ) - - item15 = wxStaticText( parent, ID_TEXT, "GetMimeType:", wxDefaultPosition, wxDefaultSize, 0 ) - item8.AddWindow( item15, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item16 = wxTextCtrl( parent, ID_MIME_TYPE_TXT, "", wxDefaultPosition, wxSize(310,-1), wxTE_READONLY ) - item8.AddWindow( item16, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item17 = wxStaticText( parent, ID_TEXT, "GetMimeTypes:", wxDefaultPosition, wxDefaultSize, 0 ) - item8.AddWindow( item17, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item18 = wxTextCtrl( parent, ID_MIME_TYPES_TXT, "", wxDefaultPosition, wxSize(80,-1), wxTE_READONLY ) - item8.AddWindow( item18, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item19 = wxStaticText( parent, ID_TEXT, "GetExtensions:", wxDefaultPosition, wxDefaultSize, 0 ) - item8.AddWindow( item19, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item20 = wxTextCtrl( parent, ID_EXTENSIONS_TXT, "", wxDefaultPosition, wxSize(80,-1), wxTE_READONLY ) - item8.AddWindow( item20, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item21 = wxStaticText( parent, ID_TEXT, "GetDescription:", wxDefaultPosition, wxDefaultSize, 0 ) - item8.AddWindow( item21, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item22 = wxTextCtrl( parent, ID_DESCRIPTION_TXT, "", wxDefaultPosition, wxSize(80,-1), wxTE_READONLY ) - item8.AddWindow( item22, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item23 = wxStaticText( parent, ID_TEXT, "GetOpenCommand:", wxDefaultPosition, wxDefaultSize, 0 ) - item8.AddWindow( item23, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item24 = wxTextCtrl( parent, ID_OPEN_CMD_TXT, "", wxDefaultPosition, wxSize(80,-1), wxTE_READONLY ) - item8.AddWindow( item24, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item25 = wxStaticText( parent, ID_TEXT, "GetPrintCommand:", wxDefaultPosition, wxDefaultSize, 0 ) - item8.AddWindow( item25, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item26 = wxTextCtrl( parent, ID_PRINT_CMD_TXT, "", wxDefaultPosition, wxSize(80,-1), wxTE_READONLY ) - item8.AddWindow( item26, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item27 = wxStaticText( parent, ID_TEXT, "GetAllCommands:", wxDefaultPosition, wxDefaultSize, 0 ) - item8.AddWindow( item27, 0, wxALIGN_RIGHT|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item28 = wxTextCtrl( parent, ID_ALL_CMDS_TXT, "", wxDefaultPosition, wxSize(80,100), wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL ) - item8.AddWindow( item28, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ) - - item7.AddSizer( item8, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ) - - item29 = wxBoxSizer( wxVERTICAL ) - - item30 = wxStaticText( parent, ID_TEXT, "Known mime types:", wxDefaultPosition, wxDefaultSize, 0 ) - item29.AddWindow( item30, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP|wxBOTTOM, 5 ) - - item31 = wxListBox( parent, ID_LISTBOX, wxDefaultPosition, wxSize(150,100), [], wxLB_SINGLE|wxLB_SORT|wxLB_HSCROLL ) - item29.AddWindow( item31, 1, wxALIGN_CENTRE|wxRIGHT|wxBOTTOM, 5 ) - - item7.AddSizer( item29, 0, wxGROW|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxTOP|wxBOTTOM, 5 ) - - item0.AddSizer( item7, 1, wxGROW|wxALIGN_CENTER_VERTICAL, 5 ) - - if set_sizer == True: - parent.SetAutoLayout( True ) - parent.SetSizer( item0 ) - if call_fit == True: - item0.Fit( parent ) - item0.SetSizeHints( parent ) - - return item0 - -# Menu bar functions - -# Bitmap functions - -def MyBitmapsFunc( index ): - if index == 0: - return wxImage( "mimetypes_wdr/MyBitmapsFunc_0.png", wxBITMAP_TYPE_PNG ).ConvertToBitmap() - return wxNullBitmap - -# End of generated file diff --git a/wxPython/demo/wxMimeTypesManager.py b/wxPython/demo/wxMimeTypesManager.py index 5b0227ebf0..b3c6b970a6 100644 --- a/wxPython/demo/wxMimeTypesManager.py +++ b/wxPython/demo/wxMimeTypesManager.py @@ -1,181 +1,353 @@ +#---------------------------------------------------------------------- +# Name: wxMimeTypesManager +# Purpose: Demonstrate use of wx.MimeTypesManager, wx.FileType +# +# Author: Jeff Grimmett (grimmtoo@softhome.net), adapted from original +# .wdr-derived demo +# +# Created: 12/31/03 +# RCS-ID: $Id$ +# Copyright: +# Licence: wxWindows license +#---------------------------------------------------------------------- +# -import pprint, string, os -from wxPython.wx import * -from mimetypes_wdr import * -from Main import opj + +import pprint +import wx +import images #---------------------------------------------------------------------------- -# WDR: classes +# 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 -class MimeTypesTestPanel(wxPanel): - def __init__(self, parent, id, - pos = wxDefaultPosition, size = wxDefaultSize, - style = wxTAB_TRAVERSAL ): - wxPanel.__init__(self, parent, id, pos, size, style) + t = wx.StaticText(self, -1, 'GetDescription: ', style = wx.ALIGN_RIGHT ) + t.SetFont(bfont) + llsizer.Add(t, (4, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) - MakeMimeTypesTestPanel( self, True ) + self.description = wx.TextCtrl(self, -1, value="", style = wx.TE_READONLY) + llsizer.Add(self.description, (4, 1), (1, 3), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) - # WDR: handler declarations for MimeTypesTestPanel - EVT_LISTBOX(self, ID_LISTBOX, self.OnListbox) - EVT_BUTTON(self, ID_LOOKUP_BTN, self.OnLookup) + #------- Open command - self.GetInputText().SetValue("wav") - self.OnLookup() + t = wx.StaticText(self, -1, 'GetOpenCommand: ', style = wx.ALIGN_RIGHT ) + t.SetFont(bfont) + llsizer.Add(t, (5, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) + + self.opencommand = wx.TextCtrl(self, -1, value="", style = wx.TE_READONLY ) + llsizer.Add(self.opencommand, (5, 1), (1, 3), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) + + #------- Print command + + t = wx.StaticText(self, -1, 'GetPrintCommand: ', style = wx.ALIGN_RIGHT ) + t.SetFont(bfont) + llsizer.Add(t, (6, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) + + self.printcommand = wx.TextCtrl(self, -1, value="", style = wx.TE_READONLY ) + llsizer.Add(self.printcommand, (6, 1), (1, 3), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) + + #------- All commands + + t = wx.StaticText(self, -1, 'GetAllCommands: ', style = wx.ALIGN_RIGHT ) + t.SetFont(bfont) + llsizer.Add(t, (7, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) + + self.allcommands = wx.TextCtrl(self, -1, value="", style = wx.TE_READONLY | wx.TE_DONTWRAP | wx.TE_MULTILINE ) + + # Set the default height to be smaller than normal (for + # multi-line) so the sizer can then expand it to whatever + # space is available + self.allcommands.SetSize((-1, 20)) + + llsizer.Add(self.allcommands, (7, 1), (1, 3), wx.ALL | wx.GROW | wx.ALIGN_CENTER, 2) + + # Tell the sizer to expand this row as needed + llsizer.AddGrowableRow(7) + + #---------------------------------------------------------------------------- + + lrsizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, 'Known MIME types'), wx.HORIZONTAL) + + #------- List box with known MIME types + self.mimelist = wx.ListBox(self, -1, choices=[], style = wx.LB_SINGLE | wx.LB_SORT) + lrsizer.Add(self.mimelist, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4) + self.Bind(wx.EVT_LISTBOX, self.OnListbox, self.mimelist) + + #---------------------------------------------------------------------------- + + lsizer.Add(llsizer, 1, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4) + lsizer.Add(lrsizer, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4) - mimetypes = wxTheMimeTypesManager.EnumAllFileTypes() - for mt in mimetypes: - self.GetListbox().Append(mt) + #---------------------------------------------------------------------------- + tsizer.Add(usizer, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4) + tsizer.Add(lsizer, 1, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4) + #---------------------------------------------------------------------------- - # WDR: handler implementations for MimeTypesTestPanel + self.SetSizer(tsizer) + tsizer.Fit(self) + + # Populate the Known MIME types list with what is in the database + mtypes = wx.TheMimeTypesManager.EnumAllFileTypes() + for mt in mtypes: + self.mimelist.Append(mt) + # Do a lookup of *.wav for a starting position + self.OnLookup() + + # Grab the selection from the listbox, push that into + # the text box at top, select 'MIME', and then look it up. def OnListbox(self, event): mimetype = event.GetString() - self.GetInputText().SetValue(mimetype) - self.GetMimeBtn().SetValue(True) - self.GetExtensionBtn().SetValue(False) + self.ext.SetValue(mimetype) + self.how.SetSelection(1) self.OnLookup() - + # Look up a given file extension or MIME type. def OnLookup(self, event=None): - txt = self.GetInputText().GetValue() - if self.GetMimeBtn().GetValue(): - fileType = wxTheMimeTypesManager.GetFileTypeFromMimeType(txt) + txt = self.ext.GetValue() + + # For MIME lookups + if self.how.GetSelection() == 1: + fileType = wx.TheMimeTypesManager.GetFileTypeFromMimeType(txt) msg = "Mime type" + + # Select the entered value in the list + if fileType: + if self.mimelist.FindString(txt) != -1: + self.mimelist.SetSelection(self.mimelist.FindString(txt)) + + # Must be an extension lookup else: - fileType = wxTheMimeTypesManager.GetFileTypeFromExtension(txt) + fileType = wx.TheMimeTypesManager.GetFileTypeFromExtension(txt) msg = "File extension" + + # Select the entered value in the list + if fileType: + if self.mimelist.FindString(str(fileType.GetMimeType())) != -1: + # Using CallAfter to ensure that GUI is ready before trying to + # select it (otherwise, it's selected but not visible) + wx.CallAfter(self.mimelist.SetSelection, self.mimelist.FindString(str(fileType.GetMimeType()))) + + if fileType is None: - wxMessageBox(msg + " not found.", "Oops!") + wx.MessageBox(msg + " not found.", "Oops!") else: self.Update(fileType) - - + # Populate the wx.FileType fields with actual values. def Update(self, ft): - #icon = ft.GetIcon() + + #------- Icon info info = ft.GetIconInfo() + if info is None: - bmp = MyBitmapsFunc(0) - ##print bmp.Ok(), bmp.GetWidth(), bmp.GetHeight() - self.GetIconBmp().SetBitmap(bmp) - self.GetIconFileTxt().SetValue("") - self.GetIconIndexTxt().SetValue("") + bmp = images.getNoIconBitmap() + self.icon.SetBitmap(bmp) + self.iconsource.SetValue("") + self.iconoffset.SetValue("") else: icon, file, idx = info - #bmp = wxBitmapFromIcon(icon) - #self.GetIconBmp().SetBitmap(bmp) - self.GetIconBmp().SetIcon(icon) - self.GetIconFileTxt().SetValue(file) - self.GetIconIndexTxt().SetValue(str(idx)) - - self.GetMimeTypeTxt().SetValue(str(ft.GetMimeType())) - self.GetMimeTypesTxt().SetValue(str(ft.GetMimeTypes())) - self.GetExtensionsTxt().SetValue(str(ft.GetExtensions())) - self.GetDescriptionTxt().SetValue(str(ft.GetDescription())) - + if icon.Ok(): + self.icon.SetIcon(icon) + else: + bmp = images.getNoIconBitmap() + self.icon.SetBitmap(bmp) + self.iconsource.SetValue(file) + self.iconoffset.SetValue(str(idx)) + + #------- MIME type + self.mimetype.SetValue(str(ft.GetMimeType())) + #------- MIME types + self.mimetypes.SetValue(str(ft.GetMimeTypes())) + #------- Associated extensions + self.extensions.SetValue(str(ft.GetExtensions())) + #------- Description of file type + self.description.SetValue(str(ft.GetDescription())) + + #------- Prep a fake command line command extList = ft.GetExtensions() + if extList: ext = extList[0] if ext[0] == ".": ext = ext[1:] else: ext = "" + filename = "SPAM" + "." + ext mime = ft.GetMimeType() or "" + + #------- OPEN command cmd = ft.GetOpenCommand(filename, mime) - self.GetOpenCmdTxt().SetValue(str(cmd)) + self.opencommand.SetValue(str(cmd)) + #------- PRINT command cmd = ft.GetPrintCommand(filename, mime) - self.GetPrintCmdTxt().SetValue(str(cmd)) + self.printcommand.SetValue(str(cmd)) + #------- All commands all = ft.GetAllCommands(filename, mime) + if all is None: - self.GetAllCmdsTxt().SetValue("") + self.allcommands.SetValue("") else: verbs, commands = all text = pprint.pformat(map(None, verbs, commands)) - self.GetAllCmdsTxt().SetValue(text) - - - # WDR: methods for MimeTypesTestPanel - - def GetListbox(self): - return self.FindWindowById(ID_LISTBOX) - - def GetIconIndexTxt(self): - return self.FindWindowById(ID_ICON_INDEX_TXT) - - def GetIconFileTxt(self): - return self.FindWindowById(ID_ICON_FILE_TXT) - - def GetMimeBtn(self): - return self.FindWindowById(ID_MIME_BTN) - - def GetExtensionBtn(self): - return self.FindWindowById(ID_EXTENSION_Btn) - - def GetAllCmdsTxt(self): - return self.FindWindowById(ID_ALL_CMDS_TXT) - - def GetPrintCmdTxt(self): - return self.FindWindowById(ID_PRINT_CMD_TXT) - - def GetOpenCmdTxt(self): - return self.FindWindowById(ID_OPEN_CMD_TXT) - - def GetDescriptionTxt(self): - return self.FindWindowById(ID_DESCRIPTION_TXT) - - def GetExtensionsTxt(self): - return self.FindWindowById(ID_EXTENSIONS_TXT) - - def GetMimeTypesTxt(self): - return self.FindWindowById(ID_MIME_TYPES_TXT) - - def GetMimeTypeTxt(self): - return self.FindWindowById(ID_MIME_TYPE_TXT) - - def GetIconBmp(self): - return self.FindWindowById(ID_ICON_BMP) - - def GetInputText(self): - return self.FindWindowById(ID_INPUT_TEXT) - - - - + self.allcommands.SetValue(text) + #---------------------------------------------------------------------- def runTest(frame, nb, log): - win = MimeTypesTestPanel(nb, -1) + win = MimeTypesDemoPanel(nb, log) return win - #---------------------------------------------------------------------- - - overview = """\ -""" - - - -import mimetypes_wdr -import images - -def MyBitmapsFunc( index ): - return images.getNoIconBitmap() - -mimetypes_wdr.MyBitmapsFunc = MyBitmapsFunc +The wx.MimeTypesManager class allows the application to retrieve the +information about all known MIME types from a system-specific location and the +filename extensions to the MIME types and vice versa. After initialization the +methods GetFileTypeFromMimeType() and GetFileTypeFromExtension() +may be called: they will return a wx.FileType object which may be further +queried for file description, icon and other attributes. +A global instance of wx.MimeTypesManager is always available as +wx.TheMimeTypesManager. It is recommended to use this instance instead +of creating your own because gathering MIME information may take quite a long +on Unix systems. +This demo shows how to use wx.TheMimeTypesManager to list all known MIME types +and retrieve that information as a wx.FileType from either an extension or +MIME type. +For further information please consult the wxWindows documentation for +wx.MimeTypesManager and wx.FileType. +""" +#---------------------------------------------------------------------- if __name__ == '__main__': import sys,os