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,6 +120,7 @@ invesalius/gui/widgets/clut_raycasting.py -text | ||
| 120 | invesalius/gui/widgets/foldpanelbar.py -text | 120 | invesalius/gui/widgets/foldpanelbar.py -text |
| 121 | invesalius/gui/widgets/gradient.py -text | 121 | invesalius/gui/widgets/gradient.py -text |
| 122 | invesalius/gui/widgets/listctrl.py -text | 122 | invesalius/gui/widgets/listctrl.py -text |
| 123 | +invesalius/gui/widgets/slice_menu.py -text | ||
| 123 | invesalius/invesalius.py -text | 124 | invesalius/invesalius.py -text |
| 124 | invesalius/presets.py -text | 125 | invesalius/presets.py -text |
| 125 | invesalius/project.py -text | 126 | invesalius/project.py -text |
| @@ -0,0 +1,49 @@ | @@ -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 | + |