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
예제 #2
0
    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
예제 #3
0
    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
예제 #5
0
    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
예제 #6
0
    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
예제 #7
0
    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
예제 #8
0
    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
예제 #9
0
    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
예제 #10
0
    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)
예제 #11
0
    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
예제 #12
0
 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))
예제 #13
0
    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
예제 #14
0
    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,
                    ),
                ),
            )
예제 #15
0
    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
예제 #16
0
파일: explorer.py 프로젝트: pbrod/pyface
    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_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)
예제 #18
0
 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
예제 #19
0
    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
예제 #21
0
    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"
예제 #22
0
    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
예제 #23
0
    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
예제 #24
0
    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,
                    ),
                ))
예제 #25
0
    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
예제 #26
0
    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
예제 #27
0
    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
예제 #28
0
    def __exit_action_default(self):
        """Trait initializer."""

        return Action(name='E&xit', on_perform=self.workbench.exit)
예제 #29
0
 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,
             ),
         ),
     ]
예제 #30
0
    def _create_action(self, action_definition):
        """ Create an action implementation from a definition. """

        return Action(name=action_definition.class_name)