-# Copyright
+# Copyright (C) 2010 W. Trevor King <wking@drexel.edu>
+#
+# This file is part of Hooke.
+#
+# Hooke is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# Hooke is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+# Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with Hooke. If not, see
+# <http://www.gnu.org/licenses/>.
"""Menu bar for Hooke.
"""
import wx
from ...util.callback import callback, in_callback
-from . import panel as panel
class Menu (wx.Menu):
class ViewMenu (Menu):
- def __init__(self, callbacks=None, **kwargs):
+ def __init__(self, panels, callbacks=None, **kwargs):
super(ViewMenu, self).__init__(**kwargs)
if callbacks == None:
callbacks = {}
self._callbacks = callbacks
self._c = {}
- for i,panelname in enumerate(sorted(panel.PANELS.keys())):
- text = '%s\tF%d' % (panelname.capitalize(), i+5)
+ for i,panelname in enumerate(sorted([p.managed_name for p in panels])):
+ text = '%s\tF%d' % (panelname, i+5)
self._c[panelname] = self.AppendCheckItem(id=wx.ID_ANY, text=text)
for item in self._c.values():
item.Check()
class HookeMenuBar (MenuBar):
- def __init__(self, callbacks=None, **kwargs):
+ def __init__(self, panels, callbacks=None, **kwargs):
super(HookeMenuBar, self).__init__(**kwargs)
if callbacks == None:
callbacks = {}
# Attach *Menu() instances
for key in ['file', 'view', 'perspective', 'help']:
cap_key = key.capitalize()
+ hot_key = '&' + cap_key
_class = globals()['%sMenu' % cap_key]
- self._c[key] = _class(parent=self, callbacks=callbacks)
- self.Append(self._c[key], cap_key)
+ kwargs = {}
+ if key == 'view':
+ kwargs['panels'] = panels
+ self._c[key] = _class(parent=self, callbacks=callbacks, **kwargs)
+ self.Append(self._c[key], hot_key)