Added docstrings.

This commit is contained in:
Einar Ryeng 2006-10-17 17:50:42 +00:00
parent f7ededa451
commit 1f9a400057

View File

@ -80,12 +80,17 @@ class ObjectTable:
class ViewFrame (gtk.Frame):
"""
A ViewFrame is a gtk bin that contains a view.
A ViewFrame is a gtk container widget that contains a View.
The ViewFrame is either active or inactive, and belongs to a group of
VeiwFrames of which only one can be active at any time.
"""
def __init__(self, view_frames):
"""Initializes a new ViewFrame.
@param view_frames: A list of view frames to which the new view
frame shouls belong. Only one ViewFrame in this list can be
active at any time.
"""
gtk.Frame.__init__(self)
self.focused = False
self.view_frames = view_frames
@ -101,7 +106,7 @@ class ViewFrame (gtk.Frame):
vbox.pack_start(gtk.HSeparator(), expand=False)
self._ebox_button_event = ebox.connect("button-press-event",
self.on_button_press_event)
self._on_button_press_event)
## Keep the references for later use.
self._vbox = vbox
self._ebox = ebox
@ -123,14 +128,16 @@ class ViewFrame (gtk.Frame):
# Set view
self._view = self.empty_view
self._view.connect("button-press-event", self.on_button_press_event)
self._view.connect("button-press-event", self._on_button_press_event)
self._vbox.add(self._view)
self._view_title.set_text(self._view.title)
self.show_all()
self._view.show()
def focus(self):
"""Gets focus and ensures that no other window is in focus."""
"""Gets focus and ensures that no other ViewFrame in the same set
is in focus.
"""
if self.focused:
self.emit('focus-changed', self, True)
return self
@ -155,7 +162,9 @@ class ViewFrame (gtk.Frame):
self.emit('focus-changed', self, False)
def set_view(self, view):
"""Set view to view or to empty view if parameter is None"""
"""Set view to view or to empty view if parameter is None
@param view: An instance of View
"""
# if None is passed, use empty view
if view == None:
@ -174,7 +183,7 @@ class ViewFrame (gtk.Frame):
self._view.disconnect(self._button_event)
self._button_event = view.connect("button-press-event",
self.on_button_press_event)
self._on_button_press_event)
# remove old view, set new view
if self._view:
@ -190,12 +199,15 @@ class ViewFrame (gtk.Frame):
self._view = view
def get_view(self):
"""Returns current view, or None if the empty view is set."""
"""Returns current view, or None if the empty view is set.
@returns: None if the ViewFrame is currently displaying it's
EmptyView. Otherwise it returns the currently displeyd View.
"""
if self._view == self.empty_view:
return None
return self._view
def on_button_press_event(self, widget, event):
def _on_button_press_event(self, widget, event):
if not self.focused:
self.focus()
@ -211,6 +223,12 @@ class ViewFrame (gtk.Frame):
class MainView (gtk.Notebook):
"""The MainView class displays the Views in Fluents.
MainView, of which there is normally only one instance, contains a
gtk.Table that holds all the visible Views, and a single ViewFrame
that is used for maximizing plots.
"""
def __init__(self):
gtk.Notebook.__init__(self)
self.set_show_tabs(False)
@ -222,7 +240,7 @@ class MainView (gtk.Notebook):
self.update_small_views()
for vf in self._view_frames:
vf.connect('focus-changed', self.on_view_focus_changed)
vf.connect('focus-changed', self._on_view_focus_changed)
self.append_page(self._small_views)
self.append_page(self._large_view)
@ -293,28 +311,39 @@ class MainView (gtk.Notebook):
self.set_current_page(0)
def insert_view(self, view):
"""Set a view in the currently active ViewFrame"""
"""Set a view in the currently active ViewFrame.
@param view: An instance of View.
"""
if self.get_current_page() == 0:
vf = self.get_active_small_view()
else:
vf = self._large_view
vf.set_view(view)
def set_all_plots(self, plots):
"""Displays all the plots in the list plots, and hides all other plots"""
def set_all_plots(self, views):
"""Displays all the views in the list, and hides all other views.
Loops through all ViewFrames from top left to bottom right, and sets
their currently active View to the next view in the list. After the
last view is placed in a ViewFrame, the remaining ViewFrames are
emptied.
@param views: A list of views to set.
"""
for y in range(self._views.ysize):
for x in range(self._views.xsize):
if plots:
self._views[x, y].set_view(plots.pop())
if views:
self._views[x, y].set_view(views.pop())
else:
self._views[x, y].set_view(None)
def on_view_focus_changed(self, widget, vf, focused):
def _on_view_focus_changed(self, widget, vf, focused):
if focused:
self.emit('view-changed', vf)
def resize_table(self, width, height):
"""Resizes the list of small views.
"""
## Hide all plots that will be removed from the screen.
for x in range(self._views.xsize):
for y in range(self._views.ysize):
@ -335,12 +364,14 @@ class MainView (gtk.Notebook):
class View (gtk.Frame):
"""The base class of everything that is shown in the center view of fluents.
"""The base class of everything that is shown in the center view of
fluents.
Most views should rather subclass Plot, which automatically handles freezing and
toolbars, and sets up matplotlib Figure and Canvas objects.
Most views should rather subclass Plot, which automatically handles
freezing, creates a toolbar, and sets up matplotlib Figure and Canvas
objects.
"""
def __init__(self, title):
gtk.Frame.__init__(self)
self.title = title