Add base class for sidebar plugins

svn: r15038
This commit is contained in:
Nick Hall 2010-04-06 16:34:35 +00:00
parent ffffb7047c
commit 3ad0a469f3
3 changed files with 59 additions and 1 deletions

View File

@ -13,6 +13,7 @@ pkgdatadir = $(datadir)/@PACKAGE@/gui
pkgdata_PYTHON = \
__init__.py \
basesidebar.py \
columnorder.py \
configure.py \
dbguielement.py \

56
src/gui/basesidebar.py Normal file
View File

@ -0,0 +1,56 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2010 Nick Hall
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# $Id$
#-------------------------------------------------------------------------
#
# BaseSidebar class
#
#-------------------------------------------------------------------------
class BaseSidebar(object):
"""
The base class for all sidebar plugins.
"""
def __init__(self, dbstate, uistate):
raise NotImplementedError
def get_top(self):
"""
Return the top container widget for the GUI.
"""
raise NotImplementedError
def view_changed(self, page_num):
"""
Called when the active view is changed.
"""
raise NotImplementedError
def handlers_block(self):
"""
Block signals to the buttons to prevent spurious events.
"""
raise NotImplementedError
def handlers_unblock(self):
"""
Unblock signals to the buttons.
"""
raise NotImplementedError

View File

@ -35,6 +35,7 @@ import gtk
#
#-------------------------------------------------------------------------
import config
from gui.basesidebar import BaseSidebar
from gui.viewmanager import get_available_views, views_to_show
#-------------------------------------------------------------------------
@ -75,7 +76,7 @@ CATEGORY_ICON = {
# CategorySidebar class
#
#-------------------------------------------------------------------------
class CategorySidebar(object):
class CategorySidebar(BaseSidebar):
"""
A sidebar displaying a column of toggle buttons that allows the user to
change the current view.