[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r6071 - in trunk/gnue-forms/src/uidrivers/gtk2: . widgets
From: |
johannes |
Subject: |
r6071 - in trunk/gnue-forms/src/uidrivers/gtk2: . widgets |
Date: |
Sat, 24 Jul 2004 13:25:44 -0500 (CDT) |
Author: johannes
Date: 2004-07-24 13:25:43 -0500 (Sat, 24 Jul 2004)
New Revision: 6071
Modified:
trunk/gnue-forms/src/uidrivers/gtk2/UIdriver.py
trunk/gnue-forms/src/uidrivers/gtk2/widgets/button.py
trunk/gnue-forms/src/uidrivers/gtk2/widgets/entry.py
trunk/gnue-forms/src/uidrivers/gtk2/widgets/label.py
Log:
driver now supports the default application (scaleable) font. Note: make sure
the fixedFont option in gnue.conf is turned off.
Modified: trunk/gnue-forms/src/uidrivers/gtk2/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/UIdriver.py 2004-07-24 15:52:36 UTC
(rev 6070)
+++ trunk/gnue-forms/src/uidrivers/gtk2/UIdriver.py 2004-07-24 18:25:43 UTC
(rev 6071)
@@ -47,7 +47,6 @@
raise Exceptions.DriverNotSupported, \
_("The GNUe-Forms GTK driver requires PyGTK and GTK 2.x.")
-
from gnue.common import events
from gnue.common.apps import GDebug
from gnue.common.apps import GConfig
@@ -63,7 +62,6 @@
from gnue.forms.uidrivers.gtk2.widgets._base import *
from gnue.forms.uidrivers.gtk2 import about
-
# =============================================================================
# This class implements a User Interface for GTK2
# =============================================================================
@@ -117,37 +115,13 @@
self.splash.Show ()
gtk.timeout_add (1500, lambda splash: splash.destroy (), self.splash)
- #
- # Set default form font
- #
+ self.font = APPFONT
+ self.textWidth = CHAR_WIDTH
+ self.textHeight = CHAR_HEIGHT
- if gConfigForms ('fixedWidthFont'):
- fontname = 'monospace %s' % gConfigForms ('pointSize')
- else:
- fontname = 'bitstream vera %s' % gConfigForms ('pointSize')
+ gDebug (1, "Metrics %s x %s" % (self.textWidth, self.textHeight))
+ gDebug (1, "Default %s x %s" % (CHAR_WIDTH, CHAR_HEIGHT))
- self.mono_font = pango.FontDescription (fontname)
-
- #
- # Create a dummy window used to compute sizes
- #
- l = gtk.Label ('')
- try:
- l.modify_font (self.mono_font)
- c = l.get_pango_context ()
- m = c.get_metrics (self.mono_font, \
- pango.pango_language_from_string ('english'))
-
- self.textWidth = pango.PIXELS (m.get_approximate_char_width ())
- self.textHeight = pango.PIXELS (m.get_ascent () + m.get_descent ())
- self.textHeight = int (self.textHeight * 1.3)
-
- GDebug.printMesg (1, "%s x %s" % (self.textWidth, self.textHeight))
-
- finally:
- l.destroy ()
-
-
self.widgetWidth = self.textWidth
self.widgetHeight = self.textHeight + 3
@@ -338,3 +312,43 @@
return unicode (aValue, i18n.encoding)
else:
return aValue
+
+
+# -----------------------------------------------------------------------------
+# Get font metrics and font description for a given font
+# -----------------------------------------------------------------------------
+
+def _getFontMetrics (fontName = None):
+ """
+ """
+ label = gtk.Label ()
+
+ try:
+ if fontName is not None:
+ fontDesc = pango.FontDescription (fontName)
+ label.modify_font (fontDesc)
+
+ context = label.get_pango_context ()
+ if fontName is None:
+ fontDesc = context.get_font_description ()
+ metrics = context.get_metrics (fontDesc)
+
+ width = pango.PIXELS (metrics.get_approximate_char_width ())
+ height = pango.PIXELS (metrics.get_ascent () + metrics.get_descent ())
+
+ finally:
+ label.destroy ()
+
+ return (width, height, fontDesc)
+
+
+# =============================================================================
+# Get the current default application font and it's metrics
+# =============================================================================
+
+if gConfigForms ('fixedWidthFont'):
+ fontname = 'monospace %s' % gConfigForms ('pointSize')
+else:
+ fontname = None
+
+(CHAR_WIDTH, CHAR_HEIGHT, APPFONT) = _getFontMetrics (fontname)
Modified: trunk/gnue-forms/src/uidrivers/gtk2/widgets/button.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/widgets/button.py 2004-07-24
15:52:36 UTC (rev 6070)
+++ trunk/gnue-forms/src/uidrivers/gtk2/widgets/button.py 2004-07-24
18:25:43 UTC (rev 6071)
@@ -42,7 +42,7 @@
text = "%s" % object.label
newWidget = gtk.Button (self._makeSafe (text))
- newWidget.modify_font (self._uiDriver.mono_font)
+ newWidget.modify_font (self._uiDriver.font)
newWidget.set_size_request (self.itemWidth, self.itemHeight)
if event.initialize:
Modified: trunk/gnue-forms/src/uidrivers/gtk2/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/widgets/entry.py 2004-07-24
15:52:36 UTC (rev 6070)
+++ trunk/gnue-forms/src/uidrivers/gtk2/widgets/entry.py 2004-07-24
18:25:43 UTC (rev 6071)
@@ -63,7 +63,7 @@
def __createDropDown (self, gfObject, event):
newWidget = gtk.Combo ()
- newWidget.entry.modify_font (self._uiDriver.mono_font)
+ newWidget.entry.modify_font (self._uiDriver.font)
newWidget._origAllowedValues = None
self._updateChoices (newWidget, gfObject)
@@ -101,7 +101,7 @@
def __createLabel (self, gfObject, event):
newWidget = gtk.Label ("")
- newWidget.modify_font (self._uiDriver.mono_font)
+ newWidget.modify_font (self._uiDriver.font)
event.container.put (newWidget, self.itemX, self.itemY)
newWidget.show ()
@@ -115,7 +115,7 @@
def __createCheckbox (self, gfObject, event):
label = len (gfObject.label) and gfObject.label or None
newWidget = gtk.CheckButton (label)
- newWidget.modify_font (self._uiDriver.mono_font)
+ newWidget.modify_font (self._uiDriver.font)
event.container.put (newWidget, self.itemX, self.itemY)
newWidget.show ()
@@ -135,7 +135,7 @@
def __createTextView (self, gfObject, event):
newWidget = gtk.TextView ()
- newWidget.modify_font (self._uiDriver.mono_font)
+ newWidget.modify_font (self._uiDriver.font)
newWidget.set_wrap_mode (gtk.WRAP_CHAR)
if gfObject.readonly:
@@ -178,7 +178,7 @@
maxLen = hasattr (gfObject, 'maxLength') and gfObject.maxLength or 0
newWidget = gtk.Entry (maxLen)
- newWidget.modify_font (self._uiDriver.mono_font)
+ newWidget.modify_font (self._uiDriver.font)
newWidget.set_size_request (self.itemWidth, -1)
newWidget._insert_handler = newWidget.connect ('insert-text',
Modified: trunk/gnue-forms/src/uidrivers/gtk2/widgets/label.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/widgets/label.py 2004-07-24
15:52:36 UTC (rev 6070)
+++ trunk/gnue-forms/src/uidrivers/gtk2/widgets/label.py 2004-07-24
18:25:43 UTC (rev 6071)
@@ -53,7 +53,7 @@
text = "%s" % gfObject.text
newWidget = gtk.Label (self._makeSafe (text))
- newWidget.modify_font (self._uiDriver.mono_font)
+ newWidget.modify_font (self._uiDriver.font)
newWidget.set_justify (_alignmentStyle [gfObject.alignment])
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r6071 - in trunk/gnue-forms/src/uidrivers/gtk2: . widgets,
johannes <=