You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
5.3 KiB
Python
145 lines
5.3 KiB
Python
"""
|
|
* ScreenPanel.py - SettingGUI - Screen Settings Section
|
|
*
|
|
* (C) 2007 by Kristian Mueller <kristian-m@kristian-m.de>
|
|
* All Rights Reserved
|
|
*
|
|
* 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 Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
"""
|
|
|
|
|
|
import sys
|
|
import os
|
|
import gtk
|
|
from SysFSAccess import *
|
|
from GlobalConfiguration import *
|
|
#from settingsgui.SysFSAccess import *
|
|
#from settingsgui.GlobalConfiguration import *
|
|
|
|
class ScreenPanel(gtk.VBox):
|
|
orientation = 0
|
|
|
|
def __init__(self):
|
|
gtk.VBox.__init__(self, False, 0)
|
|
self.create_notebook_page()
|
|
|
|
def toggle_backlight(self, widget):
|
|
print "trying to toggle the backlight"
|
|
if detect_device_type() == "GTA01":
|
|
value = get_sysfs_value(SYSFS_ENTRY_BACKLIGHT_POWER_GTA01)
|
|
if value.find("1") != -1:
|
|
set_sysfs_value(SYSFS_ENTRY_BACKLIGHT_POWER_GTA01, 0)
|
|
value = "1"
|
|
else:
|
|
set_sysfs_value(SYSFS_ENTRY_BACKLIGHT_POWER_GTA01, 1)
|
|
value = "0"
|
|
else:
|
|
value = get_sysfs_value(SYSFS_ENTRY_BACKLIGHT_POWER_GTA02)
|
|
if value.find("1") != -1:
|
|
set_sysfs_value(SYSFS_ENTRY_BACKLIGHT_POWER_GTA02, 0)
|
|
value = "1"
|
|
else:
|
|
set_sysfs_value(SYSFS_ENTRY_BACKLIGHT_POWER_GTA02, 1)
|
|
value = "0"
|
|
|
|
def toggle_orientation(self, widget):
|
|
print "trying to toggle screen orientation"
|
|
if self.orientation == 0:
|
|
os.system("/usr/bin/xrandr -o 1")
|
|
self.orientation = 1
|
|
else:
|
|
os.system("/usr/bin/xrandr -o 0")
|
|
self.orientation = 0
|
|
|
|
|
|
def restart_x_server(self, widget):
|
|
mbox = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_YES_NO,
|
|
"You hit the Restart-Phone-GUI-Button!\nThis will restart the X11-Server!\nDo you really want to quit ALL applications? (including SettingGUI)")
|
|
response = mbox.run()
|
|
mbox.hide()
|
|
mbox.destroy()
|
|
if response == gtk.RESPONSE_YES:
|
|
print "SettingsGUI is restarting X11..."
|
|
os.system("/etc/init.d/xserver-nodm restart")
|
|
|
|
|
|
def bl_level_changed(self, widget):
|
|
print "trying to set backlight to %s" % widget.value
|
|
if detect_device_type() == "GTA01":
|
|
tmp_value = widget.value
|
|
tmp_value = tmp_value * 50
|
|
set_sysfs_value(SYSFS_ENTRY_BACKLIGHT_BRIGHTNESS_GTA01, tmp_value)
|
|
else:
|
|
tmp_value = widget.value
|
|
tmp_value = int((tmp_value/100.0) * 64)
|
|
set_sysfs_value(SYSFS_ENTRY_BACKLIGHT_BRIGHTNESS_GTA02, tmp_value)
|
|
|
|
def create_notebook_page(self):
|
|
self.set_border_width(0)
|
|
|
|
level_frame = gtk.Frame("Backlight Level")
|
|
level_frame.set_border_width(0)
|
|
level_box = gtk.VBox(False, 0)
|
|
level_box.set_border_width(15)
|
|
|
|
if detect_device_type() == "GTA01":
|
|
init_value = get_sysfs_value(SYSFS_ENTRY_BACKLIGHT_BRIGHTNESS_GTA01)
|
|
if len(init_value) > 0:
|
|
init_value = float(init_value) / 50
|
|
else:
|
|
init_value = 50
|
|
else:
|
|
init_value = get_sysfs_value(SYSFS_ENTRY_BACKLIGHT_BRIGHTNESS_GTA02)
|
|
if len(init_value) > 0:
|
|
init_value = int((float(init_value) / 64.0) * 100)
|
|
else:
|
|
init_value = 0.5
|
|
|
|
|
|
|
|
## scale to set backlight level
|
|
scale_adj = gtk.Adjustment(init_value, 0.0, 100.0, 1.0, 1.0, 0.0)
|
|
scale_adj.connect("value_changed", self.bl_level_changed, )
|
|
backlight_scale = gtk.HScale(scale_adj)
|
|
backlight_scale.set_digits(0)
|
|
level_box.add(backlight_scale)
|
|
|
|
level_frame.add(level_box)
|
|
self.pack_start(level_frame, False, False, 0)
|
|
|
|
button_box = gtk.HBox(False, 0)
|
|
button_box.set_border_width(0)
|
|
self.add(button_box)
|
|
|
|
## button to restart xserver
|
|
restart_x_btn = gtk.Button("Restart Phone GUI")
|
|
restart_x_btn.connect("clicked", self.restart_x_server)
|
|
# button_box.add(restart_x_btn)
|
|
|
|
## button to toggle backlight
|
|
bl_toggle_btn = gtk.Button("Backlight\non/off")
|
|
bl_toggle_btn.connect("clicked", self.toggle_backlight)
|
|
button_box.add(bl_toggle_btn)
|
|
|
|
## button to change orientation
|
|
orientation_toggle_btn = gtk.Button("Landscape/\nPortrait")
|
|
orientation_toggle_btn.connect("clicked", self.toggle_orientation)
|
|
button_box.add(orientation_toggle_btn)
|
|
|
|
self.show_all()
|
|
## label to describe notebook page
|
|
label = gtk.Label("Backlight")
|
|
return (self, label)
|