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
label_cache = null;
- renderers = new Gtk.CellRendererText[max_font_size];
+ renderers = new Gtk.CellRendererText[steps];
// Defaults for properties
focus_size = 21;
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);
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);
}