X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fdc775af55c604458345c7045b8478fa230e3bce..eb3efe0d4b8a0964cd0504a69c0e9540c18e390c:/wxPython/wx/lib/filebrowsebutton.py diff --git a/wxPython/wx/lib/filebrowsebutton.py b/wxPython/wx/lib/filebrowsebutton.py index 230551d419..0620161d11 100644 --- a/wxPython/wx/lib/filebrowsebutton.py +++ b/wxPython/wx/lib/filebrowsebutton.py @@ -52,7 +52,7 @@ class FileBrowseButton(wx.Panel): :param startDirectory: Default directory for file dialog startup :param fileMask: File mask (glob pattern, such as *.*) to use in file dialog :param fileMode: wx.OPEN or wx.SAVE, indicates type of file dialog to use - :param changeCallback: callback receives all changes in value of control + :param changeCallback: Optional callback called for all changes in value of the control """ # store variables @@ -68,12 +68,6 @@ class FileBrowseButton(wx.Panel): self.callCallback = True - # get background to match it - try: - self._bc = parent.GetBackgroundColour() - except: - pass - # create the dialog self.createDialog(parent, id, pos, size, style ) # Setting a value causes the changeCallback to be called. @@ -86,11 +80,8 @@ class FileBrowseButton(wx.Panel): def createDialog( self, parent, id, pos, size, style ): """Setup the graphic representation of the dialog""" wx.Panel.__init__ (self, parent, id, pos, size, style) - # try to set the background colour - try: - self.SetBackgroundColour(self._bc) - except: - pass + self.SetMinSize(size) # play nice with sizers + box = wx.BoxSizer(wx.HORIZONTAL) self.label = self.createLabel( ) @@ -251,8 +242,8 @@ class FileBrowseButtonWithHistory( FileBrowseButton ): textControl.SetToolTipString( self.toolTip ) textControl.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus) if self.changeCallback: - textControl.Bind(wx.EVT_TEXT, self.changeCallback) - textControl.Bind(wx.EVT_COMBOBOX, self.changeCallback) + textControl.Bind(wx.EVT_TEXT, self.OnChanged) + textControl.Bind(wx.EVT_COMBOBOX, self.OnChanged) if self.history: history=self.history self.history=None @@ -298,8 +289,10 @@ class FileBrowseButtonWithHistory( FileBrowseButton ): """Return the current history list""" if self.historyCallBack != None: return self.historyCallBack() - else: + elif self.history: return list( self.history ) + else: + return [] def OnSetFocus(self, event): @@ -340,18 +333,27 @@ class DirBrowseButton(FileBrowseButton): dialogTitle = '', startDirectory = '.', changeCallback = None, - dialogClass = wx.DirDialog): + dialogClass = wx.DirDialog, + newDirectory = False): FileBrowseButton.__init__(self, parent, id, pos, size, style, labelText, buttonText, toolTip, dialogTitle, startDirectory, changeCallback = changeCallback) self.dialogClass = dialogClass + self.newDirectory = newDirectory # def OnBrowse(self, ev = None): + style=0 + + if self.newDirectory: + style|=wx.DD_NEW_DIR_BUTTON + dialog = self.dialogClass(self, message = self.dialogTitle, - defaultPath = self.startDirectory) + defaultPath = self.startDirectory, + style = style) + if dialog.ShowModal() == wx.ID_OK: self.SetValue(dialog.GetPath()) dialog.Destroy()