From 3ad0a469f37c7714458a7ebda5b1374e16571d2f Mon Sep 17 00:00:00 2001 From: Nick Hall Date: Tue, 6 Apr 2010 16:34:35 +0000 Subject: [PATCH] Add base class for sidebar plugins svn: r15038 --- src/gui/Makefile.am | 1 + src/gui/basesidebar.py | 56 ++++++++++++++++++++++++++ src/plugins/sidebar/categorysidebar.py | 3 +- 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 src/gui/basesidebar.py diff --git a/src/gui/Makefile.am b/src/gui/Makefile.am index 0f30dad49..25d610e9b 100644 --- a/src/gui/Makefile.am +++ b/src/gui/Makefile.am @@ -13,6 +13,7 @@ pkgdatadir = $(datadir)/@PACKAGE@/gui pkgdata_PYTHON = \ __init__.py \ + basesidebar.py \ columnorder.py \ configure.py \ dbguielement.py \ diff --git a/src/gui/basesidebar.py b/src/gui/basesidebar.py new file mode 100644 index 000000000..239072be5 --- /dev/null +++ b/src/gui/basesidebar.py @@ -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 diff --git a/src/plugins/sidebar/categorysidebar.py b/src/plugins/sidebar/categorysidebar.py index 949e722fa..22b5dfc55 100644 --- a/src/plugins/sidebar/categorysidebar.py +++ b/src/plugins/sidebar/categorysidebar.py @@ -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.