From: <sir...@us...> - 2003-03-03 15:37:43
|
Update of /cvsroot/btplusplus/BT++/src/TabTrans In directory sc8-pr-cvs1:/tmp/cvs-serv20564/src/TabTrans Modified Files: Grid.py Log Message: - Reimplemented grid move up/down. Now also handels moving of selections of multiple items. - Added images for move up/down. - Implemented resizing grid columns. - Fixed error with offscreen bitmap allocation(for grid). - Sizes and/or positions of the main window (DlgMain) and the grids columns are now saved. Index: Grid.py =================================================================== RCS file: /cvsroot/btplusplus/BT++/src/TabTrans/Grid.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Grid.py 2 Mar 2003 16:36:28 -0000 1.9 --- Grid.py 3 Mar 2003 15:37:05 -0000 1.10 *************** *** 15,18 **** --- 15,26 ---- } + LabelResize = { + 'Over': false, + 'Active': false, + 'Num': -1, + 'Start': -1, + 'PosX': -1 + } + def __init__(self, parent): wxScrolledWindow.__init__(self, parent, -1, wxPoint(0,0), wxSize(786,335), style = wxSIMPLE_BORDER | wxCLIP_CHILDREN | wxNO_FULL_REPAINT_ON_RESIZE) *************** *** 26,36 **** #self.SetDefaultRowSize(22, false) ! self.Table.SetColSize(0, 230) ! self.Table.SetColSize(1, 80) ! self.Table.SetColSize(2, 80) ! self.Table.SetColSize(3, 70) ! self.Table.SetColSize(4, 120) ! self.Table.SetColSize(5, 70) ! self.Table.SetColSize(6, 90) self.SetScrollRate( 5, 5 ) --- 34,40 ---- #self.SetDefaultRowSize(22, false) ! for col in range(self.Table.GetNumberCols()): ! size = Config.Get('GUI', 'GridCol%i' % col) ! self.Table.SetColSize(col, size) self.SetScrollRate( 5, 5 ) *************** *** 40,45 **** # Menu creation ! self.Menu = wxMenu( '' ) ! self.Menu.Sel = -1 self.itemCancel = wxMenuItem( self.Menu, 1, 'Cancel' ) self.itemResume = wxMenuItem( self.Menu, 2, 'Resume' ) --- 44,48 ---- # Menu creation ! self.Menu = wxMenu('') self.itemCancel = wxMenuItem( self.Menu, 1, 'Cancel' ) self.itemResume = wxMenuItem( self.Menu, 2, 'Resume' ) *************** *** 50,54 **** self.itemCancel.SetBitmap( GetBitmap('Menu_Cancel') ) self.itemResume.SetBitmap( GetBitmap('Menu_Resume') ) ! self.itemPause .SetBitmaps( GetBitmap('Menu_Pause') ) self.Menu.AppendItem( self.itemCancel ) --- 53,59 ---- self.itemCancel.SetBitmap( GetBitmap('Menu_Cancel') ) self.itemResume.SetBitmap( GetBitmap('Menu_Resume') ) ! self.itemPause .SetBitmap( GetBitmap('Menu_Pause') ) ! self.itemUp .SetBitmap( GetBitmap('Menu_MoveUp') ) ! self.itemDown .SetBitmap( GetBitmap('Menu_MoveDown') ) self.Menu.AppendItem( self.itemCancel ) *************** *** 70,74 **** --- 75,82 ---- EVT_LEFT_DOWN( self, self.OnMouseLeftDown ) + EVT_LEFT_UP( self, self.OnMouseLeftUp ) EVT_RIGHT_DOWN( self, self.OnMouseRightDown ) + + EVT_MOTION( self, self.OnMouseMove ) self.DrawTools = { *************** *** 91,94 **** --- 99,103 ---- 'LabelOutlineC3': wxPen( wxColor( 64, 64, 64) ), 'LabelFill': wxBrush( wxColor(212,208,200), wxSOLID ), + 'LabelSizeCursor': wxStockCursor( wxCURSOR_SIZEWE ), 'ArrowBitmap': GetBitmap('Grid_Arrow') *************** *** 113,121 **** ########################################################################################################### - - #def MoveRow(self, evt): - #self.Table.Move(evt.GetMoveRow(), evt.GetBeforeRow()) - - ########################################################################################################### ########################################################################################################### --- 122,125 ---- *************** *** 151,167 **** loaders = self.GetLoaders(self.Selection['Set']) for l in loaders: ! file.StartDownload() ########################################################################################################### def Menu_Up(self, evt): ! sel = self.GetGridCursorRow() ! self.Table.Manager.Move( sel, sel - 1) ########################################################################################################### def Menu_Down(self, evt): ! sel = self.GetGridCursorRow() ! self.Table.Manager.Move( sel, sel + 1) ########################################################################################################### --- 155,186 ---- loaders = self.GetLoaders(self.Selection['Set']) for l in loaders: ! l.StartDownload() ########################################################################################################### def Menu_Up(self, evt): ! self.Selection['Set'].sort() ! new = [] ! ! for i in self.Selection['Set']: ! self.Table.Manager.Move(i, i - 1) ! new.append(i - 1) ! ! self.Selection['Set'] = new ! self.Refresh() ########################################################################################################### def Menu_Down(self, evt): ! self.Selection['Set'].sort() ! self.Selection['Set'].reverse() ! new = [] ! ! for i in self.Selection['Set']: ! self.Table.Manager.Move(i, i + 1) ! new.append(i + 1) ! ! self.Selection['Set'] = new ! self.Refresh() ########################################################################################################### *************** *** 206,211 **** self.itemPause .Enable( pause ) self.itemResume .Enable( resume ) ! self.itemUp .Enable( false ) ! self.itemDown .Enable( false ) self.PopupMenu( self.Menu, evt.GetPosition() ) --- 225,230 ---- self.itemPause .Enable( pause ) self.itemResume .Enable( resume ) ! self.itemUp .Enable( mup ) ! self.itemDown .Enable( mdown ) self.PopupMenu( self.Menu, evt.GetPosition() ) *************** *** 214,218 **** --- 233,268 ---- ########################################################################################################### + def OnMouseMove(self, evt): + if self.LabelResize['Active'] == true: + self.LabelResize['PosX'] = evt.GetX() + self.Refresh() + return + + self.SetCursor( wxNullCursor ) + self.LabelResize['Over'] = false + + if evt.GetY() > self.Table.GetColLabelSize(): + return + + x = evt.GetX() - self.Table.GetRowLabelSize() + + for col in range(self.Table.GetNumberCols()): + x = x - self.Table.GetColSize(col) + + if x <= 0: + break + + if x in [-2, -1, 0, 1, 2]: + self.LabelResize['Over'] = true + self.LabelResize['Num'] = col + self.SetCursor( self.DrawTools['LabelSizeCursor'] ) + + ########################################################################################################### + def OnMouseLeftDown(self, evt): + if self.LabelResize['Over'] == true: + self.LabelResize['Active'] = true + self.LabelResize['Start'] = evt.GetX() + x = evt.GetX() y = evt.GetY() *************** *** 227,230 **** --- 277,298 ---- self.Selection['Set'].append( row ) + self.Refresh() + + def OnMouseLeftUp(self, evt): + if self.LabelResize['Active'] == false: + return + + col = self.LabelResize['Num'] + value = self.LabelResize['Start'] - evt.GetX() + + self.Table.SetColSize( col, + self.Table.GetColSize(col) - value ) + + self.LabelResize['Active'] = false + self.LabelResize['Num'] = -1 + self.LabelResize['Sart'] = -1 + + self.Refresh() + self.OnSize(None) ########################################################################################################### *************** *** 264,268 **** return -1 - return InRow --- 332,335 ---- *************** *** 270,294 **** ########################################################################################################### - #def OnSelectedRange(self, evt): - #if evt.Selecting(): - # adding to the list... - #for index in range( evt.GetTopRow(), evt.GetBottomRow()+1): - #if index not in self.currentSelection: - #self.currentSelection.append( index ) - #else: - # removal from list - #for index in range( evt.GetTopRow(), evt.GetBottomRow()+1): - #while index in self.currentSelection: - #self.currentSelection.remove( index ) - - #evt.Skip() - - #def OnSelectedCell(self, evt): - #self.currentSelection = [ evt.GetRow() ] - #evt.Skip() - - ########################################################################################################### - ########################################################################################################### - #def SetFullSize(self): --- 337,340 ---- *************** *** 302,306 **** try: ! dc = self.BufferDC dc.BeginDrawing() --- 348,354 ---- try: ! dc = self.BufferDC ! w,h = dc.GetSizeTuple() ! dc.BeginDrawing() *************** *** 325,334 **** dc.EndDrawing() ! w, h = dc.GetSizeTuple() ! ondc = wxPaintDC(self) self.PrepareDC(ondc) ondc.BeginDrawing() ondc.Blit(0, 0, w, h, dc, 0, 0 ) ondc.EndDrawing() except: --- 373,390 ---- dc.EndDrawing() ! ! # Copy onto onscreen DC ondc = wxPaintDC(self) self.PrepareDC(ondc) ondc.BeginDrawing() ondc.Blit(0, 0, w, h, dc, 0, 0 ) + + # Draw resize line + if self.LabelResize['Active'] == true: + x = self.LabelResize['PosX'] + + ondc.SetPen( self.DrawTools['HighlightOutline'] ) + ondc.DrawLine( x + 1, 0, x + 1, h ) + ondc.EndDrawing() except: *************** *** 493,497 **** def OnSize(self, evt): cols = range(self.Table.GetNumberCols()) ! rows = range(self.Table.GetNumberCols()) width = self.Table.GetRowLabelSize() --- 549,553 ---- def OnSize(self, evt): cols = range(self.Table.GetNumberCols()) ! rows = range(self.Table.GetNumberRows()) width = self.Table.GetRowLabelSize() *************** *** 514,523 **** ########################################################################################################### - def OnColSize(self, evt): - pass - #self.Table.ResetView() - #self.AdjustScrollbars() - def Destroy(self, evt = wxCloseEvent()): self.Table.Destroy() self.Updater.Shutdown() --- 570,579 ---- ########################################################################################################### def Destroy(self, evt = wxCloseEvent()): + for col in range(self.Table.GetNumberCols()): + Config.Set('GUI', 'GridCol%i' % col, self.Table.GetColSize(col)) + + Config.Save() + self.Table.Destroy() self.Updater.Shutdown() |