From 1fcc777030bb0ca9d3768edf21bd0de704032c62 Mon Sep 17 00:00:00 2001 From: amartin Date: Tue, 20 Feb 2007 22:43:12 +0000 Subject: sample notes --- (limited to 'Edit/TuneInterface.py') diff --git a/Edit/TuneInterface.py b/Edit/TuneInterface.py index cc070b8..b5597cd 100644 --- a/Edit/TuneInterface.py +++ b/Edit/TuneInterface.py @@ -157,7 +157,7 @@ class TuneInterface( gtk.EventBox ): self.alloced = False self.width = self.baseWidth = self.height = -1 self.waitingForAlloc = True - self.scrollTo = -1 + self.scrollTo = None self.clickX = -1 self.set_size_request( self.width, self.height ) @@ -192,9 +192,10 @@ class TuneInterface( gtk.EventBox ): self.pageY = (self.height-Config.PAGE_THUMBNAIL_HEIGHT)//2 - if self.scrollTo >= 0: - self.adjustment.set_value( self.scrollTo ) - self.scrollTo = -1 + if self.scrollTo != None: + if self.scrollTo >= 0: self.adjustment.set_value( self.scrollTo ) + else: self.adjustment.set_value( self.width - self.baseWidth ) + self.scrollTo = None self.waitingForAlloc = False @@ -368,8 +369,6 @@ class TuneInterface( gtk.EventBox ): startX = self.pageOffset + ind*Config.PAGE_THUMBNAIL_WIDTH stopX = startX + Config.PAGE_THUMBNAIL_WIDTH - self.invalidate_rect( startX, 0, Config.PAGE_THUMBNAIL_WIDTH, self.height ) - if self.adjustment.value > startX: scroll = startX + Config.PAGE_THUMBNAIL_WIDTH + Config.PAGE_THUMBNAIL_WIDTH_DIV2 - self.baseWidth if scroll < 0: scroll = 0 @@ -377,11 +376,17 @@ class TuneInterface( gtk.EventBox ): elif self.adjustment.value + self.baseWidth < stopX: scroll = startX - Config.PAGE_THUMBNAIL_WIDTH_DIV2 if scroll + self.baseWidth > self.width: - scroll = stopX - self.baseWidth - if self.waitingForAlloc: - self.scrollTo = scroll - else: - self.adjustment.set_value( scroll ) + if self.waitingForAlloc: + self.scrollTo = -1 + else: + self.adjustment.set_value( self.width - self.baseWidth ) + else: + if self.waitingForAlloc: + self.scrollTo = scroll + else: + self.adjustment.set_value( scroll ) + + self.invalidate_rect( startX, 0, Config.PAGE_THUMBNAIL_WIDTH, self.height ) def selectPage( self, id, exclusive = True ): if exclusive: @@ -517,9 +522,11 @@ class TuneInterface( gtk.EventBox ): stopX = event.area.x + event.area.width stopY = event.area.y + event.area.height - # draw bg for pageOffset + self.gc.set_clip_rectangle( self.clearMask ) + + # draw background self.gc.foreground = self.bgColor - drawingArea.window.draw_rectangle( self.gc, True, 0, 0, self.pageOffset, Config.PAGE_THUMBNAIL_HEIGHT ) + drawingArea.window.draw_rectangle( self.gc, True, startX, startY, event.area.width, event.area.height ) tracks = [ self.owner.getTrackSelected(i) for i in range(Config.NUMBER_OF_TRACKS) ] @@ -539,8 +546,8 @@ class TuneInterface( gtk.EventBox ): if self.thumbnailDirty[pageId]: self.gc.set_clip_origin( 0, 0 ) self.drawThumbnail( pageId, self.thumbnail[pageId], self.thumbnailDirtyRect[pageId] ) - self.gc.set_clip_origin( x, 0 ) - drawingArea.window.draw_drawable( self.gc, self.thumbnail[pageId], 0, 0, x, 0, Config.PAGE_THUMBNAIL_WIDTH, Config.PAGE_THUMBNAIL_HEIGHT ) + self.gc.set_clip_origin( x, self.pageY ) + drawingArea.window.draw_drawable( self.gc, self.thumbnail[pageId], 0, 0, x, self.pageY, Config.PAGE_THUMBNAIL_WIDTH, Config.PAGE_THUMBNAIL_HEIGHT ) # draw border if necessary if pageId == self.displayedPage: # displayed page border @@ -550,8 +557,8 @@ class TuneInterface( gtk.EventBox ): drawingArea.window.draw_rectangle( self.gc, True, x + self.trackRect[i][0], self.trackRect[i][1], self.trackRect[i][2], self.trackRect[i][3] ) self.gc.set_function( gtk.gdk.COPY ) self.gc.foreground = self.displayedColor - self.gc.set_clip_origin( x - Config.PAGE_THUMBNAIL_WIDTH, 0 ) - drawingArea.window.draw_rectangle( self.gc, True, x, 0, Config.PAGE_THUMBNAIL_WIDTH, Config.PAGE_THUMBNAIL_HEIGHT ) + self.gc.set_clip_origin( x - Config.PAGE_THUMBNAIL_WIDTH, self.pageY ) + drawingArea.window.draw_rectangle( self.gc, True, x, self.pageY, Config.PAGE_THUMBNAIL_WIDTH, Config.PAGE_THUMBNAIL_HEIGHT ) elif pageId in self.selectedIds: # selected page border self.gc.set_function( gtk.gdk.INVERT ) for i in range(Config.NUMBER_OF_TRACKS): @@ -559,18 +566,11 @@ class TuneInterface( gtk.EventBox ): drawingArea.window.draw_rectangle( self.gc, True, x + self.trackRect[i][0], self.trackRect[i][1], self.trackRect[i][2], self.trackRect[i][3] ) self.gc.set_function( gtk.gdk.COPY ) self.gc.foreground = self.selectedColor - self.gc.set_clip_origin( x - Config.PAGE_THUMBNAIL_WIDTH, 0 ) - drawingArea.window.draw_rectangle( self.gc, True, x, 0, Config.PAGE_THUMBNAIL_WIDTH, Config.PAGE_THUMBNAIL_HEIGHT ) + self.gc.set_clip_origin( x - Config.PAGE_THUMBNAIL_WIDTH, self.pageY ) + drawingArea.window.draw_rectangle( self.gc, True, x, self.pageY, Config.PAGE_THUMBNAIL_WIDTH, Config.PAGE_THUMBNAIL_HEIGHT ) x += Config.PAGE_THUMBNAIL_WIDTH - self.gc.set_clip_rectangle( self.clearMask ) - - # fill in extra background - if x < self.width: - self.gc.foreground = self.bgColor - drawingArea.window.draw_rectangle( self.gc, True, x, 0, self.width-x, Config.PAGE_THUMBNAIL_HEIGHT ) - # draw drop marker if self.dropAt >= 0: self.gc.set_line_attributes( self.dropWidth, gtk.gdk.LINE_SOLID, gtk.gdk.CAP_ROUND, gtk.gdk.JOIN_MITER ) @@ -581,6 +581,8 @@ class TuneInterface( gtk.EventBox ): if self.alloced == False: return if x < self.visibleX: x = self.visibleX if x + width > self.visibleEndX: width = self.visibleEndX - x + if width <= 0: return + self.dirtyRectToAdd.x = x self.dirtyRectToAdd.y = y self.dirtyRectToAdd.width = width -- cgit v0.9.1