def __init__(self, **traits): """ Creates a new application window. """ # Base class constructor. super(MainWindow, self).__init__(**traits) # Add a menu bar. self.menu_bar_manager = MenuBarManager( MenuManager( Action( name='E&xit', on_perform=self.close), name='&File', )) # Add a menu bar at each location. self.add_tool_bar( ToolBarManager( Action(name='Foo'), orientation='horizontal')) self.add_tool_bar( ToolBarManager( Action(name='Bar'), orientation='horizontal'), location='bottom') self.add_tool_bar( ToolBarManager( Action(name='Baz'), orientation='vertical'), location='left') self.add_tool_bar( ToolBarManager( Action(name='Buz'), orientation='vertical'), location='right') return
def _create_action(self, definition): """ Create an action implementation from an action definition. """ traits = {'window': self.window} # Override any traits that can be set in the definition. if len(definition.name) > 0: traits['name'] = definition.name if len(definition.class_name) > 0: action = self._actions.get(definition.class_name) if action is None: klass = self._import_symbol(definition.class_name) action = klass(**traits) self._actions[definition.class_name] = action # fixme: Do we ever actually do this? It seems that in Envisage 3.x # we always specify an action class!?! else: action = Action(**traits) # fixme: We need to associate the action set with the action to # allow for dynamic enabling/disabling etc. This is a *very* hacky # way to do it! action._action_set_ = definition._action_set_ return action
def __init__(self, **traits): """ Creates a new application window. """ # Base class constructor. super().__init__(**traits) # Add a menu bar. self.menu_bar_manager = MenuBarManager( MenuManager( Action(name="E&xit", on_perform=self.close), name="&File" ) ) # Add a menu bar at each location. self.add_tool_bar( ToolBarManager(Action(name="Foo"), orientation="horizontal") ) self.add_tool_bar( ToolBarManager(Action(name="Bar"), orientation="horizontal"), location="bottom", ) self.add_tool_bar( ToolBarManager(Action(name="Baz"), orientation="vertical"), location="left", ) self.add_tool_bar( ToolBarManager(Action(name="Buz"), orientation="vertical"), location="right", ) return
def _create_action(self, definition): """ Create an action implementation from an action definition. """ traits = {'window' : self.window} # Override any traits that can be set in the definition. if len(definition.name) > 0: traits['name'] = definition.name if len(definition.class_name) > 0: action = self._actions.get(definition.class_name) if action is None: klass = self._import_symbol(definition.class_name) action = klass(**traits) self._actions[definition.class_name] = action # fixme: Do we ever actually do this? It seems that in Envisage 3.x # we always specify an action class!?! else: action = Action(**traits) # fixme: We need to associate the action set with the action to # allow for dynamic enabling/disabling etc. This is a *very* hacky # way to do it! action._action_set_ = definition._action_set_ return action
def build_menu(self): menu_entries = [] if STYLE_EDITOR_ACTION_NAME in self.action_list: action = Action(name=STYLE_EDITOR_ACTION_NAME, on_perform=self.request_style_editor) menu_entries.append(action) menu_entries.append(Separator()) if FILE_EXPORT_ACTION_NAME in self.action_list: action = Action(name=FILE_EXPORT_ACTION_NAME, on_perform=self.export_plot_to_file) menu_entries.append(action) menu_entries.append(Separator()) if DELETE_ACTION_NAME in self.action_list: action = Action(name=DELETE_ACTION_NAME, on_perform=self.request_delete) menu_entries.append(action) menu_entries.append(Separator()) if CREATE_TEMPLATE_ACTION_NAME in self.action_list: action = Action(name=CREATE_TEMPLATE_ACTION_NAME, on_perform=self.request_plot_template) menu_entries.append(action) menu_entries.append(Separator()) menu = MenuManager(*menu_entries) return menu
def get_context_menu(self, pos): """ Returns a context menu containing split/collapse actions pos : position (in global coordinates) where the context menu was requested """ menu = Menu() splitter = None splitter = None for tabwidget in self.tabwidgets(): # obtain tabwidget's bounding rectangle in global coordinates global_rect = QtCore.QRect(tabwidget.mapToGlobal(QtCore.QPoint(0, 0)), tabwidget.size()) if global_rect.contains(pos): splitter = tabwidget.parent() # no split/collapse context menu for positions outside any tabwidget # region if not splitter: return # add split actions (only show for non-empty tabwidgets) if not splitter.is_empty(): actions = [Action(id='split_hor', name='Create new pane to the right', on_perform=lambda : splitter.split(orientation= QtCore.Qt.Horizontal)), Action(id='split_ver', name='Create new pane to the bottom', on_perform=lambda : splitter.split(orientation= QtCore.Qt.Vertical))] splitgroup = Group(*actions, id='split') menu.append(splitgroup) # add collapse action (only show for collapsible splitters) if splitter.is_collapsible(): if splitter is splitter.parent().leftchild: if splitter.parent().orientation() is QtCore.Qt.Horizontal: text = 'Merge with right pane' else: text = 'Merge with bottom pane' else: if splitter.parent().orientation() is QtCore.Qt.Horizontal: text = 'Merge with left pane' else: text = 'Merge with top pane' actions = [Action(id='merge', name=text, on_perform=lambda : splitter.collapse())] collapsegroup = Group(*actions, id='collapse') menu.append(collapsegroup) # return QMenu object return menu
def _management_actions_default(self): """Return the management actions to manage the policy.""" actions = [] perm = ManagePolicyPermission() act = Action(name='&Role Definitions...', on_perform=role_definition) actions.append(SecureProxy(act, permissions=[perm], show=False)) act = Action(name='&Role Assignments...', on_perform=role_assignment) actions.append(SecureProxy(act, permissions=[perm], show=False)) return actions
def __init__(self, **traits): """ Creates a new application window. """ # Base class constructor. super(MainWindow, self).__init__(**traits) # Add a menu bar. self.menu_bar_manager = MenuBarManager( MenuManager(Action(name='&Open...', on_perform=self._open_file), Action(name='&Save', on_perform=self._save_file), Action(name='E&xit', on_perform=self.close), name='&File')) return
def __init__(self, **traits): """ Creates a new application window. """ # Base class constructor. super().__init__(**traits) # Add a menu bar. self.menu_bar_manager = MenuBarManager( MenuManager( Action(name="E&xit", on_perform=self.close), Action(name="DoIt", on_perform=_main), name="&File", )) return
def setUp(self): """ Create some dummy actions to use while testing. """ for i in range(1, 7): action_id = 'action%i' % i setattr(self, action_id, Action(id=action_id, name='Action %i' % i))
def on_popup(self, event): pos = event.GetPosition() selected = self.HitTest(pos) if selected == -1: event.Skip() return e = self.linked_base.editor d = e.document t = e.task segment = d.segments[selected] # include disabled action showing the name of the segment clicked upon # because it may be different than the selected item name = segment.name if not name: name = str(segment) actions = [ Action(name=name, task=t, enabled=False), None, ] if selected > 0: actions.append(SelectSegmentInAllAction(segment_number=selected, task=t)) actions.append(ParseSubSegmentsAction(segment_number=selected, task=t)) if segment != d.container_segment: actions.append(SetSegmentOriginAction(segment_number=selected, task=t)) actions.append(DeleteUserSegmentAction(segment_number=selected, task=t)) actions.append(None) savers = e.get_extra_segment_savers(segment) savers.extend(segment.savers) for saver in savers: action = SaveSegmentAsFormatAction(saver=saver, segment_number=selected, task=t, name="Save as %s" % saver.export_data_name) actions.append(action) if actions: e.popup_context_menu_from_actions(self, actions)
def __init__(self, **traits): """ Creates a new application window. """ # Base class constructor. super(MainWindow, self).__init__(**traits) # Create an action that exits the application. exit_action = Action(name='E&xit', on_perform=self.close) # Add a menu bar. self.menu_bar_manager = MenuBarManager( MenuManager(exit_action, name='&File')) # Add some tool bars. self.tool_bar_managers = [ ToolBarManager(exit_action, name='Tool Bar 1', show_tool_names=False), ToolBarManager(exit_action, name='Tool Bar 2', show_tool_names=False), ToolBarManager(exit_action, name='Tool Bar 3', show_tool_names=False), ] # Add a status bar. self.status_bar_manager = StatusBarManager() self.status_bar_manager.message = 'Example application window' return
def __init__(self, **traits): """ Creates a new application window. """ # Base class constructor. super(MainWindow, self).__init__(**traits) # Add a menu bar. self.menu_bar_manager = MenuBarManager( MenuManager( Action(name='Start Timer', on_perform=self._start_timer), Action(name='Stop Timer', on_perform=self._stop_timer), Action(name='E&xit', on_perform=self.close), name='&File', )) return
def __new_person_action_default(self): """Trait initializer.""" # Create the action and secure it with the appropriate permission. act = Action(name='New Person', on_perform=self._new_person) act = SecureProxy(act, permissions=[NewPersonPerm]) return act
def __init__(self, **traits): """ Creates a new application window. """ # Base class constructor. super().__init__(**traits) # Add a menu bar. self.menu_bar_manager = MenuBarManager( MenuManager( Group( Action( name="&Open...", accelerator="Ctrl+O", on_perform=self.on_open_file, ), Action( name="&Save", accelerator="Ctrl+S", on_perform=self.on_save_file, ), id="document_group", ), Action(name="&Close", accelerator="Ctrl+W", on_perform=self.close), name="&File", )) # Add a tool bar if we are using qt4 - wx has layout issues if toolkit_object.toolkit == "qt4": from pygments.styles import STYLE_MAP styles = list(STYLE_MAP) self.tool_bar_manager = ToolBarManager( Group( Action(name="Open...", on_perform=self.on_open_file), Action(name="Save", on_perform=self.on_save_file), Action(name="Close", on_perform=self.close), id="document_group", ), Group( Action( name="Lines", style="toggle", on_perform=self.on_show_line_numbers, checked=True, ), FieldAction( name="Style", field_type=ComboField, field_defaults={ "values": styles, "value": "default", "tooltip": "Style", }, on_perform=self.on_style_changed, ), ), )
def _create_window(self): box = Box(bounds=[100.0, 100.0], position=[50.0, 50.0]) menu = MenuManager() menu.append(Action(name="Hello World", on_perform=self.hello)) context_menu = ContextMenuTool(component=box, menu_manager=menu) box.tools.append(context_menu) container = Container(bounds=[500, 500]) container.add(box) return Window(self, -1, component=container)
def _create_action_bars(self): """ Creates the window's menu, tool and status bars. """ # Common actions. highest = Action(name="Highest", style="radio") higher = Action(name="Higher", style="radio", checked=True) lower = Action(name="Lower", style="radio") lowest = Action(name="Lowest", style="radio") self._actions = [highest, higher, lower, lowest] # Menu bar. self.menu_bar_manager = MenuBarManager( MenuManager( ExampleAction(name="Foogle"), Separator(), highest, higher, lower, lowest, Separator(), Action(name="E&xit", on_perform=self.close), name="&File", )) # Tool bar. self.tool_bar_manager = ToolBarManager( ExampleAction(name="Foo"), Separator(), ExampleAction(name="Bar"), Separator(), ExampleAction(name="Baz"), Separator(), highest, higher, lower, lowest, ) # Status bar. self.status_bar_manager = StatusBarManager() return
def _create_contents(self, parent): """ Creates the window contents. """ actions = [] for i in range(25): actions.append(Action(name='Foo', style='radio', image=ImageResource('document'))) tool_palette = ToolPaletteManager( *actions ) return tool_palette.create_tool_palette(parent).control
def _actions_default(self): actions = [ Group( Action(tooltip="View the Mayavi pipeline", image=ImageResource('m2', search_path=self.image_search_path), on_perform=self.show_engine, ), ), ] actions.extend(DecoratedScene._actions_default(self)) return actions
def __init__(self, **traits): """ Creates a new application window. """ # Base class constructor. super(MainWindow, self).__init__(**traits) # Add a menu bar. self.menu_bar_manager = MenuBarManager( MenuManager(Group( Action(name='&Open...', accelerator='Ctrl+O', on_perform=self.on_open_file), Action(name='&Save', accelerator='Ctrl+S', on_perform=self.on_save_file), id='document_group', ), Action(name='&Close', accelerator='Ctrl+W', on_perform=self.close), name='&File'))
def __init__(self, **traits): """ Creates a new application window. """ # Base class constructor. super(MainWindow, self).__init__(**traits) # Create an action that exits the application. exit_action = Action(name='E&xit', on_perform=self.close) self.exit_action = exit_action # Test action to toggle visibility of exit action and some action groups test_action = Action(name='&Toggle', on_perform=self.toggle) # Add a menu bar. self.menu_bar_manager = MenuBarManager( MenuManager(exit_action, name='&File')) # Add some tool bars, with the first one subdivided into action groups self.tool_bar_managers = [ ToolBarManager( Group(exit_action, exit_action, id='a'), Group(id='b'), # empty, so will remain hidden Group(exit_action, exit_action, id='c'), Group(exit_action, test_action, exit_action, id='d'), name='Tool Bar 1', show_tool_names=False), ToolBarManager(exit_action, name='Tool Bar 2', show_tool_names=False), ToolBarManager(test_action, name='Tool Bar 3', show_tool_names=False), ] # Add a status bar. self.status_bar_manager = StatusBarManager() self.status_bar_manager.message = 'Example application window' return
def __init__(self, **traits): """ Creates a new application window. """ # Base class constructor. super().__init__(**traits) # Create an action that exits the application. exit_action = Action(name="E&xit", on_perform=self.close) self.exit_action = exit_action # Test action to toggle visibility of exit action and some action groups test_action = Action(name="&Toggle", on_perform=self.toggle) # Add a menu bar. self.menu_bar_manager = MenuBarManager( MenuManager(exit_action, name="&File") ) # Add some tool bars, with the first one subdivided into action groups self.tool_bar_managers = [ ToolBarManager( Group(exit_action, exit_action, id="a"), Group(id="b"), # empty, so will remain hidden Group(exit_action, exit_action, id="c"), Group(exit_action, test_action, exit_action, id="d"), name="Tool Bar 1", show_tool_names=True, ), ToolBarManager( exit_action, name="Tool Bar 2", show_tool_names=True ), ToolBarManager( test_action, name="Tool Bar 3", show_tool_names=True ), ] # Add a status bar. self.status_bar_manager = StatusBarManager() self.status_bar_manager.message = "Example application window"
def _create_action_bars(self): """ Creates the window's menu, tool and status bars. """ # Common actions. highest = Action(name='Highest', style='radio') higher = Action(name='Higher', style='radio', checked=True) lower = Action(name='Lower', style='radio') lowest = Action(name='Lowest', style='radio') self._actions = [highest, higher, lower, lowest] # Menu bar. self.menu_bar_manager = MenuBarManager( MenuManager( ExampleAction(name='Foogle'), Separator(), highest, higher, lower, lowest, Separator(), Action(name='E&xit', on_perform=self.close), name='&File', )) # Tool bar. self.tool_bar_manager = ToolBarManager(ExampleAction(name='Foo'), Separator(), ExampleAction(name='Bar'), Separator(), ExampleAction(name='Baz'), Separator(), highest, higher, lower, lowest) # Status bar. self.status_bar_manager = StatusBarManager() return
def _menu_bar_manager_default(self): # Create an action that exits the application. exit_action = Action(name='E&xit', on_perform=self.close) self.exit_action = exit_action file_menu = MenuManager(name='&File') file_menu.append(Group(exit_action)) self.undo = UndoAction(undo_manager=self.undo_manager, accelerator='Ctrl+Z') self.redo = RedoAction(undo_manager=self.undo_manager, accelerator='Ctrl+Shift+Z') menu_bar_manager = MenuBarManager( file_menu, MenuManager(self.undo, self.redo, name='&Edit')) return menu_bar_manager
def __init__(self, **traits): """ Creates a new application window. """ # Base class constructor. super(MainWindow, self).__init__(**traits) # Add a menu bar. self.menu_bar_manager = MenuBarManager( MenuManager(Group( Action(name='&Open...', accelerator='Ctrl+O', on_perform=self.on_open_file), Action(name='&Save', accelerator='Ctrl+S', on_perform=self.on_save_file), id='document_group', ), Action(name='&Close', accelerator='Ctrl+W', on_perform=self.close), name='&File')) # Add a tool bar if we are using qt4 - wx has layout issues if toolkit_object.toolkit == 'qt4': from pygments.styles import STYLE_MAP styles = list(STYLE_MAP) self.tool_bar_manager = ToolBarManager( Group( Action(name='Open...', on_perform=self.on_open_file), Action(name='Save', on_perform=self.on_save_file), Action(name='Close', on_perform=self.close), id='document_group', ), Group( Action( name="Lines", style='toggle', on_perform=self.on_show_line_numbers, checked=True, ), FieldAction( name='Style', field_type=ComboField, field_defaults={ 'values': styles, 'value': 'default', 'tooltip': 'Style', }, on_perform=self.on_style_changed, ), ))
def _management_actions_default(self): """Return the list of management actions.""" from apptools.permissions.secure_proxy import SecureProxy user_db = self.user_db actions = [] perm = ManageUsersPermission() if user_db.can_add_user: act = Action(name="&Add a User...", on_perform=user_db.add_user) actions.append(SecureProxy(act, permissions=[perm], show=False)) if user_db.can_modify_user: act = Action(name="&Modify a User...", on_perform=user_db.modify_user) actions.append(SecureProxy(act, permissions=[perm], show=False)) if user_db.can_delete_user: act = Action(name="&Delete a User...", on_perform=user_db.delete_user) actions.append(SecureProxy(act, permissions=[perm], show=False)) return actions
def __init__(self, **traits): """ Creates a new application window. """ # Base class constructor. super(MainWindow, self).__init__(**traits) # Add a menu bar. self.menu_bar_manager = MenuBarManager( MenuManager(Action(name="E&xit", on_perform=self.close), name="&File"), MDIWindowMenu(self), ) # Set the size of the window self.size = (640, 480) return
def test_widget_context_menu_cleanup(self): widget = self._create_widget() with patch.object(widget, '_context_menu_updated', return_value=None) as updated: widget._create() try: widget.show(True) self.gui.process_events() finally: widget.destroy() self.gui.process_events() widget.context_menu = MenuManager(Action(name="Test"), name="Test") updated.assert_not_called() widget = None
def __exit_action_default(self): """Trait initializer.""" return Action(name='E&xit', on_perform=self.workbench.exit)
def _actions_default(self): return [ Group( Action( image=ImageResource( '16x16/x-axis', search_path=[self._get_image_path()], ), tooltip="View along the -X axis", on_perform=self.x_minus_view, ), Action( image=ImageResource( '16x16/x-axis', search_path=[self._get_image_path()], ), tooltip="View along the +X axis", on_perform=self.x_plus_view, ), Action( image=ImageResource( '16x16/y-axis', search_path=[self._get_image_path()], ), tooltip="View along the -Y axis", on_perform=self.y_minus_view, ), Action( image=ImageResource( '16x16/y-axis', search_path=[self._get_image_path()], ), tooltip="View along the +Y axis", on_perform=self.y_plus_view, ), Action( image=ImageResource( '16x16/z-axis', search_path=[self._get_image_path()], ), tooltip="View along the -Z axis", on_perform=self.z_minus_view, ), Action( image=ImageResource( '16x16/z-axis', search_path=[self._get_image_path()], ), tooltip="View along the +Z axis", on_perform=self.z_plus_view, ), Action( image=ImageResource( '16x16/isometric', search_path=[self._get_image_path()], ), tooltip="Obtain an isometric view", on_perform=self.isometric_view, ), ), Group( Action( image=ImageResource( '16x16/parallel', search_path=[self._get_image_path()], ), tooltip='Toggle parallel projection', style="toggle", on_perform=self._toggle_projection, checked=self.parallel_projection, ), Action( image=ImageResource( '16x16/origin_glyph', search_path=[self._get_image_path()], ), tooltip='Toggle axes indicator', style="toggle", enabled=(self.marker is not None), on_perform=self._toggle_axes, checked=self.show_axes, ), Action( image=ImageResource( '16x16/fullscreen', search_path=[self._get_image_path()], ), tooltip= 'Full Screen (press "q" or "e" or ESC to exit fullscreen)', style="push", on_perform=self._full_screen_fired, ), ), Group( Action( image=ImageResource( '16x16/save', search_path=[self._get_image_path()], ), tooltip="Save a snapshot of this scene", on_perform=self._save_snapshot, ), Action( image=ImageResource( '16x16/configure', search_path=[self._get_image_path()], ), tooltip='Configure the scene', style="push", on_perform=self._configure_scene, ), ), ]
def _create_action(self, action_definition): """ Create an action implementation from a definition. """ return Action(name=action_definition.class_name)