Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/controlpanel/frame/view.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/jarabe/controlpanel/frame/view.py')
-rw-r--r--src/jarabe/controlpanel/frame/view.py232
1 files changed, 0 insertions, 232 deletions
diff --git a/src/jarabe/controlpanel/frame/view.py b/src/jarabe/controlpanel/frame/view.py
deleted file mode 100644
index 7ab7bd2..0000000
--- a/src/jarabe/controlpanel/frame/view.py
+++ /dev/null
@@ -1,232 +0,0 @@
-# Copyright (C) 2008, OLPC
-#
-# 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
-import gobject
-from gettext import gettext as _
-
-from sugar.graphics import style
-
-from jarabe.controlpanel.sectionview import SectionView
-from jarabe.controlpanel.inlinealert import InlineAlert
-
-_never = _('never')
-_instantaneous = _('instantaneous')
-_seconds_label = _('%s seconds')
-_MAX_DELAY = 1000.0
-
-class Frame(SectionView):
- def __init__(self, model, alerts):
- SectionView.__init__(self)
-
- self._model = model
- self._corner_delay_sid = 0
- self._corner_delay_is_valid = True
- self._corner_delay_change_handler = None
- self._edge_delay_sid = 0
- self._edge_delay_is_valid = True
- self._edge_delay_change_handler = None
- self.restart_alerts = alerts
-
- self.set_border_width(style.DEFAULT_SPACING * 2)
- self.set_spacing(style.DEFAULT_SPACING)
- self._group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
-
- separator = gtk.HSeparator()
- self.pack_start(separator, expand=False)
- separator.show()
-
- label_activation = gtk.Label(_('Activation Delay'))
- label_activation.set_alignment(0, 0)
- self.pack_start(label_activation, expand=False)
- label_activation.show()
-
- self._box_sliders = gtk.VBox()
- self._box_sliders.set_border_width(style.DEFAULT_SPACING * 2)
- self._box_sliders.set_spacing(style.DEFAULT_SPACING)
-
- self._corner_delay_slider = None
- self._corner_delay_alert = None
- self._setup_corner()
-
- self._edge_delay_slider = None
- self._edge_delay_alert = None
- self._setup_edge()
-
- self.pack_start(self._box_sliders, expand=False)
- self._box_sliders.show()
-
- self.setup()
-
- def _setup_corner(self):
- box_delay = gtk.HBox(spacing=style.DEFAULT_SPACING)
- label_delay = gtk.Label(_('Corner'))
- label_delay.set_alignment(1, 0.75)
- label_delay.modify_fg(gtk.STATE_NORMAL,
- style.COLOR_SELECTION_GREY.get_gdk_color())
- box_delay.pack_start(label_delay, expand=False)
- self._group.add_widget(label_delay)
- label_delay.show()
-
- adj = gtk.Adjustment(value=100, lower=0, upper=_MAX_DELAY,
- step_incr=100, page_incr=100, page_size=0)
- self._corner_delay_slider = gtk.HScale(adj)
- self._corner_delay_slider.set_digits(0)
- self._corner_delay_slider.connect('format-value',
- self.__corner_delay_format_cb)
- box_delay.pack_start(self._corner_delay_slider)
- self._corner_delay_slider.show()
- self._box_sliders.pack_start(box_delay, expand=False)
- box_delay.show()
-
- self._corner_delay_alert = InlineAlert()
- label_delay_error = gtk.Label()
- self._group.add_widget(label_delay_error)
-
- delay_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
- delay_alert_box.pack_start(label_delay_error, expand=False)
- label_delay_error.show()
- delay_alert_box.pack_start(self._corner_delay_alert, expand=False)
- self._box_sliders.pack_start(delay_alert_box, expand=False)
- delay_alert_box.show()
- if 'corner_delay' in self.restart_alerts:
- self._corner_delay_alert.props.msg = self.restart_msg
- self._corner_delay_alert.show()
-
- def _setup_edge(self):
- box_delay = gtk.HBox(spacing=style.DEFAULT_SPACING)
- label_delay = gtk.Label(_('Edge'))
- label_delay.set_alignment(1, 0.75)
- label_delay.modify_fg(gtk.STATE_NORMAL,
- style.COLOR_SELECTION_GREY.get_gdk_color())
- box_delay.pack_start(label_delay, expand=False)
- self._group.add_widget(label_delay)
- label_delay.show()
-
- adj = gtk.Adjustment(value=100, lower=0, upper=_MAX_DELAY,
- step_incr=100, page_incr=100, page_size=0)
- self._edge_delay_slider = gtk.HScale(adj)
- self._edge_delay_slider.set_digits(0)
- self._edge_delay_slider.connect('format-value',
- self.__edge_delay_format_cb)
- box_delay.pack_start(self._edge_delay_slider)
- self._edge_delay_slider.show()
- self._box_sliders.pack_start(box_delay, expand=False)
- box_delay.show()
-
- self._edge_delay_alert = InlineAlert()
- label_delay_error = gtk.Label()
- self._group.add_widget(label_delay_error)
-
- delay_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
- delay_alert_box.pack_start(label_delay_error, expand=False)
- label_delay_error.show()
- delay_alert_box.pack_start(self._edge_delay_alert, expand=False)
- self._box_sliders.pack_start(delay_alert_box, expand=False)
- delay_alert_box.show()
- if 'edge_delay' in self.restart_alerts:
- self._edge_delay_alert.props.msg = self.restart_msg
- self._edge_delay_alert.show()
-
- def setup(self):
- self._corner_delay_slider.set_value(self._model.get_corner_delay())
- self._edge_delay_slider.set_value(self._model.get_edge_delay())
- self._corner_delay_is_valid = True
- self._edge_delay_is_valid = True
- self.needs_restart = False
- self._corner_delay_change_handler = self._corner_delay_slider.connect( \
- 'value-changed', self.__corner_delay_changed_cb)
- self._edge_delay_change_handler = self._edge_delay_slider.connect( \
- 'value-changed', self.__edge_delay_changed_cb)
-
- def undo(self):
- self._corner_delay_slider.disconnect(self._corner_delay_change_handler)
- self._edge_delay_slider.disconnect(self._edge_delay_change_handler)
- self._model.undo()
- self._corner_delay_alert.hide()
- self._edge_delay_alert.hide()
-
- def _validate(self):
- if self._edge_delay_is_valid and self._corner_delay_is_valid:
- self.props.is_valid = True
- else:
- self.props.is_valid = False
-
- def __corner_delay_changed_cb(self, scale, data=None):
- if self._corner_delay_sid:
- gobject.source_remove(self._corner_delay_sid)
- self._corner_delay_sid = gobject.timeout_add( \
- self._APPLY_TIMEOUT, self.__corner_delay_timeout_cb, scale)
-
- def __corner_delay_timeout_cb(self, scale):
- self._corner_delay_sid = 0
- if scale.get_value() == self._model.get_corner_delay():
- return
- try:
- self._model.set_corner_delay(scale.get_value())
- except ValueError, detail:
- self._corner_delay_alert.props.msg = detail
- self._corner_delay_is_valid = False
- else:
- self._corner_delay_alert.props.msg = self.restart_msg
- self._corner_delay_is_valid = True
- self.needs_restart = True
- self.restart_alerts.append('corner_delay')
-
- self._validate()
- self._corner_delay_alert.show()
- return False
-
- def __corner_delay_format_cb(self, scale, value):
- if value == _MAX_DELAY:
- return _never
- elif value == 0.0:
- return _instantaneous
- else:
- return _seconds_label % (value / _MAX_DELAY)
-
- def __edge_delay_changed_cb(self, scale, data=None):
- if self._edge_delay_sid:
- gobject.source_remove(self._edge_delay_sid)
- self._edge_delay_sid = gobject.timeout_add( \
- self._APPLY_TIMEOUT, self.__edge_delay_timeout_cb, scale)
-
- def __edge_delay_timeout_cb(self, scale):
- self._edge_delay_sid = 0
- if scale.get_value() == self._model.get_edge_delay():
- return
- try:
- self._model.set_edge_delay(scale.get_value())
- except ValueError, detail:
- self._edge_delay_alert.props.msg = detail
- self._edge_delay_is_valid = False
- else:
- self._edge_delay_alert.props.msg = self.restart_msg
- self._edge_delay_is_valid = True
- self.needs_restart = True
- self.restart_alerts.append('edge_delay')
-
- self._validate()
- self._edge_delay_alert.show()
- return False
-
- def __edge_delay_format_cb(self, scale, value):
- if value == _MAX_DELAY:
- return _never
- elif value == 0.0:
- return _instantaneous
- else:
- return _seconds_label % (value / _MAX_DELAY)