コード例 #1
0
        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;
                }
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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];
            }
        }
コード例 #4
0
 private int SelectMember(DocMember mem, bool sel = true)
 {
     return(SelectMember(mem.Name, sel));
 }