public LanguageItemWindow (ILanguageItem item, IParserContext ctx, Ambience ambience,
		                           string errorInformations) : base (WindowType.Popup)
		{
			Name = "gtk-tooltips";
			
			// Approximate value for usual case
			StringBuilder s = new StringBuilder(150);
			
			if (item != null) {
				if (item is IParameter) {
					s.Append ("<small><i>");
					s.Append (paramStr);
					s.Append ("</i></small>\n");
					s.Append (ambience.Convert ((IParameter)item, WindowConversionFlags));
				} else if (item is LocalVariable) {
					s.Append ("<small><i>");
					s.Append (localStr);
					s.Append ("</i></small>\n");
					s.Append (ambience.Convert ((LocalVariable)item, WindowConversionFlags));
				} else if (item is IField) {				
					s.Append ("<small><i>");
					s.Append (fieldStr);
					s.Append ("</i></small>\n");
					s.Append (ambience.Convert ((IField)item, WindowConversionFlags));
				} else if (item is IProperty) {				
					s.Append ("<small><i>");
					s.Append (propertyStr);
					s.Append ("</i></small>\n");
					s.Append (ambience.Convert ((IProperty)item, WindowConversionFlags));
				} else if (item is Namespace) {
					s.Append ("namespace <b>");
					s.Append (item.Name);
					s.Append ("</b>");
				} else
					s.Append (ambience.Convert (item, WindowConversionFlags));
				
				string doc = GetDocumentation (item.Documentation).Trim ('\n');
				if (!string.IsNullOrEmpty (doc)) {
					s.Append ("\n<small>");
					s.Append (doc);
					s.Append ("</small>");
				}
			}			
			
			if (!string.IsNullOrEmpty (errorInformations)) {
				if (s.Length != 0)
					s.Append ("\n\n");
				s.Append ("<small>");
				s.Append (errorInformations);
				s.Append ("</small>");
			}
			
			Label lab = new Label ();
			lab.Markup = s.ToString ();
			lab.Xalign = 0;
			lab.Xpad = 3;
			lab.Ypad = 3;
			Add (lab);
		}
        public LanguageItemWindow(ILanguageItem item, IParserContext ctx, Ambience ambience,
                                  string errorInformations) : base(WindowType.Popup)
        {
            Name = "gtk-tooltips";

            // Approximate value for usual case
            StringBuilder s = new StringBuilder(150);

            if (item != null)
            {
                if (item is IParameter)
                {
                    s.Append("<small><i>");
                    s.Append(paramStr);
                    s.Append("</i></small>\n");
                    s.Append(ambience.Convert((IParameter)item, WindowConversionFlags));
                }
                else if (item is LocalVariable)
                {
                    s.Append("<small><i>");
                    s.Append(localStr);
                    s.Append("</i></small>\n");
                    s.Append(ambience.Convert((LocalVariable)item, WindowConversionFlags));
                }
                else if (item is IField)
                {
                    s.Append("<small><i>");
                    s.Append(fieldStr);
                    s.Append("</i></small>\n");
                    s.Append(ambience.Convert((IField)item, WindowConversionFlags));
                }
                else if (item is IProperty)
                {
                    s.Append("<small><i>");
                    s.Append(propertyStr);
                    s.Append("</i></small>\n");
                    s.Append(ambience.Convert((IProperty)item, WindowConversionFlags));
                }
                else if (item is Namespace)
                {
                    s.Append("namespace <b>");
                    s.Append(item.Name);
                    s.Append("</b>");
                }
                else
                {
                    s.Append(ambience.Convert(item, WindowConversionFlags));
                }

                string doc = GetDocumentation(item.Documentation).Trim('\n');
                if (!string.IsNullOrEmpty(doc))
                {
                    s.Append("\n<small>");
                    s.Append(doc);
                    s.Append("</small>");
                }
            }

            if (!string.IsNullOrEmpty(errorInformations))
            {
                if (s.Length != 0)
                {
                    s.Append("\n\n");
                }
                s.Append("<small>");
                s.Append(errorInformations);
                s.Append("</small>");
            }

            Label lab = new Label();

            lab.Markup = s.ToString();
            lab.Xalign = 0;
            lab.Xpad   = 3;
            lab.Ypad   = 3;
            Add(lab);
        }