mldonkey-commits
[Top][All Lists]
Advanced

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

[Mldonkey-commits] Changes to mldonkey/src/gtk2/gui/guiTools.ml


From: mldonkey-commits
Subject: [Mldonkey-commits] Changes to mldonkey/src/gtk2/gui/guiTools.ml
Date: Mon, 31 Oct 2005 13:34:33 -0500

Index: mldonkey/src/gtk2/gui/guiTools.ml
diff -u mldonkey/src/gtk2/gui/guiTools.ml:1.4 
mldonkey/src/gtk2/gui/guiTools.ml:1.5
--- mldonkey/src/gtk2/gui/guiTools.ml:1.4       Tue Jul 12 23:10:16 2005
+++ mldonkey/src/gtk2/gui/guiTools.ml   Mon Oct 31 18:34:02 2005
@@ -432,36 +432,37 @@
 *)
 
 let fit_string_to_pixels s ~context ~pixels =
-  let us = U.utf8_of s in
-  let pango_layout = Pango.Layout.create context#as_context in
-  Pango.Layout.set_text pango_layout us;
-  let us' =
-    if fst (Pango.Layout.get_pixel_size pango_layout) <= pixels
-    then us
+  if s = ""
+    then s
     else begin
-      let len = Glib.Utf8.length us in
-      let uca = Glib.Utf8.to_unistring us in
-      let uca_ext = Array.sub uca (len - 7) 7 in
-      let ext = "..." ^ (Glib.Utf8.from_unistring uca_ext) in
-      let rec adjust_string n len =
-        if n = len
-          then us
-          else begin
-            let ustr = (Glib.Utf8.from_unistring (Array.sub uca 0 n)) ^ ext in
-            Pango.Layout.set_text pango_layout ustr;
-            let ustr_pixels = fst (Pango.Layout.get_pixel_size pango_layout) in
-            (* Printf.printf "width %d - Pango.Layout.get_pixel_size %d 
Pango.Layout.get_text %s\n" 
-               pixels s_width (Pango.Layout.get_text pango_layout);
-            flush stdout; *)
-            if ustr_pixels < pixels
-              then adjust_string (n + 1) len
-              else ustr
-          end
-      in
-      adjust_string 0 len
+      let us = U.utf8_of s in
+      let pango_layout = Pango.Layout.create context#as_context in
+      Pango.Layout.set_text pango_layout us;
+      let us' =
+        if fst (Pango.Layout.get_pixel_size pango_layout) <= pixels
+        then us
+        else begin
+          let len = Glib.Utf8.length us in
+          let uca = Glib.Utf8.to_unistring us in
+          let ext_len = min 7 (len - 1) in
+          let uca_ext = Array.sub uca (len - ext_len) ext_len in
+          let ext = "..." ^ (Glib.Utf8.from_unistring uca_ext) in
+          let rec adjust_string n len =
+            if n = len
+              then us
+              else begin
+                let ustr = (Glib.Utf8.from_unistring (Array.sub uca 0 n)) ^ 
ext in
+                Pango.Layout.set_text pango_layout ustr;
+                let ustr_pixels = fst (Pango.Layout.get_pixel_size 
pango_layout) in
+                if ustr_pixels < pixels
+                  then adjust_string (n + 1) len
+                  else ustr
+              end
+          in
+          adjust_string 0 len
+        end
+      in us'
     end
-  in us'
-
 
 
 let warning_box




reply via email to

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