Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2007-07-09 12:37:21 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2007-07-09 12:37:21 (GMT)
commite88dae8723f840f6f4d29e48215e7eb7615536a6 (patch)
tree8ca5be05ce363bdc376f62f66c8637af4563f3c6 /sugar
parent8b72656ca429cd43f26b9c5edc2479a756914149 (diff)
Start the new approach to style and sizing.
Fix tabs sizing.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/graphics/style.py55
-rw-r--r--sugar/graphics/toolbox.py12
2 files changed, 64 insertions, 3 deletions
diff --git a/sugar/graphics/style.py b/sugar/graphics/style.py
new file mode 100644
index 0000000..cab2cbd
--- /dev/null
+++ b/sugar/graphics/style.py
@@ -0,0 +1,55 @@
+# Copyright (C) 2007, Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+import gtk
+
+def _compute_zoom_factor():
+ return gtk.gdk.screen_width() / 1200.0
+
+def _zoom(units):
+ return int(ZOOM_FACTOR * units)
+
+def _compute_font_height(font):
+ widget = gtk.Label('')
+
+ context = widget.get_pango_context()
+ font = context.load_font(font.get_pango_desc())
+ metrics = font.get_metrics()
+
+ return pango.PIXELS(metrics.get_ascent() + metrics.get_descent())
+
+class Font(object):
+ def __init__(self, desc):
+ self._desc = desc
+
+ def __str__(self):
+ return self._desc
+
+ def get_pango_desc(self):
+ return pango.FontDescription(self._desc)
+
+_FOCUS_LINE_WIDTH = 2
+
+ZOOM_FACTOR = _compute_zoom_factor()
+
+FONT_SIZE = _zoom(7 * 200 / 72.0)
+FONT_NORMAL = Font('Bitstream Vera Sans %d' % FONT_SIZE)
+FONT_BOLD = Font('Bitstream Vera Sans bold %d' % FONT_SIZE)
+
+TOOLBOX_SEPARATOR_HEIGHT = _zoom(9)
+TOOLBOX_HORIZONTAL_PADDING = _zoom(75)
+TOOLBOX_TAB_VBORDER = int((_zoom(36) - FONT_SIZE - _FOCUS_LINE_WIDTH) / 2)
diff --git a/sugar/graphics/toolbox.py b/sugar/graphics/toolbox.py
index d510eeb..34109c0 100644
--- a/sugar/graphics/toolbox.py
+++ b/sugar/graphics/toolbox.py
@@ -19,7 +19,7 @@ import gtk
import gobject
from sugar.graphics.toolbutton import ToolButton
-from sugar.graphics import units
+from sugar.graphics import style
_N_TABS = 8
@@ -39,8 +39,14 @@ class Toolbox(gtk.VBox):
self._notebook.set_tab_pos(gtk.POS_BOTTOM)
self._notebook.set_show_border(False)
self._notebook.set_show_tabs(False)
+ self._notebook.props.tab_vborder = style.TOOLBOX_TAB_VBORDER
self.pack_start(self._notebook)
self._notebook.show()
+
+ label = gtk.Label('')
+ label.set_size_request(-1, style.TOOLBOX_SEPARATOR_HEIGHT)
+ self.pack_start(label, False)
+ label.show()
self._notebook.connect('notify::page', self._notify_page_cb)
@@ -63,8 +69,8 @@ class Toolbox(gtk.VBox):
label.set_alignment(0.0, 0.5)
toolbar_box = gtk.HBox()
- toolbar_box.pack_start(toolbar, True, True, units.grid_to_pixels(1))
- toolbar_box.set_size_request(-1, units.grid_to_pixels(1))
+ toolbar_box.pack_start(toolbar, True, True,
+ style.TOOLBOX_HORIZONTAL_PADDING)
toolbar_box.connect('expose-event', self._toolbar_box_expose_cb)
self._notebook.append_page(toolbar_box, label)