private void HandleAdaptorChanged(GroupAdaptor adaptor) { bool size_changed = box_counts.Length != adaptor.Count(); int [] box_values = new int [adaptor.Count()]; if (tick_layouts != null) { foreach (Pango.Layout l in tick_layouts) { if (l != null) { l.Dispose(); } } } tick_layouts = new Pango.Layout [adaptor.Count()]; int i = 0; while (i < adaptor.Count()) { box_values [i] = adaptor.Value(i); string label = adaptor.TickLabel(i); if (label != null) { tick_layouts [i] = CreatePangoLayout(label); } i++; } if (glass.Position >= adaptor.Count()) { glass.SetPosition(adaptor.Count() - 1); } Counts = box_values; if (has_limits && size_changed) { min_limit.SetPosition(0, false); max_limit.SetPosition(adaptor.Count() - 1, false); } for (i = min_limit.Position; i < box_counts.Length; i++) { if (box_counts [i] > 0) { break; } } SetPosition(i < box_counts.Length ? i : min_limit.Position); ScrollTo(min_limit.Position); this.QueueDraw(); }
private void HandleAdaptorChanged (GroupAdaptor adaptor) { bool size_changed = box_counts.Length != adaptor.Count (); int [] box_values = new int [adaptor.Count ()]; if (tick_layouts != null) { foreach (Pango.Layout l in tick_layouts) { if (l != null) l.Dispose (); } } tick_layouts = new Pango.Layout [adaptor.Count ()]; int i = 0; while (i < adaptor.Count ()) { box_values [i] = adaptor.Value (i); string label = adaptor.TickLabel (i); if (label != null) { tick_layouts [i] = CreatePangoLayout (label); } i++; } if (glass.Position >= adaptor.Count()) glass.SetPosition (adaptor.Count() - 1); Counts = box_values; if (has_limits && size_changed) { min_limit.SetPosition (0, false); max_limit.SetPosition (adaptor.Count () - 1, false); } for (i = min_limit.Position; i < box_counts.Length; i++) if (box_counts [i] > 0) break; SetPosition (i < box_counts.Length ? i : min_limit.Position); ScrollTo (min_limit.Position); this.QueueDraw (); }
void HandleAdaptorChanged (GroupAdaptor sender) { UpdateGlass (); }
void HandleAdaptorGlassSet (GroupAdaptor sender, int index) { JumpTo (index); }