Commit c5bb280ebcdab55f04094eed3a9a509c668295bf
1 parent
bf066ca0
Exists in
master
and in
68 other branches
ADD: SliceMenu Class
Showing
2 changed files
with
50 additions
and
0 deletions
Show diff stats
.gitattributes
| ... | ... | @@ -120,6 +120,7 @@ invesalius/gui/widgets/clut_raycasting.py -text |
| 120 | 120 | invesalius/gui/widgets/foldpanelbar.py -text |
| 121 | 121 | invesalius/gui/widgets/gradient.py -text |
| 122 | 122 | invesalius/gui/widgets/listctrl.py -text |
| 123 | +invesalius/gui/widgets/slice_menu.py -text | |
| 123 | 124 | invesalius/invesalius.py -text |
| 124 | 125 | invesalius/presets.py -text |
| 125 | 126 | invesalius/project.py -text | ... | ... |
| ... | ... | @@ -0,0 +1,49 @@ |
| 1 | +#!/usr/bin/env python | |
| 2 | +# -*- coding: UTF-8 -*- | |
| 3 | + | |
| 4 | +#-------------------------------------------------------------------------- | |
| 5 | +# Software: InVesalius - Software de Reconstrucao 3D de Imagens Medicas | |
| 6 | +# Copyright: (C) 2001 Centro de Pesquisas Renato Archer | |
| 7 | +# Homepage: http://www.softwarepublico.gov.br | |
| 8 | +# Contact: invesalius@cti.gov.br | |
| 9 | +# License: GNU - GPL 2 (LICENSE.txt/LICENCA.txt) | |
| 10 | +#-------------------------------------------------------------------------- | |
| 11 | +# Este programa e software livre; voce pode redistribui-lo e/ou | |
| 12 | +# modifica-lo sob os termos da Licenca Publica Geral GNU, conforme | |
| 13 | +# publicada pela Free Software Foundation; de acordo com a versao 2 | |
| 14 | +# da Licenca. | |
| 15 | +# | |
| 16 | +# Este programa eh distribuido na expectativa de ser util, mas SEM | |
| 17 | +# QUALQUER GARANTIA; sem mesmo a garantia implicita de | |
| 18 | +# COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM | |
| 19 | +# PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais | |
| 20 | +# detalhes. | |
| 21 | +#-------------------------------------------------------------------------- | |
| 22 | + | |
| 23 | +import wx | |
| 24 | +import wx.lib.pubsub as ps | |
| 25 | +import constants as const | |
| 26 | + | |
| 27 | +class SliceMenu(wx.Menu): | |
| 28 | + def __init__(self): | |
| 29 | + wx.Menu.__init__(self) | |
| 30 | + self.ID_TO_TOOL_ITEM = {} | |
| 31 | + submenu_wl = wx.Menu() | |
| 32 | + for name in sorted(const.WINDOW_LEVEL): | |
| 33 | + new_id = wx.NewId() | |
| 34 | + wl_item = wx.MenuItem(submenu_wl, new_id,\ | |
| 35 | + name, kind=wx.ITEM_RADIO) | |
| 36 | + submenu_wl.AppendItem(wl_item) | |
| 37 | + self.ID_TO_TOOL_ITEM[new_id] = name | |
| 38 | + self.AppendMenu(-1, "Window Width & Level", submenu_wl) | |
| 39 | + self.Bind(wx.EVT_MENU, self.OnPopupWindowLevel) | |
| 40 | + | |
| 41 | + | |
| 42 | + def OnPopupWindowLevel(self, evt): | |
| 43 | + key = self.ID_TO_TOOL_ITEM[evt.GetId()] | |
| 44 | + window, level = const.WINDOW_LEVEL[key] | |
| 45 | + ps.Publisher().sendMessage('Bright and contrast adjustment image', | |
| 46 | + (window, level)) | |
| 47 | + ps.Publisher().sendMessage('Update slice viewer') | |
| 48 | + evt.Skip() | |
| 49 | + | ... | ... |