Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }