private void TimerSearch_Timeout(object sender, EventArgs e) { string query = txtSearch.Text; DocItem ret = Docs.SearchComplex(query); if (ret == null) { txtSearch.ForeColor = Color.Red; } else { txtSearch.ForeColor = Color.Black; switch (ret.GetKind()) { case DocItem.MemberKind.Method: case DocItem.MemberKind.Attribute: DocMember mem = (DocMember)ret; SelectClass(mem.Parent); SelectMember(mem); lvMembers.Focus(); break; case DocItem.MemberKind.Parameter: break; case DocItem.MemberKind.Class: SelectClass(ret.GetName()); break; default: break; } } }
private string BeautifyReturnType(DocMember item) { string ret = ""; if (item.ReturnConst) { ret += "#0033ccconst "; } ret += GetTypeColor(item.ReturnType).ToHex() + (item.ReturnType == "" ? "none" : item.ReturnType); if (item.ReturnPointer) { ret += "#0033cc &"; } return(ret); }
private void UpdateMemberInfo(DocMember item) { lblMemName.Text = item.Name; lblMemName.ForeColor = ColorScheme["MemberName"]; switch (item.Kind) { case DocMember.MemberKind.Method: gbVariable.Visible = false; gbFunction.Visible = true; lblRetType.Text = ""; lblRetType.AppendFormatted(BeautifyReturnType(item)); lvParameters.Items.Clear(); if (item.Parameters.Length > 0) { foreach (var param in item.Parameters) { ListViewItem itm = new ListViewItem(param.Type); itm.SubItems[0].ForeColor = GetTypeColor(param.Type); bool noname = param.Name == ""; itm.AddSubItemWithName("name", noname ? "?" : param.Name, ColorScheme[noname ? "InvalidMemberName" : "MemberName"]); bool hascomment = Comms.ContainsKey(param.ID); var commitem = itm.SubItems.Add(hascomment ? Comms[param.ID] : "Double click to edit"); if (!hascomment) { commitem.ForeColor = Color.LightGray; } lvParameters.Items.Add(itm); } lvParameters.Show(); lblParameters.Show(); } else { lvParameters.Hide(); lblParameters.Hide(); } break; case DocMember.MemberKind.Attribute: gbVariable.Visible = true; gbFunction.Visible = false; lblVarType.Text = ""; lblVarType.AppendFormatted(BeautifyReturnType(item)); break; case DocMember.MemberKind.Class: default: break; } txtComments.Clear(); if (Comms.ContainsKey(item.ID)) { txtComments.Text = Comms[item.ID]; } }
private int SelectMember(DocMember mem, bool sel = true) { return(SelectMember(mem.Name, sel)); }