commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r6886 - trunk/gnue-forms/src/uidrivers/gtk2


From: johannes
Subject: [gnue] r6886 - trunk/gnue-forms/src/uidrivers/gtk2
Date: Mon, 10 Jan 2005 09:15:15 -0600 (CST)

Author: johannes
Date: 2005-01-10 09:15:14 -0600 (Mon, 10 Jan 2005)
New Revision: 6886

Modified:
   trunk/gnue-forms/src/uidrivers/gtk2/UIdriver.py
Log:
Better placement and size-calculation for exception dialogs


Modified: trunk/gnue-forms/src/uidrivers/gtk2/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/UIdriver.py     2005-01-10 14:59:09 UTC 
(rev 6885)
+++ trunk/gnue-forms/src/uidrivers/gtk2/UIdriver.py     2005-01-10 15:15:14 UTC 
(rev 6886)
@@ -441,18 +441,20 @@
     label.show ()
 
     textView = gtk.TextView ()
-    textView.get_buffer ().set_text (detail)
     textView.set_pixels_above_lines (2)
     textView.set_left_margin (2)
+    textView.set_wrap_mode (gtk.WRAP_NONE)
+    textView.set_cursor_visible (True)
     # Just set the textview to 'readonly' so using clipboard still works
     textView.set_editable (False)
     textView.modify_font (pango.FontDescription ('monospace'))
+    textView.get_buffer ().set_text (detail)
 
     self.detailView = gtk.ScrolledWindow ()
     self.detailView.add_with_viewport (textView)
     self.detailView.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
-    (w, h) = _getFontMetrics ('monospace') [:2]
-    self.detailView.set_size_request (w * 80, h * 10)
+    (w, h) = self.__getDetailSize (detail)
+    self.detailView.set_size_request (w, h)
     textView.show ()
     vbox.pack_start (self.detailView)
 
@@ -464,6 +466,7 @@
 
     self._showsDetail  = False
     self._originalSize = self.get_size ()
+    self.set_position (gtk.WIN_POS_CENTER_ALWAYS)
 
 
   # ---------------------------------------------------------------------------
@@ -481,6 +484,26 @@
   
     self._showsDetail = not self._showsDetail
 
+
+  # ---------------------------------------------------------------------------
+  # Try to figure out a width and heigth for the traceback-text
+  # ---------------------------------------------------------------------------
+
+  def __getDetailSize (self, detail):
+
+    lines = detail.splitlines ()
+    maxH = len (lines) + 3
+    maxW = 0
+
+    for line in lines:
+      maxW = max (maxW, len (line))
+
+    maxW += 5
+    (w, h) = _getFontMetrics ('monospace') [:2]
+
+    return (min (w * maxW, gtk.gdk.screen_width ()),
+            min (h * maxH, gtk.gdk.screen_height () - 100))
+
 # =============================================================================
 # Get the current default application font and it's metrics
 # =============================================================================





reply via email to

[Prev in Thread] Current Thread [Next in Thread]