Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/extensions/globalkey/magnifier.py
blob: 122e99bb0f237a7f7cf936309af3c9614047d9e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# Copyright (C) 2010 Plan Ceibal <comunidad@plan.ceibal.edu.uy>

import os

import ConfigParser
import logging
from gi.repository import GObject

from jarabe.view.viewsource import setup_view_source
from sugar import env


PATH_VMG_CONFIG = os.environ['HOME'] + '/.magnifier.ini'
BOUND_KEYS = ['<shift>F13', 'F13', '<control>F13']

def handle_key_press(key):
    logger = logging.getLogger('magnifier')
    logger.setLevel(logging.DEBUG)
    logger.debug("Ejecutando magnifier......" + key)
    if (key=='<shift>F13'):
        set_ruta_archivo()
        set_GraphicsTools()
    if (key=='<control>F13'):
        set_ruta_archivo()
        set_InvertColors()
    _run_cmd_async('launchVmg')

def get_GraphicsTools():
    return leer_config('General', 'GraphicsTools')

def set_GraphicsTools():
    grabar_config_GraphicsTools('General', 'GraphicsTools')

def grabar_config_GraphicsTools(encabezado, etiqueta):
    parser = ConfigParser.ConfigParser()
    parser.read(PATH_VMG_CONFIG)
    val_old = get_GraphicsTools()  
    if val_old == '1':
        parser.set(encabezado, etiqueta, '0')
        arch = open(PATH_VMG_CONFIG, 'w')
        parser.write(arch)
        arch.close()
    else:
        parser.set(encabezado, etiqueta, '1')
        arch = open(PATH_VMG_CONFIG, 'w')
        parser.write(arch)
        arch.close()    

def get_InvertColors():
    return leer_config('General', 'InvertColors')

def set_InvertColors():
    grabar_config_InvertColors('General', 'InvertColors')

def grabar_config_InvertColors(encabezado, etiqueta):
    parser = ConfigParser.ConfigParser()
    parser.read(PATH_VMG_CONFIG)
    val_old = get_InvertColors()  
    if val_old == '1':
        parser.set(encabezado, etiqueta, '0')
        arch = open(PATH_VMG_CONFIG, 'w')
        parser.write(arch)
        arch.close()
    else:
        parser.set(encabezado, etiqueta, '1')
        arch = open(PATH_VMG_CONFIG, 'w')
        parser.write(arch)
        arch.close() 

def leer_config(encabezado, etiqueta):
    parser = ConfigParser.ConfigParser()
    parser.read(PATH_VMG_CONFIG)
    return parser.get(encabezado, etiqueta)

def set_ruta_archivo():
    try:
        f = file(PATH_VMG_CONFIG)
    except:
        PATH_VMG_CONFIG = "/root/.magnifier.ini"

def _run_cmd_async(cmd):
    logger = logging.getLogger('magnifier')
    logger.setLevel(logging.DEBUG)
    try:
        GObject.spawn_async([find_and_absolutize('launchVmg')])
        logger.debug("Ejecuto magnifier")
    except Exception, e:
        logger.debug("Error ejecutando magnifier" + str(e))

def find_and_absolutize(script_name):
    paths = env.os.environ['PATH'].split(':')
    for path in paths:
        looking_path =  path + '/' + script_name
        if env.os.path.isfile(looking_path):
            return looking_path
    return None