Commit f6c433786914fc304f4dd4d7fed6968fabab412a

Authored by Thiago Franco de Moraes
1 parent e7a3a904

Better size to combobox lang in the preferences

Showing 1 changed file with 169 additions and 170 deletions   Show diff stats
invesalius/gui/preferences.py
1   -import wx
2   -import constants as const
3   -from wx.lib.pubsub import pub as Publisher
4   -import session as ses
5   -from language_dialog import ComboBoxLanguage
6   -
7   -ID = wx.NewId()
8   -
9   -try:
10   - from agw import flatnotebook as fnb
11   - AGW = 1
12   -except ImportError: # if it's not there locally, try the wxPython lib.
13   - import wx.lib.agw.flatnotebook as fnb
14   - AGW = 0
15   -
16   -class Preferences(wx.Dialog):
17   -
18   - def __init__( self, parent, id = ID, title = _("Preferences"), size=wx.DefaultSize,\
19   - pos=wx.DefaultPosition, style=wx.DEFAULT_DIALOG_STYLE):
20   -
21   - pre = wx.PreDialog()
22   - pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
23   - pre.Create(parent, ID, title, pos, size, style)
24   -
25   - self.PostCreate(pre)
26   -
27   - sizer = wx.BoxSizer(wx.VERTICAL)
28   -
29   - bookStyle = fnb.FNB_NODRAG | fnb.FNB_NO_NAV_BUTTONS | fnb.FNB_NO_X_BUTTON
30   -
31   - if AGW:
32   - self.book = fnb.FlatNotebook(self, wx.ID_ANY, agwStyle=bookStyle)
33   - else:
34   - self.book = fnb.FlatNotebook(self, wx.ID_ANY, agwStyle=bookStyle)
35   -
36   - sizer.Add(self.book, 80, wx.EXPAND|wx.ALL)
37   -
38   - self.pnl_viewer3d = Viewer3D(self)
39   - self.pnl_language = Language(self)
40   -
41   - self.book.AddPage(self.pnl_viewer3d, _("Visualization"))
42   - self.book.AddPage(self.pnl_language, _("Language"))
43   -
44   - line = wx.StaticLine(self, -1, size=(20,-1), style=wx.LI_HORIZONTAL)
45   - sizer.Add(line, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.TOP, 5)
46   -
47   - btnsizer = wx.StdDialogButtonSizer()
48   -
49   - btn = wx.Button(self, wx.ID_OK)
50   - btnsizer.AddButton(btn)
51   -
52   - btn = wx.Button(self, wx.ID_CANCEL)
53   - btnsizer.AddButton(btn)
54   -
55   - btnsizer.Realize()
56   -
57   - sizer.AddSizer(btnsizer, 10, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.TOP|wx.BOTTOM, 5)
58   -
59   - self.SetSizer(sizer)
60   - sizer.Fit(self)
61   -
62   - self.__bind_events()
63   -
64   - def __bind_events(self):
65   - Publisher.subscribe(self.LoadPreferences, 'Load Preferences')
66   -
67   -
68   - def GetPreferences(self):
69   - values = {}
70   - lang = self.pnl_language.GetSelection()
71   - viewer = self.pnl_viewer3d.GetSelection()
72   - values.update(lang)
73   - values.update(viewer)
74   - return values
75   -
76   - def LoadPreferences(self, pub_evt):
77   - se = ses.Session()
78   - values = {const.RENDERING:se.rendering,
79   - const.SURFACE_INTERPOLATION:se.surface_interpolation,
80   - const.LANGUAGE:se.language
81   - }
82   -
83   - self.pnl_viewer3d.LoadSelection(values)
84   - self.pnl_language.LoadSelection(values)
85   -
86   -
87   -
88   -class Viewer3D(wx.Panel):
89   -
90   - def __init__(self, parent):
91   -
92   - wx.Panel.__init__(self, parent)
93   -
94   -
95   - box_visualization = wx.StaticBox(self, -1, _("Surface"))
96   - bsizer = wx.StaticBoxSizer(box_visualization, wx.VERTICAL)
97   -
98   - lbl_inter = wx.StaticText(self, -1, _("Interpolation "))
99   - bsizer.Add(lbl_inter, 0, wx.TOP|wx.LEFT, 10)
100   -
101   - rb_inter = self.rb_inter = wx.RadioBox(self, -1, "", wx.DefaultPosition, wx.DefaultSize,
102   - ['Flat','Gouraud','Phong'], 3, wx.RA_SPECIFY_COLS | wx.NO_BORDER)
103   -
104   - bsizer.Add(rb_inter, 0, wx.TOP|wx.LEFT, 0)
105   -
106   - box_rendering = wx.StaticBox(self, -1, _("Volume rendering"))
107   - bsizer_ren = wx.StaticBoxSizer(box_rendering, wx.VERTICAL)
108   -
109   - lbl_rendering = wx.StaticText(self, -1, _("Rendering"))
110   - bsizer_ren.Add(lbl_rendering, 0, wx.TOP | wx.LEFT, 10)
111   -
112   - rb_rendering = self.rb_rendering = wx.RadioBox(self, -1, "", wx.DefaultPosition, wx.DefaultSize,
113   - ['CPU', _(u'GPU (NVidia video cards only)')], 2, wx.RA_SPECIFY_COLS | wx.NO_BORDER)
114   -
115   - bsizer_ren.Add(rb_rendering, 0, wx.TOP | wx.LEFT, 0)
116   - border = wx.BoxSizer(wx.VERTICAL)
117   - border.Add(bsizer, 50, wx.EXPAND|wx.ALL, 10)
118   - border.Add(bsizer_ren, 50, wx.EXPAND|wx.ALL, 10)
119   - self.SetSizer(border)
120   -
121   - border.Fit(self)
122   -
123   -
124   - def GetSelection(self):
125   -
126   - options = {const.RENDERING:self.rb_rendering.GetSelection(),
127   - const.SURFACE_INTERPOLATION:self.rb_inter.GetSelection()}
128   -
129   - return options
130   -
131   - def LoadSelection(self, values):
132   - rendering = values[const.RENDERING]
133   - surface_interpolation = values[const.SURFACE_INTERPOLATION]
134   -
135   - self.rb_rendering.SetSelection(int(rendering))
136   - self.rb_inter.SetSelection(int(surface_interpolation))
137   -
138   -class Language(wx.Panel):
139   -
140   - def __init__(self, parent):
141   -
142   - wx.Panel.__init__(self, parent)
143   -
144   - self.lg = lg = ComboBoxLanguage(self)
145   - self.cmb_lang = cmb_lang = lg.GetComboBox()
146   -
147   - box = wx.StaticBox(self, -1, _("Language"))
148   - bsizer = wx.StaticBoxSizer(box, wx.VERTICAL)
149   -
150   - text = wx.StaticText(self, -1, _("Language settings will be applied \n the next time InVesalius starts."))
151   - bsizer.Add(cmb_lang, 0, wx.TOP|wx.CENTER, 20)
152   - bsizer.Add(text, 0, wx.TOP|wx.CENTER, 10)
153   -
154   - border = wx.BoxSizer()
155   - border.Add(bsizer, 1, wx.EXPAND|wx.ALL, 20)
156   - self.SetSizer(border)
157   -
158   - border.Fit(self)
159   -
160   - def GetSelection(self):
161   - selection = self.cmb_lang.GetSelection()
162   - locales = self.lg.GetLocalesKey()
163   - options = {const.LANGUAGE:locales[selection]}
164   - return options
165   -
166   - def LoadSelection(self, values):
167   - language = values[const.LANGUAGE]
168   - locales = self.lg.GetLocalesKey()
169   - selection = locales.index(language)
170   - self.cmb_lang.SetSelection(int(selection))
  1 +import wx
  2 +import constants as const
  3 +from wx.lib.pubsub import pub as Publisher
  4 +import session as ses
  5 +from language_dialog import ComboBoxLanguage
  6 +
  7 +ID = wx.NewId()
  8 +
  9 +try:
  10 + from agw import flatnotebook as fnb
  11 + AGW = 1
  12 +except ImportError: # if it's not there locally, try the wxPython lib.
  13 + import wx.lib.agw.flatnotebook as fnb
  14 + AGW = 0
  15 +
  16 +class Preferences(wx.Dialog):
  17 +
  18 + def __init__( self, parent, id = ID, title = _("Preferences"), size=wx.DefaultSize,\
  19 + pos=wx.DefaultPosition, style=wx.DEFAULT_DIALOG_STYLE):
  20 +
  21 + pre = wx.PreDialog()
  22 + pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
  23 + pre.Create(parent, ID, title, pos, size, style)
  24 +
  25 + self.PostCreate(pre)
  26 +
  27 + sizer = wx.BoxSizer(wx.VERTICAL)
  28 +
  29 + bookStyle = fnb.FNB_NODRAG | fnb.FNB_NO_NAV_BUTTONS | fnb.FNB_NO_X_BUTTON
  30 +
  31 + if AGW:
  32 + self.book = fnb.FlatNotebook(self, wx.ID_ANY, agwStyle=bookStyle)
  33 + else:
  34 + self.book = fnb.FlatNotebook(self, wx.ID_ANY, agwStyle=bookStyle)
  35 +
  36 + sizer.Add(self.book, 80, wx.EXPAND|wx.ALL)
  37 +
  38 + self.pnl_viewer3d = Viewer3D(self)
  39 + self.pnl_language = Language(self)
  40 +
  41 + self.book.AddPage(self.pnl_viewer3d, _("Visualization"))
  42 + self.book.AddPage(self.pnl_language, _("Language"))
  43 +
  44 + line = wx.StaticLine(self, -1, size=(20,-1), style=wx.LI_HORIZONTAL)
  45 + sizer.Add(line, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.TOP, 5)
  46 +
  47 + btnsizer = wx.StdDialogButtonSizer()
  48 +
  49 + btn = wx.Button(self, wx.ID_OK)
  50 + btnsizer.AddButton(btn)
  51 +
  52 + btn = wx.Button(self, wx.ID_CANCEL)
  53 + btnsizer.AddButton(btn)
  54 +
  55 + btnsizer.Realize()
  56 +
  57 + sizer.AddSizer(btnsizer, 10, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.TOP|wx.BOTTOM, 5)
  58 +
  59 + self.SetSizer(sizer)
  60 + sizer.Fit(self)
  61 +
  62 + self.__bind_events()
  63 +
  64 + def __bind_events(self):
  65 + Publisher.subscribe(self.LoadPreferences, 'Load Preferences')
  66 +
  67 +
  68 + def GetPreferences(self):
  69 + values = {}
  70 + lang = self.pnl_language.GetSelection()
  71 + viewer = self.pnl_viewer3d.GetSelection()
  72 + values.update(lang)
  73 + values.update(viewer)
  74 + return values
  75 +
  76 + def LoadPreferences(self, pub_evt):
  77 + se = ses.Session()
  78 + values = {const.RENDERING:se.rendering,
  79 + const.SURFACE_INTERPOLATION:se.surface_interpolation,
  80 + const.LANGUAGE:se.language
  81 + }
  82 +
  83 + self.pnl_viewer3d.LoadSelection(values)
  84 + self.pnl_language.LoadSelection(values)
  85 +
  86 +
  87 +
  88 +class Viewer3D(wx.Panel):
  89 +
  90 + def __init__(self, parent):
  91 +
  92 + wx.Panel.__init__(self, parent)
  93 +
  94 +
  95 + box_visualization = wx.StaticBox(self, -1, _("Surface"))
  96 + bsizer = wx.StaticBoxSizer(box_visualization, wx.VERTICAL)
  97 +
  98 + lbl_inter = wx.StaticText(self, -1, _("Interpolation "))
  99 + bsizer.Add(lbl_inter, 0, wx.TOP|wx.LEFT, 10)
  100 +
  101 + rb_inter = self.rb_inter = wx.RadioBox(self, -1, "", wx.DefaultPosition, wx.DefaultSize,
  102 + ['Flat','Gouraud','Phong'], 3, wx.RA_SPECIFY_COLS | wx.NO_BORDER)
  103 +
  104 + bsizer.Add(rb_inter, 0, wx.TOP|wx.LEFT, 0)
  105 +
  106 + box_rendering = wx.StaticBox(self, -1, _("Volume rendering"))
  107 + bsizer_ren = wx.StaticBoxSizer(box_rendering, wx.VERTICAL)
  108 +
  109 + lbl_rendering = wx.StaticText(self, -1, _("Rendering"))
  110 + bsizer_ren.Add(lbl_rendering, 0, wx.TOP | wx.LEFT, 10)
  111 +
  112 + rb_rendering = self.rb_rendering = wx.RadioBox(self, -1, "", wx.DefaultPosition, wx.DefaultSize,
  113 + ['CPU', _(u'GPU (NVidia video cards only)')], 2, wx.RA_SPECIFY_COLS | wx.NO_BORDER)
  114 +
  115 + bsizer_ren.Add(rb_rendering, 0, wx.TOP | wx.LEFT, 0)
  116 + border = wx.BoxSizer(wx.VERTICAL)
  117 + border.Add(bsizer, 50, wx.EXPAND|wx.ALL, 10)
  118 + border.Add(bsizer_ren, 50, wx.EXPAND|wx.ALL, 10)
  119 + self.SetSizer(border)
  120 +
  121 + border.Fit(self)
  122 +
  123 +
  124 + def GetSelection(self):
  125 +
  126 + options = {const.RENDERING:self.rb_rendering.GetSelection(),
  127 + const.SURFACE_INTERPOLATION:self.rb_inter.GetSelection()}
  128 +
  129 + return options
  130 +
  131 + def LoadSelection(self, values):
  132 + rendering = values[const.RENDERING]
  133 + surface_interpolation = values[const.SURFACE_INTERPOLATION]
  134 +
  135 + self.rb_rendering.SetSelection(int(rendering))
  136 + self.rb_inter.SetSelection(int(surface_interpolation))
  137 +
  138 +class Language(wx.Panel):
  139 +
  140 + def __init__(self, parent):
  141 +
  142 + wx.Panel.__init__(self, parent)
  143 +
  144 + self.lg = lg = ComboBoxLanguage(self)
  145 + self.cmb_lang = cmb_lang = lg.GetComboBox()
  146 +
  147 + box = wx.StaticBox(self, -1, _("Language"))
  148 + bsizer = wx.StaticBoxSizer(box, wx.VERTICAL)
  149 +
  150 + text = wx.StaticText(self, -1, _("Language settings will be applied \n the next time InVesalius starts."))
  151 + bsizer.Add(cmb_lang, 0, wx.EXPAND)
  152 + bsizer.AddSpacer(5)
  153 + bsizer.Add(text, 0, wx.EXPAND)
  154 +
  155 + border = wx.BoxSizer()
  156 + border.Add(bsizer, 1, wx.EXPAND|wx.ALL, 20)
  157 + self.SetSizerAndFit(border)
  158 +
  159 + def GetSelection(self):
  160 + selection = self.cmb_lang.GetSelection()
  161 + locales = self.lg.GetLocalesKey()
  162 + options = {const.LANGUAGE:locales[selection]}
  163 + return options
  164 +
  165 + def LoadSelection(self, values):
  166 + language = values[const.LANGUAGE]
  167 + locales = self.lg.GetLocalesKey()
  168 + selection = locales.index(language)
  169 + self.cmb_lang.SetSelection(int(selection))
... ...