Source code for pyface.workbench.i_workbench

# (C) Copyright 2005-2023 Enthought, Inc., Austin, TX
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD
# license included in LICENSE.txt and may be redistributed only under
# the conditions described in the aforementioned license. The license
# is also available online at http://www.enthought.com/licenses/BSD.txt
#
# Thanks for using Enthought open source!
""" The workbench interface. """


from traits.api import Event, Instance, Interface, List, Str
from traits.api import VetoableEvent


from .user_perspective_manager import UserPerspectiveManager
from .window_event import WindowEvent, VetoableWindowEvent
from .workbench_window import WorkbenchWindow


[docs]class IWorkbench(Interface): """ The workbench interface. """ # 'IWorkbench' interface ----------------------------------------------- # The active workbench window (the last one to get focus). active_window = Instance(WorkbenchWindow) # The optional application scripting manager. script_manager = Instance("apptools.appscripting.api.IScriptManager") # A directory on the local file system that we can read and write to at # will. This is used to persist window layout information, etc. state_location = Str() # The optional undo manager. undo_manager = Instance("pyface.undo.api.IUndoManager") # The user defined perspectives manager. user_perspective_manager = Instance(UserPerspectiveManager) # All of the workbench windows created by the workbench. windows = List(WorkbenchWindow) # Workbench lifecycle events ---- # Fired when the workbench is about to exit. # # This can be caused by either:- # # a) The 'exit' method being called. # b) The last open window being closed. exiting = VetoableEvent() # Fired when the workbench has exited. # # This is fired after the last open window has been closed. exited = Event() # Window lifecycle events ---- # Fired when a workbench window has been created. window_created = Event(WindowEvent) # Fired when a workbench window is opening. window_opening = Event(VetoableWindowEvent) # Fired when a workbench window has been opened. window_opened = Event(WindowEvent) # Fired when a workbench window is closing. window_closing = Event(VetoableWindowEvent) # Fired when a workbench window has been closed. window_closed = Event(WindowEvent) # ------------------------------------------------------------------------ # 'IWorkbench' interface. # ------------------------------------------------------------------------
[docs] def create_window(self, **kw): """ Factory method that creates a new workbench window. """
[docs] def edit(self, obj, kind=None, use_existing=True): """ Edit an object in the active workbench window. """
[docs] def exit(self): """ Exit the workbench. This closes all open workbench windows. This method is not called when the user clicks the close icon. Nor when they do an Alt+F4 in Windows. It is only called when the application menu File->Exit item is selected. """
[docs] def get_editor(self, obj, kind=None): """ Return the editor that is editing an object. Returns None if no such editor exists. """
[docs] def get_editor_by_id(self, id): """ Return the editor with the specified Id. Returns None if no such editor exists. """