Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/extensions/cpsection/aboutme/model.py
blob: 850079925f93b97e8171b105c9e0bce07b39dd49 (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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# Copyright (C) 2008 One Laptop Per Child
#
# 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
#

from gettext import gettext as _
import gconf

_COLORS = {'red': {'dark':'#b20008', 'medium':'#e6000a', 'light':'#ffadce'},
           'orange': {'dark':'#9a5200', 'medium':'#c97e00', 'light':'#ffc169'},
           'yellow': {'dark':'#807500', 'medium':'#be9e00', 'light':'#fffa00'},
           'green': {'dark':'#008009', 'medium':'#00b20d', 'light':'#8bff7a'},
           'blue': {'dark':'#00588c', 'medium':'#005fe4', 'light':'#bccdff'},
           'purple': {'dark':'#5e008c', 'medium':'#7f00bf', 'light':'#d1a3ff'}
           }

_MODIFIERS = ('dark', 'medium', 'light')
        
def get_nick():
    client = gconf.client_get_default()
    return client.get_string("/desktop/sugar/user/nick")

def print_nick():
    print get_nick()
    
def set_nick(nick):
    """Set the nickname.
    nick : e.g. 'walter'
    """
    if not nick:
        raise ValueError(_("You must enter a name."))
    if not isinstance(nick, unicode):
        nick = unicode(nick, 'utf-8')
    client = gconf.client_get_default()
    client.set_string("/desktop/sugar/user/nick", nick)
    return 1

def get_color():
    client = gconf.client_get_default()
    return client.get_string("/desktop/sugar/user/color")

def print_color():
    color_string = get_color()
    tmp = color_string.split(',')

    stroke_tuple = None
    fill_tuple = None
    for color in _COLORS:
        for hue in _COLORS[color]:
            if _COLORS[color][hue] == tmp[0]:
                stroke_tuple = (color, hue)
            if _COLORS[color][hue] == tmp[1]:
                fill_tuple = (color, hue)

    if stroke_tuple is not None:            
        print _('stroke:   color=%s hue=%s') % (stroke_tuple[0], 
                                                stroke_tuple[1])
    else:
        print _('stroke:   %s') % (tmp[0])        
    if fill_tuple is not None:    
        print _('fill:     color=%s hue=%s') % (fill_tuple[0], fill_tuple[1])
    else:
        print _('fill:     %s') % (tmp[1])
        
def set_color(stroke, fill, stroke_modifier='medium', fill_modifier='medium'):
    """Set the system color by setting a fill and stroke color.
    fill : [red, orange, yellow, blue, green, purple]
    stroke : [red, orange, yellow, blue, green, purple]
    hue stroke : [dark, medium, light] (optional)
    hue fill : [dark, medium, light] (optional)
    """
    
    if stroke_modifier not in _MODIFIERS or fill_modifier not in _MODIFIERS:
        print (_("Error in specified color modifiers."))
        return
    if stroke not in _COLORS or fill not in _COLORS:
        print (_("Error in specified colors."))
        return
    
    if stroke_modifier == fill_modifier:
        if fill_modifier == 'medium':
            fill_modifier = 'light'
        else:
            fill_modifier = 'medium'
            
    color = _COLORS[stroke][stroke_modifier] + ',' \
            + _COLORS[fill][fill_modifier]

    client = gconf.client_get_default()
    client.set_string("/desktop/sugar/user/color", color)
    return 1

def get_color_xo():
    client = gconf.client_get_default()
    return client.get_string("/desktop/sugar/user/color")

def set_color_xo(color):
    """Set a color with an XoColor 
    This method is used by the graphical user interface
    """
    client = gconf.client_get_default()
    client.set_string("/desktop/sugar/user/color", color)
    return 1