Move Color inside style

This commit is contained in:
Marco Pesenti Gritti 2007-02-14 16:20:00 +01:00
parent c935a5c250
commit bcdff5ddd3
9 changed files with 84 additions and 83 deletions

View File

@ -4,7 +4,6 @@ sugar_PYTHON = \
bubble.py \ bubble.py \
button.py \ button.py \
canvasicon.py \ canvasicon.py \
color.py \
ClipboardBubble.py \ ClipboardBubble.py \
entry.py \ entry.py \
frame.py \ frame.py \

View File

@ -1,76 +0,0 @@
import gtk
_system_colors = {
'toolbar-background' : '#414141',
'frame-border' : '#D1D1D2',
'entry-background-focused' : '#FFFFFF',
'entry-background-unfocused' : '#414141',
'entry-selection-focused' : '#D1D1D2',
'entry-selection-unfocused' : '#00FF00',
'entry-text-focused' : '#000000',
'entry-text-unfocused' : '#FFFFFF',
'entry-border' : '#D1D1D2',
'label-text' : '#FFFFFF',
'desktop-background' : '#E2E2E3'
}
def _html_to_rgb(html_color):
""" #RRGGBB -> (r, g, b) tuple (in float format) """
html_color = html_color.strip()
if html_color[0] == '#':
html_color = html_color[1:]
if len(html_color) != 6:
raise ValueError, "input #%s is not in #RRGGBB format" % html_color
r, g, b = html_color[:2], html_color[2:4], html_color[4:]
r, g, b = [int(n, 16) for n in (r, g, b)]
r, g, b = (r / 255.0, g / 255.0, b / 255.0)
return (r, g, b)
def _rgba_to_int(r, g, b, a):
color = int(a * 255) + (int(b * 255) << 8) + \
(int(g * 255) << 16) + (int(r * 255) << 24)
return color
class RGBColor(object):
def __init__(self, r, g, b, a=1.0):
self._r = r
self._g = g
self._b = b
self._a = a
def get_rgba(self):
return (self._r, self._g, self._b, self._a)
def get_int(self):
return _rgba_to_int(self._r, self._g, self._b, self._a)
def get_gdk_color(self):
return gtk.gdk.Color(int(self._r * 65535), int(self._g * 65535),
int(self._b * 65535))
class SystemColor(RGBColor):
def __init__(self, color_id):
rgb = _html_to_rgb(_system_colors[color_id])
RGBColor.__init__(self, *rgb)
class Color(object):
RED = RGBColor(1.0, 0.0, 0.0)
GREEN = RGBColor(0.0, 1.0, 0.0)
BLUE = RGBColor(0.0, 0.0, 1.0)
WHITE = RGBColor(1.0, 1.0, 1.0)
BLACK = RGBColor(0.0, 0.0, 0.0)
TOOLBAR_BACKGROUND = SystemColor('toolbar-background')
FRAME_BORDER = SystemColor('frame-border')
ENTRY_BACKGROUND_FOCUSED = SystemColor('entry-background-focused')
ENTRY_BACKGROUND_UNFOCUSED = SystemColor('entry-background-unfocused')
ENTRY_SELECTION_FOCUSED = SystemColor('entry-selection-focused')
ENTRY_SELECTION_UNFOCUSED = SystemColor('entry-selection-unfocused')
ENTRY_TEXT_FOCUSED = SystemColor('entry-text-focused')
ENTRY_TEXT_UNFOCUSED = SystemColor('entry-text-unfocused')
ENTRY_BORDER = SystemColor('entry-border')
LABEL_TEXT = SystemColor('label-text')
DESKTOP_BACKGROUND = SystemColor('desktop-background')

View File

@ -23,7 +23,7 @@ import hippo
import pango import pango
from sugar.graphics import style from sugar.graphics import style
from sugar.graphics.color import Color from sugar.graphics.style import Color
from sugar.graphics.button import Button from sugar.graphics.button import Button
from sugar.graphics.roundbox import RoundBox from sugar.graphics.roundbox import RoundBox

View File

@ -15,7 +15,7 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA. # Boston, MA 02111-1307, USA.
from sugar.graphics.color import Color from sugar.graphics.style import Color
from sugar.graphics.roundbox import RoundBox from sugar.graphics.roundbox import RoundBox
class Frame(RoundBox): class Frame(RoundBox):

View File

@ -25,7 +25,7 @@ import pango
from sugar.graphics import style from sugar.graphics import style
from sugar.graphics.roundbox import RoundBox from sugar.graphics.roundbox import RoundBox
from sugar.graphics.button import Button from sugar.graphics.button import Button
from sugar.graphics.color import Color from sugar.graphics.style import Color
class Label(hippo.CanvasBox, hippo.CanvasItem): class Label(hippo.CanvasBox, hippo.CanvasItem):
__gtype_name__ = 'SugarLabel' __gtype_name__ = 'SugarLabel'

View File

@ -20,7 +20,7 @@ import math
import hippo import hippo
from sugar.graphics import style from sugar.graphics import style
from sugar.graphics.color import Color from sugar.graphics.style import Color
class RoundBox(hippo.CanvasBox, hippo.CanvasItem): class RoundBox(hippo.CanvasBox, hippo.CanvasItem):
__gtype_name__ = 'SugarRoundBox' __gtype_name__ = 'SugarRoundBox'

View File

@ -14,10 +14,88 @@
# License along with this library; if not, write to the # License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA. # Boston, MA 02111-1307, USA.
import logging import logging
import gtk import gtk
_system_colors = {
'toolbar-background' : '#414141',
'frame-border' : '#D1D1D2',
'entry-background-focused' : '#FFFFFF',
'entry-background-unfocused' : '#414141',
'entry-selection-focused' : '#D1D1D2',
'entry-selection-unfocused' : '#00FF00',
'entry-text-focused' : '#000000',
'entry-text-unfocused' : '#FFFFFF',
'entry-border' : '#D1D1D2',
'label-text' : '#FFFFFF',
'desktop-background' : '#E2E2E3'
}
def _html_to_rgb(html_color):
""" #RRGGBB -> (r, g, b) tuple (in float format) """
html_color = html_color.strip()
if html_color[0] == '#':
html_color = html_color[1:]
if len(html_color) != 6:
raise ValueError, "input #%s is not in #RRGGBB format" % html_color
r, g, b = html_color[:2], html_color[2:4], html_color[4:]
r, g, b = [int(n, 16) for n in (r, g, b)]
r, g, b = (r / 255.0, g / 255.0, b / 255.0)
return (r, g, b)
def _rgba_to_int(r, g, b, a):
color = int(a * 255) + (int(b * 255) << 8) + \
(int(g * 255) << 16) + (int(r * 255) << 24)
return color
class RGBColor(object):
def __init__(self, r, g, b, a=1.0):
self._r = r
self._g = g
self._b = b
self._a = a
def get_rgba(self):
return (self._r, self._g, self._b, self._a)
def get_int(self):
return _rgba_to_int(self._r, self._g, self._b, self._a)
def get_gdk_color(self):
return gtk.gdk.Color(int(self._r * 65535), int(self._g * 65535),
int(self._b * 65535))
class SystemColor(RGBColor):
def __init__(self, color_id):
rgb = _html_to_rgb(_system_colors[color_id])
RGBColor.__init__(self, *rgb)
class Color(object):
RED = RGBColor(1.0, 0.0, 0.0)
GREEN = RGBColor(0.0, 1.0, 0.0)
BLUE = RGBColor(0.0, 0.0, 1.0)
WHITE = RGBColor(1.0, 1.0, 1.0)
BLACK = RGBColor(0.0, 0.0, 0.0)
TOOLBAR_BACKGROUND = SystemColor('toolbar-background')
FRAME_BORDER = SystemColor('frame-border')
ENTRY_BACKGROUND_FOCUSED = SystemColor('entry-background-focused')
ENTRY_BACKGROUND_UNFOCUSED = SystemColor('entry-background-unfocused')
ENTRY_SELECTION_FOCUSED = SystemColor('entry-selection-focused')
ENTRY_SELECTION_UNFOCUSED = SystemColor('entry-selection-unfocused')
ENTRY_TEXT_FOCUSED = SystemColor('entry-text-focused')
ENTRY_TEXT_UNFOCUSED = SystemColor('entry-text-unfocused')
ENTRY_BORDER = SystemColor('entry-border')
LABEL_TEXT = SystemColor('label-text')
DESKTOP_BACKGROUND = SystemColor('desktop-background')
### Deprecated: we should drop this once we removed stylesheets ###
_styles = {} _styles = {}
screen_factor = gtk.gdk.screen_width() / 1200.0 screen_factor = gtk.gdk.screen_width() / 1200.0

View File

@ -22,7 +22,7 @@ from sugar.graphics.toolbar import Toolbar
from sugar.graphics.frame import Frame from sugar.graphics.frame import Frame
from sugar.graphics.button import Button from sugar.graphics.button import Button
from sugar.graphics.entry import Entry from sugar.graphics.entry import Entry
from sugar.graphics.color import Color from sugar.graphics.style import Color
def _entry_activated_cb(entry): def _entry_activated_cb(entry):
print "_entry_activated_cb" print "_entry_activated_cb"

View File

@ -21,7 +21,7 @@ import hippo
from sugar.graphics.toolbar import Toolbar from sugar.graphics.toolbar import Toolbar
from sugar.graphics.label import Label from sugar.graphics.label import Label
from sugar.graphics.button import Button from sugar.graphics.button import Button
from sugar.graphics.color import Color from sugar.graphics.style import Color
BUTTON_DELETE = 1 BUTTON_DELETE = 1