diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2006-11-10 10:58:11 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2006-11-10 10:58:11 (GMT) |
commit | 028bf526f27d1352fa6d71bdb2540311e02b7e77 (patch) | |
tree | 5e7ed9a286fbbd63cd3ec7b7a9a771bdd9ae899b /shell | |
parent | a7e4092b0e4f3d30a21ee5a7982aecd5252a0822 (diff) | |
parent | 6260647edac30a4f24ff4e6d922ffc0808dfa83e (diff) |
Merge branch 'master' of git://dev.laptop.org/sugar
Diffstat (limited to 'shell')
-rw-r--r-- | shell/Makefile.am | 3 | ||||
-rw-r--r-- | shell/data/kbdconfig | 1 | ||||
-rwxr-xr-x | shell/sugar-shutdown | 4 | ||||
-rw-r--r-- | shell/view/Makefile.am | 1 | ||||
-rw-r--r-- | shell/view/Shell.py | 17 | ||||
-rw-r--r-- | shell/view/dconmanager.py | 43 |
6 files changed, 67 insertions, 2 deletions
diff --git a/shell/Makefile.am b/shell/Makefile.am index a5c8533..885ca5e 100644 --- a/shell/Makefile.am +++ b/shell/Makefile.am @@ -4,7 +4,8 @@ bin_SCRIPTS = \ sugar-activity \ sugar-activity-factory \ sugar-log-viewer \ - sugar-shell + sugar-shell \ + sugar-shutdown sugardir = $(pkgdatadir)/shell sugar_PYTHON = \ diff --git a/shell/data/kbdconfig b/shell/data/kbdconfig index 967361a..30e4953 100644 --- a/shell/data/kbdconfig +++ b/shell/data/kbdconfig @@ -8,3 +8,4 @@ F12=!sugar-log-viewer <Alt>q=!sugar-emulator-shutdown +<Alt><Shift>Escape=!sugar-shutdown diff --git a/shell/sugar-shutdown b/shell/sugar-shutdown new file mode 100755 index 0000000..e511b3d --- /dev/null +++ b/shell/sugar-shutdown @@ -0,0 +1,4 @@ +#!/bin/sh +dbus-send --system --print-reply --dest=org.freedesktop.Hal \ +/org/freedesktop/Hal/devices/computer \ +org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown diff --git a/shell/view/Makefile.am b/shell/view/Makefile.am index 4438f9b..bd90a2d 100644 --- a/shell/view/Makefile.am +++ b/shell/view/Makefile.am @@ -11,4 +11,5 @@ sugar_PYTHON = \ ClipboardMenu.py \ OverlayWindow.py \ Shell.py \ + dconmanager.py \ stylesheet.py diff --git a/shell/view/Shell.py b/shell/view/Shell.py index 401c935..7daade7 100644 --- a/shell/view/Shell.py +++ b/shell/view/Shell.py @@ -26,6 +26,7 @@ from view.ActivityHost import ActivityHost from sugar.activity import ActivityFactory from sugar.activity import Activity from view.frame.Frame import Frame +from view.dconmanager import DCONManager from _sugar import KeyGrabber import sugar @@ -49,6 +50,8 @@ class Shell(gobject.GObject): style.load_stylesheet(view.stylesheet) + self._dcon_manager = DCONManager() + self._key_grabber = KeyGrabber() self._key_grabber.connect('key-pressed', self.__global_key_pressed_cb) @@ -60,7 +63,11 @@ class Shell(gobject.GObject): self._key_grabber.grab('F4') self._key_grabber.grab('F5') self._key_grabber.grab('F6') + self._key_grabber.grab('F7') + self._key_grabber.grab('F8') self._key_grabber.grab('F9') + self._key_grabber.grab('F10') + self._key_grabber.grab('F11') self._home_window = HomeWindow(self) self._home_window.show() @@ -87,8 +94,16 @@ class Shell(gobject.GObject): self._frame.notify_key_press() elif key == 'F6': self.start_activity('org.sugar.Terminal') - elif key == 'F9': + elif key == 'F7': self.toggle_chat_visibility() + elif key == 'F8': + self._dcon_manager.set_mode(DCONManager.COLOR_MODE) + elif key == 'F9': + self._dcon_manager.set_mode(DCONManager.BLACK_AND_WHITE_MODE) + elif key == 'F10': + self._dcon_manager.decrease_brightness() + elif key == 'F11': + self._dcon_manager.increase_brightness() def __global_key_released_cb(self, grabber, key): if key == 'F5': diff --git a/shell/view/dconmanager.py b/shell/view/dconmanager.py new file mode 100644 index 0000000..2cf40b5 --- /dev/null +++ b/shell/view/dconmanager.py @@ -0,0 +1,43 @@ +# Copyright (C) 2006, Red Hat, Inc. +# +# 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 dbus + +DCON_MANAGER_INTERFACE = 'org.laptop.DCONManager' +DCON_MANAGER_SERVICE = 'org.laptop.DCONManager' +DCON_MANAGER_OBJECT_PATH = '/org/laptop/DCONManager' + +class DCONManager(object): + COLOR_MODE = 0 + BLACK_AND_WHITE_MODE = 1 + + def __init__(self): + bus = dbus.SystemBus() + proxy = bus.get_object(DCON_MANAGER_SERVICE, DCON_MANAGER_OBJECT_PATH) + self._service = dbus.Interface(proxy, DCON_MANAGER_INTERFACE) + + def set_mode(self, mode): + self._service.set_mode(mode) + + def increase_brightness(self): + level = self._service.get_backlight_level() + if level >= 0: + self._service.set_backlight_level(level + 1) + + def decrease_brightness(self): + level = self._service.get_backlight_level() + if level >= 0: + self._service.set_backlight_level(level - 1) |