def __init__(self, parent): wx.Panel.__init__(self, parent, -1) # Create a dataview control self.dvc = dv.DataViewCtrl(self, style=wx.BORDER_THEME | dv.DV_ROW_LINES | dv.DV_VERT_RULES | dv.DV_MULTIPLE) self.model = DataModel([]) self.dvc.AssociateModel(self.model) self.dvc.AppendTextColumn("path", 1, width=170) self.dvc.AppendTextColumn("title", 2, width=300, mode=dv.DATAVIEW_CELL_EDITABLE) self.dvc.AppendProgressColumn("progress", 3, width=130) self.dvc.AppendTextColumn("status", 4, width=300, mode=dv.DATAVIEW_CELL_EDITABLE) # set the Sizer property (same as SetSizer) self.Sizer = wx.BoxSizer(wx.VERTICAL) self.Sizer.Add(self.dvc, 1, wx.EXPAND) b2 = wx.Button(self, label="Add files") self.Bind(wx.EVT_BUTTON, self.OnAddRow, b2) self.button_add = b2 b3 = wx.Button(self, label="Delete selected") b3.Enable(False) self.Bind(wx.EVT_BUTTON, self.OnDeleteRows, b3) self.button_delete = b3 b5 = wx.Button(self, label="Start upload") b5.Enable(False) self.Bind(wx.EVT_BUTTON, self.start_upload, b5) self.button_upload_start = b5 b6 = wx.Button(self, label="Stop upload") b6.Enable(False) self.Bind(wx.EVT_BUTTON, self.stop_upload, b6) self.button_upload_stop = b6 self.in_progress = False self.files_in_progress = 0 btnbox = wx.BoxSizer(wx.HORIZONTAL) btnbox.Add(b2, 0, wx.LEFT | wx.RIGHT, 5) btnbox.Add(b3, 0, wx.LEFT | wx.RIGHT, 5) btnbox.Add(b5, 0, wx.LEFT | wx.RIGHT, 5) btnbox.Add(b6, 0, wx.LEFT | wx.RIGHT, 5) self.Sizer.Add(btnbox, 0, wx.TOP | wx.BOTTOM, 5) # Bind some events so we can see what the DVC sends us self.Bind(dv.EVT_DATAVIEW_ITEM_START_EDITING, self.on_before_edit, self.dvc) # self.Bind(dv.EVT_DATAVIEW_ITEM_EDITING_DONE, self.OnEditingDone, self.dvc) # self.Bind(dv.EVT_DATAVIEW_ITEM_VALUE_CHANGED, self.OnValueChanged, self.dvc) self.Bind(dv.EVT_DATAVIEW_ITEM_ACTIVATED, self.RightClick, self.dvc) parent.Bind(wx.EVT_CLOSE, self.OnClose) self.parent = parent # worker stuff self.enclosure_queue = Queue() self.worker = None # drop file_drop_target = MyFileDropTarget(self.on_drop) self.SetDropTarget(file_drop_target) auth = OAuth(self) self.oauth = auth if not auth.ShowModal(): self.parent.Close()