internal static int ComputeRowHeight(ListView widget, CellStyleProvider styleProvider) { int w_width, row_height; Pango.Layout layout = new Pango.Layout(widget.PangoContext); if (styleProvider != null) { CellStyleQueryEventArgs ret = new CellStyleQueryEventArgs(StateType.Normal, new CellPosition(0, 0)); if (widget.Model != null && widget.Model.Count > 0) { styleProvider(widget, ret); } if (ret.Style != null) { layout.SetMarkup(ret.Style.GetMarkup("W")); } else { layout.SetText("W"); } } else { layout.SetText("W"); } layout.GetPixelSize(out w_width, out row_height); layout.Dispose(); return(row_height + 8); }
public PangoStyle QueryCellStyle(StateType state, CellPosition cell) { if (cell.Column >= 0) { CellStyleQueryEventArgs ret = new CellStyleQueryEventArgs(state, cell); if (cell.Row >= 0 && CellStyleProvider != null) { if (Model != null && Model.Count > 0) { CellStyleProvider(this, ret); } if (ret.Style != null) { return(ret.Style); } } else if (cell.Row == -1 && HeaderStyleProvider != null) { HeaderStyleProvider(this, ret); if (ret.Style != null) { return(ret.Style); } } else if (cell.Row == -2 && FooterStyleProvider != null) { FooterStyleProvider(this, ret); if (ret.Style != null) { return(ret.Style); } } } return(defaultCellStyle); }