def set_cmap(self, msg):
"""
Verify that requested cmap is in the list (or it's reversed equivalent) and set it
msg is tuple: (pause_redraw_image, new_cmap)
"""
pause_redraw_image, new_cmap = msg
old_cmap = self.cmap
lower_available_cmaps = [a.lower() for a in self.available_cmaps]
if new_cmap.lower() in lower_available_cmaps:
self.cmap = self.available_cmaps[lower_available_cmaps.index(new_cmap.lower())]
self.set_cmap_inverted(((pause_redraw_image or self._pause_redraw_image), False))
elif new_cmap.replace('_r', '').lower() in lower_available_cmaps:
self.cmap = self.available_cmaps[lower_available_cmaps.index(new_cmap.lower().replace('_r', ''))]
self.set_cmap_inverted(((pause_redraw_image or self._pause_redraw_image), True))
elif (new_cmap.lower() + '_r') in lower_available_cmaps:
self.cmap = self.available_cmaps[lower_available_cmaps.index(new_cmap.lower() + '_r')]
self.set_cmap_inverted(((pause_redraw_image or self._pause_redraw_image), True))
else:
sys.stderr.write("unrecognized cmap ({}) requested\n".format(new_cmap))
if self.cmap != old_cmap:
wx.CallAfter(pub.sendMessage, 'cmap-changed', msg=None)
if not (pause_redraw_image or self._pause_redraw_image):
wx.CallAfter(pub.sendMessage, 'redraw-image', msg=False)
评论列表
文章目录