public Gtk.Requisition ShowParameterInfo(IParameterDataProvider provider, int overload, int currentParam)
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }
            int numParams = System.Math.Max(0, provider.GetParameterCount(overload));

            string[] paramText = new string[numParams];
            for (int i = 0; i < numParams; i++)
            {
                string txt = provider.GetParameterMarkup(overload, i);
                if (i == currentParam)
                {
                    txt = "<u><span foreground='darkblue'>" + txt + "</span></u>";
                }
                paramText [i] = txt;
            }
            string text = provider.GetMethodMarkup(overload, paramText, currentParam);

            desc.Markup = text;

            if (provider.OverloadCount > 1)
            {
                count.Show();
                goPrev.Show();
                goNext.Show();
                count.Text = GettextCatalog.GetString("{0} of {1}", overload + 1, provider.OverloadCount);
            }
            else
            {
                count.Hide();
                goPrev.Hide();
                goNext.Hide();
            }
            Gtk.Requisition req = mainBox.SizeRequest();
            Resize(req.Width, req.Height);
            return(req);
        }