fsleyes.views.viewpanel
¶
This module provides the ViewPanel
class, which is the base-class
for all of the FSLeyes view panels. See the fsleyes
package
documentation for more details.
-
class
fsleyes.views.viewpanel.
ViewPanel
(parent, overlayList, displayCtx, frame)¶ Bases:
fsleyes.panel.FSLeyesPanel
The
ViewPanel
class is the base-class for all FSLeyes views.A
ViewPanel
displays some sort of view of the overlays in anOverlayList
. The settings for aViewPanel
are defined by aDisplayContext
instance.Panels and controls
A
ViewPanel
class uses awx.lib.agw.aui.AuiManager
to lay out its children. AViewPanel
has one central panel, which contains the primary view; and may have one or more secondary panels, which contain controls - see thecontrols
package. The centre panel can be set via thecentrePanel()
property, and secondary panels can be added/removed to/from with thetogglePanel()
method. The current state of a secondary panel (i.e. whether one is open or not) can be queried with theisPanelOpen()
method, and existing secondary panels can be accessed via thegetPanel()
method. Secondary panels must be derived from either theControlPanel
orControlToolBar
base-classes.Profiles
Some
ViewPanel
classes have relatively complex mouse and keyboard interaction behaviour (e.g. theOrthoPanel
andLightBoxPanel
). The logic defines this interaction is provided by aProfile
instance, and is managed by aProfileManager
. SomeViewPanel
classes have multiple interaction profiles - for example, theOrthoPanel
has aview
profile, and anedit
profile. The current interaction profile can be changed with theprofile
property, and can be accessed with thegetCurrentProfile()
method. See theprofiles
package for more information on interaction profiles.Programming interface
The following methods are available on a
Viewpanel
for programmatically controlling its display and layout:Add/remove the secondary panel of the specified type to/from this
ViewPanel
.Returns
True
if a panel of typepanelType
is open,False
otherwise.If an instance of
panelType
exists, it is returned.Returns a list containing all control panels currently shown in this
ViewPanel
.This method should be overridden by sub-classes (if necessary), and should return any
action
methods which should be added to theFSLeyesFrame
Tools menu.Remove this
ViewPanel
from theFSLeyesFrame
.Remove all control panels from this
ViewPanel
.Returns the
AuiPaneInfo
object which contains information about the given control panel.Returns the
wx.lib.agw.aui.AuiManager
object which manages the layout of thisViewPanel
.-
profile
= <MagicMock name='mock.Choice()' id='140735848912272'>¶ The current interaction profile for this
ViewPanel
.
-
__init__
(parent, overlayList, displayCtx, frame)¶ Create a
ViewPanel
. All arguments are passed through to theFSLeyesPanel
constructor.
-
destroy
()¶ Removes some property listeners, destroys all child panels, destroys the
ProfileManager
, andAuiManager
, and callsFSLeyesPanel.destroy()
.
-
initProfile
()¶ Must be called by subclasses, after they have initialised all of the attributes which may be needed by their associated
Profile
instances.
-
getCentrePanel
= <MagicMock name='mock.utils.deprecated.deprecated()()' id='140735846030928'>¶
-
property
centrePanel
¶ Returns the primary (centre) panel on this
ViewPanel
.
-
setCentrePanel
= <MagicMock name='mock.utils.deprecated.deprecated()()' id='140735846030928'>¶
-
togglePanel
(panelType, *args, **kwargs)¶ Add/remove the secondary panel of the specified type to/from this
ViewPanel
.If no keyword argunents are specified, the arguments returned by the
ControlMixin.defaultLayout()
method are returned.- Parameters
panelType – Type of the secondary panel.
args – All positional arguments are passed to the
panelType
constructor.floatPane – If
True
, the secondary panel is initially floated. Defaults toFalse
.floatOnly – If
True
, andfloatPane=True
, the panel will be permanently floated (i.e. it will not be dockable).floatPos – If provided, and
floatPane
isTrue
, specifies the location of the floating panel as(w, h)
proportions between 0 and 1, relative to this view panel.closeable – If
False
, andfloatPane=True
, the panel will not have a close button when it is floated.location – If
floatPane=False
, the initial dock position of the panel - eitherwx.TOP
,wx.BOTTOM
,wx.LEFT
, orwx.RIGHT. Defaults to ``wx.BOTTOM
.title – Title to give the control. If not provided, it is assumed that a title for
panelType
is instrings.titles
.kwargs – All other keyword arguments, are passed to the
panelType
constructor.
Note
The
panelType
type must be a sub-class ofControlPanel
orControlToolBar
, which can be created like so:panel = panelType(parent, overlayList, displayCtx, frame, *args, **kwargs)
Warning
Do not define a control (a.k.a. secondary) panel constructor to accept arguments with the names
floatPane
,floatOnly
,floatPos
,closeable
, orlocation
, as arguments with those names will get eaten by this method before they can be passed to the constructor.
-
isPanelOpen
(panelType)¶ Returns
True
if a panel of typepanelType
is open,False
otherwise.
-
getPanel
(panelType)¶ If an instance of
panelType
exists, it is returned. OtherwiseNone
is returned.
-
removeAllPanels
()¶ Remove all control panels from this
ViewPanel
.
-
removeFromFrame
()¶ Remove this
ViewPanel
from theFSLeyesFrame
.Will raise an error if this
ViewPanel
is not in aFSLeyesFrame
.
-
getPanels
()¶ Returns a list containing all control panels currently shown in this
ViewPanel
.
-
getPanelInfo
(panel)¶ Returns the
AuiPaneInfo
object which contains information about the given control panel.
-
property
auiManager
¶ Returns the
wx.lib.agw.aui.AuiManager
object which manages the layout of thisViewPanel
.
-
getAuiManager
= <MagicMock name='mock.utils.deprecated.deprecated()()' id='140735846030928'>¶
-
getTools
()¶ This method should be overridden by sub-classes (if necessary), and should return any
action
methods which should be added to theFSLeyesFrame
Tools menu.
-
_ViewPanel__auiMgrUpdate
(*args, **kwargs)¶ Called whenever a panel is added/removed to/from this
ViewPanel
.Calls the
Update
method on theAuiManager
instance that is managing this panel.- Parameters
newPanel – Must be passed as a keyword argument. When a new panel is added, it should be passed here.
-
_ViewPanel__onPaneClose
(ev=None, panel=None)¶ Called when the user closes a control (a.k.a. secondary) panel. Calls the
ControlPanel.destroy
/ControlToolBar.destroy
method on the panel.
-
_ViewPanel__profileChanged
(*a)¶ Called when the current
profile
property changes. Tells theProfileManager
about the change.The
ProfileManager
will create a newProfile
instance of the appropriate type.
-
__module__
= 'fsleyes.views.viewpanel'¶
-
-
fsleyes.views.viewpanel.
AuiFloatingFrame__init__
(*args, **kwargs)¶
-
fsleyes.views.viewpanel.
AuiDockingGuide__init__
(*args, **kwargs)¶