Commit 338470d1b2bb38b1e901b053d0a96808ae0842c5

Authored by Paulo Henrique Junqueira Amorim
1 parent d996d582

ADD: Pseudo colors

Showing 1 changed file with 36 additions and 9 deletions   Show diff stats
invesalius/gui/widgets/slice_menu.py
@@ -29,24 +29,51 @@ class SliceMenu(wx.Menu): @@ -29,24 +29,51 @@ class SliceMenu(wx.Menu):
29 def __init__(self): 29 def __init__(self):
30 wx.Menu.__init__(self) 30 wx.Menu.__init__(self)
31 self.ID_TO_TOOL_ITEM = {} 31 self.ID_TO_TOOL_ITEM = {}
  32 + new_id = 0
  33 +
32 submenu_wl = wx.Menu() 34 submenu_wl = wx.Menu()
33 for name in sorted(const.WINDOW_LEVEL): 35 for name in sorted(const.WINDOW_LEVEL):
34 - new_id = wx.NewId()  
35 wl_item = wx.MenuItem(submenu_wl, new_id,\ 36 wl_item = wx.MenuItem(submenu_wl, new_id,\
36 name, kind=wx.ITEM_RADIO) 37 name, kind=wx.ITEM_RADIO)
37 submenu_wl.AppendItem(wl_item) 38 submenu_wl.AppendItem(wl_item)
38 self.ID_TO_TOOL_ITEM[new_id] = name 39 self.ID_TO_TOOL_ITEM[new_id] = name
  40 + new_id += 1
  41 +
  42 + submenu_pseudo_colors = wx.Menu()
  43 + for name in sorted(const.SLICE_COLOR_TABLE):
  44 + new_id += 1
  45 + color_item = wx.MenuItem(submenu_wl, new_id,\
  46 + name, kind=wx.ITEM_RADIO)
  47 + submenu_pseudo_colors.AppendItem(color_item)
  48 + self.ID_TO_TOOL_ITEM[new_id] = name
  49 +
39 self.AppendMenu(-1, "Window Width & Level", submenu_wl) 50 self.AppendMenu(-1, "Window Width & Level", submenu_wl)
  51 + self.AppendMenu(-1, "Pseudo Colors", submenu_pseudo_colors)
  52 +
40 # It doesn't work in Linux 53 # It doesn't work in Linux
41 - self.Bind(wx.EVT_MENU, self.OnPopupWindowLevel) 54 + self.Bind(wx.EVT_MENU, self.OnPopup)
42 # In Linux the bind must be putted in the submenu 55 # In Linux the bind must be putted in the submenu
43 if sys.platform == 'linux2': 56 if sys.platform == 'linux2':
44 - submenu_wl.Bind(wx.EVT_MENU, self.OnPopupWindowLevel)  
45 -  
46 - def OnPopupWindowLevel(self, evt): 57 + submenu_wl.Bind(wx.EVT_MENU, self.OnPopup)
  58 + submenu_pseudo_colors.Bind(wx.EVT_MENU, self.OnPopup)
  59 +
  60 + def OnPopup(self, evt):
  61 +
  62 + id = evt.GetId()
47 key = self.ID_TO_TOOL_ITEM[evt.GetId()] 63 key = self.ID_TO_TOOL_ITEM[evt.GetId()]
48 - window, level = const.WINDOW_LEVEL[key]  
49 - ps.Publisher().sendMessage('Bright and contrast adjustment image',  
50 - (window, level))  
51 - ps.Publisher().sendMessage('Update slice viewer') 64 +
  65 + if (id <= len(const.WINDOW_LEVEL)):
  66 + window, level = const.WINDOW_LEVEL[key]
  67 + ps.Publisher().sendMessage('Bright and contrast adjustment image',
  68 + (window, level))
  69 + ps.Publisher().sendMessage('Update slice viewer')
  70 +
  71 + elif(id > len(const.WINDOW_LEVEL) and\
  72 + (id <= len(const.SLICE_COLOR_TABLE) + len(const.WINDOW_LEVEL))):
  73 + values = const.SLICE_COLOR_TABLE[key]
  74 +
  75 + ps.Publisher().sendMessage('Change color table from background image', values)
  76 + ps.Publisher().sendMessage('Update slice viewer')
  77 +
52 evt.Skip() 78 evt.Skip()
  79 +