diff options
author | Stefano Karapetsas <[email protected]> | 2014-01-30 16:04:57 +0100 |
---|---|---|
committer | Stefano Karapetsas <[email protected]> | 2014-01-30 16:04:57 +0100 |
commit | 8795f06d464700494234e589020e5e29854aeb8c (patch) | |
tree | f2525b646023e533f03d5c80240563b89ab5b152 /timer-applet/src/timerapplet/ui/ScrollableButtonList.py | |
parent | c8a85a6aa040c1d2505b957af4cfb4bd39466504 (diff) | |
parent | 064212a25bea1fcf8901cd0a1d55aae0899f627c (diff) | |
download | mate-applets-8795f06d464700494234e589020e5e29854aeb8c.tar.bz2 mate-applets-8795f06d464700494234e589020e5e29854aeb8c.tar.xz |
Merge branch 'dev-timer-applet'
Closes #45
https://github.com/mate-desktop/mate-applets/issues/45
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() - |