Use font description from widget for the renderers
authorEnrico Zini <enrico@enricozini.org>
Thu, 10 Dec 2009 10:09:14 +0000 (10:09 +0000)
committerEnrico Zini <enrico@enricozini.org>
Thu, 10 Dec 2009 10:09:14 +0000 (10:09 +0000)
src/fisheye.vala

index 1244ef9803e60c6988abc947c226a770da54cbbe..f3c05d380d7f391febf27cf0e9ba4cc94debc5da 100644 (file)
@@ -27,7 +27,7 @@ public class FisheyeList : Gtk.DrawingArea
        protected Gdk.Pixmap backing_store;
 
        // Pango layouts cached for speed
-       protected const int max_font_size = 30;
+       protected const int steps = 5;
        protected Gtk.CellRendererText[] renderers;
 
        // Labels to show, extracted from the model
@@ -74,7 +74,7 @@ public class FisheyeList : Gtk.DrawingArea
 
                label_cache = null;
 
-               renderers = new Gtk.CellRendererText[max_font_size];
+               renderers = new Gtk.CellRendererText[steps];
 
                // Defaults for properties
                focus_size = 21;
@@ -214,6 +214,13 @@ public class FisheyeList : Gtk.DrawingArea
                return pos;
        }
 
+       protected Gtk.CellRendererText make_cell_renderer()
+       {
+               var res = new Gtk.CellRendererText();
+               res.font_desc = get_style().font_desc;
+               return res;
+       }
+
        protected void base_layout()
        {
                background = new Gdk.Pixmap(window, allocation.width, allocation.height, -1);
@@ -221,15 +228,17 @@ public class FisheyeList : Gtk.DrawingArea
 
                backing_store = new Gdk.Pixmap(window, allocation.width, allocation.height, -1);
 
-                Gtk.Style style = get_style();
-               //int max_font_size = style.font_desc.get_size();
+               // Recreate the renderers
+               renderers[renderers.length-1] = make_cell_renderer();
+               renderers[renderers.length-1].set_fixed_height_from_font(1);
 
-               //int min_size = max_font_size * 3 + FIXME;
+               renderers[0] = make_cell_renderer();
+               renderers[0].size = 1;
+               renderers[0].set_fixed_height_from_font(1);
 
-               // Recreate the renderers
-               for (int i = 0; i < renderers.length; ++i)
+               for (int i = 1; i < renderers.length-1; ++i)
                {
-                       renderers[i] = new Gtk.CellRendererText();
+                       renderers[i] = make_cell_renderer();
                        renderers[i].scale = (double)i / renderers.length;
                        renderers[i].set_fixed_height_from_font(1);
                }