-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
For a first-pass at the code, I would like to say you have done a good job. :)
There are a few things that don't quite work as I would expect.
-
Dragging on the minimap and moving the mouse outside the minimap doesnt scroll properly like I've seen other implementations of a minimap do.(either dragging up or down the document)
-
This should be changed
self.SetDoubleBuffered(True)
to
if not self.IsDoubleBuffered():
self.SetDoubleBuffered(True)Robin states that some platforms are already DoubleBuffered by default, and doing it without a check would x4 or in otherwords make performance worse.
- I see double loops often enough that a local opt list comprehension will definitely run faster since the method is pushing into C when dealing with all pixels.
def SetTransparency(self, alpha=0x80):
img = self.bmp.ConvertToImage()
if not img.HasAlpha():
img.InitAlpha()
for x in range(img.Width):
for y in range(img.Height):
img.SetAlpha(x, y, alpha)
self.bmp = img.ConvertToBitmap()would run faster as
def SetTransparency(self, alpha=0x80):
img = self.bmp.ConvertToImage()
if not img.HasAlpha():
img.InitAlpha()
width, height = img.Width, img.Height
SetAlpha = img.SetAlpha
[SetAlpha(x, y, alpha)
for y in range(height)
for x in range(width)]
self.bmp = img.ConvertToBitmap()- As far as the
#INFO, Class with too many parameters: better design strategy?, I personally will put all that stuff with the defaults in the class constructor, so it shows up when you request a calltip, but am not sure if that really should be written another way. I would assume most folks would only use 1 minimap, but I wouldnt rule out someone using it with dynamic sash or multisash type of setup.
I think that's all I see at the moment. Thanks for spending the time to code this thing up! I always had it on my list of widgets to implement, but never seemed to get the time to code one up.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels