public OneValueForAllCells(IValuePerCell <T> next) { _next = next; _next.changed += (object sender, CellCoords e) => { _val = default(T); _got = false; changed(this, e); }; }
protected OneValueForEachColumnOrRow(IValuePerCell <T> next, WhichWay ww) { _next = next; _ww = ww; _cache = new Dictionary <int, T> (); _next.changed += (object sender, CellCoords e) => { _cache.Clear(); // TODO this is too heavy-handed, probably changed(this, e); }; }
// TODO need a cache policy of some kind. pass in on constructor? max number of cells? public ValuePerCell_Cache(IValuePerCell <T> cd) { _cd = cd; _cache = new Cache <T> (null); _cd.changed += (object sender, CellCoords e) => { _cache.do_changed(e); if (changed != null) { changed(this, e); } }; }
public DrawCell_Text(IValuePerCell <string> vals, IValuePerCell <MyTextFormat> fmtinfo) : base(vals, fmtinfo, draw) { }
public DrawCell_Fill(IValuePerCell <Color> vals, IDrawCell <IGraphics> chain = null) : base(vals, draw, chain) { }
public DrawCell_Chain_Padding(IValuePerCell <Padding?> vals, IDrawCell <IGraphics> cd) : base(vals, cd) { }
public DrawCell_Chain_Padding(IValuePerCell <Padding?> vals, IDrawCell <CGContext> cd) : base(vals, cd) { }
public DrawCell_Fill(IValuePerCell <CGColor> vals, IDrawCell <CGContext> chain = null) : base(vals, draw, chain) { }
public DrawCell_Chain_Padding(IValuePerCell <Padding?> vals, IDrawCell <TGraphics> cd) : base(vals, null, cd) { _func_chain = chain_draw; }
public OneValueForEachRow(IValuePerCell <T> next) : base(next, WhichWay.ROW) { }
public OneValueForEachColumn(IValuePerCell <T> next) : base(next, WhichWay.COLUMN) { }