diff options
Diffstat (limited to 'timer-applet/src/timerapplet/ui/ScrollableButtonList.py')
-rw-r--r-- | timer-applet/src/timerapplet/ui/ScrollableButtonList.py | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/timer-applet/src/timerapplet/ui/ScrollableButtonList.py b/timer-applet/src/timerapplet/ui/ScrollableButtonList.py deleted file mode 100644 index 0af6e51d..00000000 --- a/timer-applet/src/timerapplet/ui/ScrollableButtonList.py +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright (C) 2008 Jimmy Do <[email protected]> -# -# 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -import gtk - -def get_scroll_value_to_reveal_widget(widget_rect, viewport_rect, scroll_val): - if widget_rect.y < scroll_val: - scroll_val = widget_rect.y - elif widget_rect.y + widget_rect.height + 1 > scroll_val + viewport_rect.height: - scroll_val = widget_rect.y + widget_rect.height + 1 - viewport_rect.height - return scroll_val - -class ScrollableButtonList(gtk.ScrolledWindow): - def __init__(self): - gtk.ScrolledWindow.__init__(self) - - self._vadjust = gtk.Adjustment() - self._vbox = gtk.VBox() - self._viewport = gtk.Viewport() - - self.set_vadjustment(self._vadjust) - self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) - self._viewport.modify_bg(gtk.STATE_NORMAL, self.style.base[gtk.STATE_NORMAL]) - - self._viewport.add(self._vbox) - self.add(self._viewport) - - self._vbox.show() - self._viewport.show() - - def add_button(self, button): - button.connect('focus-in-event', self._on_focus) - button.connect('clicked', self._on_clicked) - self._vbox.pack_start(button, False, False) - - def get_buttons(self): - return self._vbox.get_children() - - def _on_focus(self, widget, event): - self._scroll_to_widget(widget) - - def _on_clicked(self, widget): - self._scroll_to_widget(widget) - - def _scroll_to_widget(self, widget): - cur_val = self._vadjust.get_value() - new_val = get_scroll_value_to_reveal_widget(widget.allocation, self._viewport.allocation, cur_val) - - if new_val != cur_val: - self._vadjust.set_value(new_val) - self._vadjust.value_changed() - |