diff options
Diffstat (limited to 'Edit/rm/PageBankView.py')
-rw-r--r-- | Edit/rm/PageBankView.py | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/Edit/rm/PageBankView.py b/Edit/rm/PageBankView.py deleted file mode 100644 index fedadef..0000000 --- a/Edit/rm/PageBankView.py +++ /dev/null @@ -1,85 +0,0 @@ -import pygtk -pygtk.require( '2.0' ) -import gtk - -from GUI.GUIConstants import GUIConstants -from GUI.Core.PageView import PageView - -class PageBankView( gtk.Frame ): - - NO_PAGE = -1 - - def __init__( self, selectPageCallback, pageDropCallback ): - gtk.Frame.__init__( self ) - self.table = gtk.Table( 1, GUIConstants.NUMBER_OF_PAGE_BANK_COLUMNS ) - self.add( self.table ) - self.drag_dest_set( gtk.DEST_DEFAULT_ALL, [ ( "tune page", gtk.TARGET_SAME_APP, 11 )], gtk.gdk.ACTION_COPY|gtk.gdk.ACTION_MOVE ) - self.connect( "drag_data_received", self.dragDataReceived ) - self.selectPageCallback = selectPageCallback - self.pageDropCallback = pageDropCallback - self.selectedPageIds = set([]) - self.pageIndexDictionary = {} - self.pageViews = {} - - def dragDataReceived( self, widget, context, x, y, selectionData, info, time): - self.pageDropCallback( selectionData.data ) - - def addPage( self, pageId, invokeCallback = True ): - pageIndex = len( self.pageViews.keys() ) - self.pageIndexDictionary[ pageIndex ] = pageId - - #TODO: resize table to suit number of pages? - #if pageIndex > ( self.table.n-rows * self.table.n_columns ): - # self.table.resize( self.table.n_rows + 1, self.table.n_columns ) - - pageView = PageView( pageIndex, self.selectPage, True ) - self.pageViews[ pageIndex ] = pageView - - columnIndex = pageIndex % GUIConstants.NUMBER_OF_PAGE_BANK_COLUMNS - rowIndex = int( pageIndex / GUIConstants.NUMBER_OF_PAGE_BANK_COLUMNS ) - self.table.attach( pageView, columnIndex, columnIndex + 1, rowIndex, rowIndex + 1, gtk.SHRINK, gtk.SHRINK ) - - self.updateSize( pageView ) - - pageView.drag_source_set( gtk.gdk.BUTTON1_MASK, - [ ( "bank page", gtk.TARGET_SAME_APP, 10 ) ], - gtk.gdk.ACTION_COPY ) - - self.selectPage( pageId, True, invokeCallback ) - - pageView.show() - - def set_size_request( self, width, height ): - gtk.Frame.set_size_request( self, width, height ) - self.table.set_size_request( width, height ) - for pageId in self.pageViews.keys(): - self.updateSize( self.pageViews[ pageId ] ) - - def updateSize( self, pageView ): - pageView.set_size_request( self.get_allocation().width / GUIConstants.NUMBER_OF_PAGE_BANK_COLUMNS, - GUIConstants.PAGE_HEIGHT - 1 ) - - def selectPage( self, selectedPageId, invokeCallback = True, deselectOthers = True ): - if deselectOthers: - for pageId in self.pageViews.keys(): - self.pageViews[ pageId ].setSelected( pageId == selectedPageId ) - if pageId != selectedPageId: - self.selectedPageIds.discard( pageId ) - else: - self.selectedPageIds.add( pageId ) - #nb: pageId might be NO_PAGE, and selectedPageIds can be empty here - - else: - self.pageViews[ selectedPageId ].toggleSelected() - if self.pageViews[ selectedPageId ].selected: - self.selectedPageIds.add( selectedPageId ) - else: - self.selectedPageIds.discard( selectedPageId ) - - if invokeCallback: - self.selectPageCallback( selectedPageId ) - - def getSelectedPageIds( self ): - rval = filter( lambda id: self.pageViews[id].selected == True, self.pageViews.keys()) - return rval - |