Beispiel #1
0
        private static void Load_emotic()
        {
            DirectoryInfo di = new DirectoryInfo(Settings.AppPath + "emoticons");

            FileInfo[] files = di.GetFiles();
            ex_emotic = new ExtendedEmoticon[files.Length];

            for (int i = 0; i < files.Length; i++)
            {
                using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(files[i].FullName)))
                    using (Bitmap raw = new Bitmap(ms))
                    {
                        ExtendedEmoticon ex = new ExtendedEmoticon();
                        ex.Img = new Bitmap(raw.Width, raw.Height);

                        using (Graphics g = Graphics.FromImage(ex.Img))
                            g.DrawImage(raw, new Point(0, 0));

                        ex.ShortcutText = Path.GetFileNameWithoutExtension(files[i].Name).ToUpper();
                        ex.Height       = ex.Img.Height;
                        ex_emotic[i]    = ex;
                    }
            }

            emotic = new Bitmap[49];
            int       count = 0;
            Rectangle r1    = new Rectangle(0, 0, 16, 16);
            Rectangle r2    = new Rectangle(0, 0, 16, 16);

            using (Bitmap raw = Properties.Resources.emotic)
            {
                for (int y = 0; y < 7; y++)
                {
                    for (int x = 0; x < 7; x++)
                    {
                        emotic[count] = new Bitmap(16, 16);
                        r2.X          = (x * 16);
                        r2.Y          = (y * 16);

                        using (Graphics g = Graphics.FromImage(emotic[count]))
                            g.DrawImage(raw, r1, r2, GraphicsUnit.Pixel);

                        emotic[count].MakeTransparent(Color.Magenta);
                        count++;
                    }
                }
            }

            Emoji.Load();
        }
Beispiel #2
0
        public EmoticonMenu()
        {
            this.InitializeComponent();
            this.ClientSize  = new Size(232, 267);
            this.MaximumSize = this.Size;
            this.MinimumSize = this.Size;
            this.emRegMenu1.EmoticonClicked += this.RegEmoticonClicked;
            this.VisibleChanged             += this.EmoticonMenu_VisibleChanged;

            String path = Path.Combine(Settings.AniEmoticPath, "ext");

            FileInfo[] files = new DirectoryInfo(path).GetFiles();

            for (int i = 0; i < files.Length; i++)
            {
                PictureBox pb = new PictureBox();
                pb.BackColor     = Color.White;
                pb.Size          = new Size(50, 50);
                pb.Location      = new Point(1 + ((i % 4) * 50) + (i % 4), 1 + ((i / 4) * 50) + (i / 4));
                pb.ImageLocation = files[i].FullName;
                pb.SizeMode      = PictureBoxSizeMode.CenterImage | PictureBoxSizeMode.StretchImage;
                pb.Tag           = Path.GetFileNameWithoutExtension(files[i].FullName);
                pb.Click        += this.EmoticonClicked;
                pb.Cursor        = Cursors.Hand;
                this.emExtMenu1.Controls.Add(pb);
            }

            this.ilist = new ImageList();
            this.ilist.Images.Add((Bitmap)Emoticons.emotic[0].Clone());
            this.ilist.Images.Add((Bitmap)Emoji.EmojiFromFileName("1f43c.png").Image.Clone());
            this.tabControl1.ImageList = this.ilist;
            this.tabControl1.TabPages[0].ImageIndex = 0;
            this.tabControl1.TabPages[1].ImageIndex = 1;
            this.tabControl1.SelectedIndexChanged  += this.MenuSelectedIndexChanged;

            this.toolStripButton1.Image = (Bitmap)Emoji.EmojiFromFileName("1f604.png").Image.Clone();
            this.toolStripButton1.Tag   = EmojiMenuBarSelectedItem.People;
            this.toolStripButton2.Image = (Bitmap)Emoji.EmojiFromFileName("1f338.png").Image.Clone();
            this.toolStripButton2.Tag   = EmojiMenuBarSelectedItem.Nature;
            this.toolStripButton3.Image = (Bitmap)Emoji.EmojiFromFileName("1f514.png").Image.Clone();
            this.toolStripButton3.Tag   = EmojiMenuBarSelectedItem.Objects;
            this.toolStripButton4.Image = (Bitmap)Emoji.EmojiFromFileName("1f698.png").Image.Clone();
            this.toolStripButton4.Tag   = EmojiMenuBarSelectedItem.Places;
            this.toolStripButton5.Image = (Bitmap)Emoji.EmojiFromFileName("1f523.png").Image.Clone();
            this.toolStripButton5.Tag   = EmojiMenuBarSelectedItem.Symbols;

            this.mbar = new EmojiMenuBar();
            this.toolStrip1.Renderer     = this.mbar;
            this.toolStrip1.ItemClicked += this.ToolstripItemClicked;

            this.e_people            = new Emoji_People();
            this.e_people.Dock       = DockStyle.Fill;
            this.e_people.AutoScroll = true;
            this.e_people.BackColor  = Color.White;
            this.e_people.Populate(this.EmojiClicked);

            this.e_nature            = new Emoji_Nature();
            this.e_nature.Dock       = DockStyle.Fill;
            this.e_nature.AutoScroll = true;
            this.e_nature.BackColor  = Color.White;
            this.e_nature.Populate(this.EmojiClicked);

            this.e_objects            = new Emoji_Objects();
            this.e_objects.Dock       = DockStyle.Fill;
            this.e_objects.AutoScroll = true;
            this.e_objects.BackColor  = Color.White;
            this.e_objects.Populate(this.EmojiClicked);

            this.e_places            = new Emoji_Places();
            this.e_places.Dock       = DockStyle.Fill;
            this.e_places.AutoScroll = true;
            this.e_places.BackColor  = Color.White;
            this.e_places.Populate(this.EmojiClicked);

            this.e_symbols            = new Emoji_Symbols();
            this.e_symbols.Dock       = DockStyle.Fill;
            this.e_symbols.AutoScroll = true;
            this.e_symbols.BackColor  = Color.White;
            this.e_symbols.Populate(this.EmojiClicked);

            this.panel1.Controls.Add(this.e_people);
        }
Beispiel #3
0
        private void Render(String txt, String name, bool can_col, int first_col, AresFont _ff)
        {
            String text = txt.Replace("\r\n", "\r").Replace("\n",
                                                            "\r").Replace("", "").Replace("]̽", "").Replace(" ̽",
                                                                                                             "").Replace("͊", "").Replace("]͊", "").Replace("͠",
                                                                                                                                                            "").Replace("̶", "").Replace("̅", "");

            List <Color>  cols = new List <Color>();
            StringBuilder rtf  = new StringBuilder();
            int           col_index;
            String        bg_test;
            AresFont      ff = _ff;

            if (!Settings.GetReg <bool>("receive_ppl_fonts", true))
            {
                ff = null;
            }

            if (ff == null)
            {
                cols.Add(this.GetColorFromCode(first_col));
            }
            else
            {
                bg_test = ff.TextColor.ToUpper().Replace("#", String.Empty);

                if (bg_test == "000000" && this.IsBlack)
                {
                    bg_test = "#FFFFFF";
                }
                else if (bg_test == "FFFFFF" && !this.IsBlack)
                {
                    bg_test = "#000000";
                }
                else
                {
                    bg_test = ff.TextColor;
                }

                cols.Add(this.HTMLColorToColor(bg_test));
            }

            rtf.Append("\\cf1 ");

            if (this.GetColorIndex(ref cols, this.IsBlack ? Color.Black : Color.White) == -1)
            {
                cols.Add(this.IsBlack ? Color.Black : Color.White);
                rtf.Append("\\highlight2 ");
            }
            else
            {
                rtf.Append("\\highlight1 ");
            }

            char[]    letters = text.ToCharArray();
            bool      bold = false, italic = false, underline = false;
            bool      can_emoticon = Settings.GetReg <bool>("can_emoticon", true);
            int       emote_count  = 0;
            Color     back_color   = this.IsBlack ? Color.Black : Color.White;
            bool      bg_code_used = false;
            EmojiItem emojiitem;
            String    tmp;
            int       itmp;

            using (Graphics richtextbox = this.CreateGraphics())
            {
                for (int i = 0; i < letters.Length; i++)
                {
                    switch (letters[i])
                    {
                    case '\x0006':
                        bold = !bold;
                        rtf.Append(bold ? "\\b" : "\\b0");
                        break;

                    case '\x0007':
                        underline = !underline;
                        rtf.Append(underline ? "\\ul" : "\\ul0");
                        break;

                    case '\x0009':
                        italic = !italic;
                        rtf.Append(italic ? "\\i" : "\\i0");
                        break;

                    case '\x03':
                        if (letters.Length >= (i + 8))
                        {
                            tmp = text.Substring((i + 1), 7);

                            if (Helpers.IsHexCode(tmp))
                            {
                                if (!bg_code_used)
                                {
                                    if (this.IsBlack && tmp == "#000000")
                                    {
                                        itmp = 0;
                                    }
                                    else if (!this.IsBlack && tmp.ToUpper() == "#FFFFFF")
                                    {
                                        itmp = 1;
                                    }
                                }

                                col_index = this.GetColorIndex(ref cols, this.HTMLColorToColor(tmp));

                                if (col_index > -1)
                                {
                                    rtf.Append("\\cf0\\cf" + (col_index + 1) + " ");
                                }
                                else
                                {
                                    cols.Add(this.HTMLColorToColor(tmp));
                                    rtf.Append("\\cf0\\cf" + cols.Count + " ");
                                }

                                i += 7;
                                break;
                            }
                        }

                        if (letters.Length >= (i + 3))
                        {
                            tmp = text.Substring((i + 1), 2);

                            if (int.TryParse(tmp, out itmp))
                            {
                                if (!bg_code_used)
                                {
                                    if (this.IsBlack && itmp == 1)
                                    {
                                        itmp = 0;
                                    }
                                    else if (!this.IsBlack && itmp == 0)
                                    {
                                        itmp = 1;
                                    }
                                }

                                col_index = this.GetColorIndex(ref cols, this.GetColorFromCode(itmp));

                                if (col_index > -1)
                                {
                                    rtf.Append("\\cf0\\cf" + (col_index + 1) + " ");
                                }
                                else
                                {
                                    cols.Add(this.GetColorFromCode(itmp));
                                    rtf.Append("\\cf0\\cf" + cols.Count + " ");
                                }

                                i += 2;
                                break;
                            }
                        }
                        goto default;

                    case '\x05':
                        if (letters.Length >= (i + 8))
                        {
                            tmp = text.Substring((i + 1), 7);

                            if (Helpers.IsHexCode(tmp))
                            {
                                back_color = this.HTMLColorToColor(tmp);
                                col_index  = this.GetColorIndex(ref cols, back_color);

                                if (col_index > -1)
                                {
                                    rtf.Append("\\highlight0\\highlight" + (col_index + 1) + " ");
                                }
                                else
                                {
                                    cols.Add(back_color);
                                    rtf.Append("\\highlight0\\highlight" + cols.Count + " ");
                                }

                                bg_code_used = true;
                                i           += 7;
                                break;
                            }
                        }

                        if (letters.Length >= (i + 3))
                        {
                            tmp = text.Substring((i + 1), 2);

                            if (int.TryParse(tmp, out itmp))
                            {
                                back_color = this.GetColorFromCode(itmp);
                                col_index  = this.GetColorIndex(ref cols, back_color);

                                if (col_index > -1)
                                {
                                    rtf.Append("\\highlight0\\highlight" + (col_index + 1) + " ");
                                }
                                else
                                {
                                    cols.Add(back_color);
                                    rtf.Append("\\highlight0\\highlight" + cols.Count + " ");
                                }

                                bg_code_used = true;
                                i           += 2;
                                break;
                            }
                        }
                        goto default;

                    case (char)35:
                    case (char)48:
                    case (char)49:
                    case (char)50:
                    case (char)51:
                    case (char)52:
                    case (char)53:
                    case (char)54:
                    case (char)55:
                    case (char)56:
                    case (char)57:
                    case (char)169:
                    case (char)174:
                    case (char)55356:
                    case (char)55357:
                    case (char)8252:
                    case (char)8265:
                    case (char)8482:
                    case (char)8505:
                    case (char)8596:
                    case (char)8597:
                    case (char)8598:
                    case (char)8599:
                    case (char)8600:
                    case (char)8601:
                    case (char)8617:
                    case (char)8618:
                    case (char)8986:
                    case (char)8987:
                    case (char)9193:
                    case (char)9194:
                    case (char)9195:
                    case (char)9196:
                    case (char)9200:
                    case (char)9203:
                    case (char)9410:
                    case (char)9642:
                    case (char)9643:
                    case (char)9654:
                    case (char)9664:
                    case (char)9723:
                    case (char)9724:
                    case (char)9725:
                    case (char)9726:
                    case (char)9728:
                    case (char)9729:
                    case (char)9742:
                    case (char)9745:
                    case (char)9748:
                    case (char)9749:
                    case (char)9757:
                    case (char)9786:
                    case (char)9800:
                    case (char)9801:
                    case (char)9802:
                    case (char)9803:
                    case (char)9804:
                    case (char)9805:
                    case (char)9806:
                    case (char)9807:
                    case (char)9808:
                    case (char)9809:
                    case (char)9810:
                    case (char)9811:
                    case (char)9824:
                    case (char)9827:
                    case (char)9829:
                    case (char)9830:
                    case (char)9832:
                    case (char)9851:
                    case (char)9855:
                    case (char)9875:
                    case (char)9888:
                    case (char)9889:
                    case (char)9898:
                    case (char)9899:
                    case (char)9917:
                    case (char)9918:
                    case (char)9924:
                    case (char)9925:
                    case (char)9934:
                    case (char)9940:
                    case (char)9962:
                    case (char)9970:
                    case (char)9971:
                    case (char)9973:
                    case (char)9978:
                    case (char)9981:
                    case (char)9986:
                    case (char)9989:
                    case (char)9992:
                    case (char)9993:
                    case (char)9994:
                    case (char)9995:
                    case (char)9996:
                    case (char)9999:
                    case (char)10002:
                    case (char)10004:
                    case (char)10006:
                    case (char)10024:
                    case (char)10035:
                    case (char)10036:
                    case (char)10052:
                    case (char)10055:
                    case (char)10060:
                    case (char)10062:
                    case (char)10067:
                    case (char)10068:
                    case (char)10069:
                    case (char)10071:
                    case (char)10084:
                    case (char)10133:
                    case (char)10134:
                    case (char)10135:
                    case (char)10145:
                    case (char)10160:
                    case (char)10175:
                    case (char)10548:
                    case (char)10549:
                    case (char)11013:
                    case (char)11014:
                    case (char)11015:
                    case (char)11035:
                    case (char)11036:
                    case (char)11088:
                    case (char)11093:
                    case (char)12336:
                    case (char)12349:
                    case (char)12951:
                    case (char)12953:
                        if (can_emoticon)
                        {
                            emojiitem = Emoji.GetEmoji24(letters, i);

                            if (emojiitem != null)
                            {
                                if (emote_count++ < 8)
                                {
                                    rtf.Append(Emoticons.GetRTFEmoji(emojiitem.Image, back_color, richtextbox));
                                    i += (emojiitem.Length - 1);
                                    break;
                                }
                                else
                                {
                                    goto default;
                                }
                            }
                        }
                        goto default;


                    case '(':
                    case ':':
                    case ';':
                        if (can_emoticon)
                        {
                            Emotic em = Emoticons.FindEmoticon(text.ToString().Substring(i).ToUpper());

                            if (em != null)
                            {
                                if (emote_count++ < 8)
                                {
                                    rtf.Append(Emoticons.GetRTFEmoticon(em.Index, back_color, richtextbox));
                                    i += (em.Shortcut.Length - 1);
                                    break;
                                }
                                else
                                {
                                    goto default;
                                }
                            }

                            em = this.FindNewEmoticon(text.ToString().Substring(i).ToUpper());

                            if (em != null)
                            {
                                if (emote_count++ < 8)
                                {
                                    rtf.Append(Emoticons.GetRTFExEmoticon(em.Index, back_color, richtextbox));
                                    i += (em.Shortcut.Length - 1);
                                    break;
                                }
                                else
                                {
                                    goto default;
                                }
                            }
                        }
                        goto default;

                    default:
                        rtf.Append("\\u" + ((int)letters[i]) + "?");
                        break;
                    }
                }
            }

            if (underline)
            {
                rtf.Append("\\ul0");
            }
            if (italic)
            {
                rtf.Append("\\i0");
            }
            if (bold)
            {
                rtf.Append("\\b0");
            }

            rtf.Append("\\highlight0\\cf0");

            if (!String.IsNullOrEmpty(name))
            {
                StringBuilder name_builder = new StringBuilder();

                if (ff == null)
                {
                    Color colfromcode = this.GetColorFromCode(GlobalSettings.GetDefaultColorInt(GlobalSettings.DefaultColorType.Name, this.IsBlack));
                    col_index = this.GetColorIndex(ref cols, colfromcode);

                    if (col_index > -1)
                    {
                        name_builder.Append("\\cf" + (col_index + 1) + " ");
                    }
                    else
                    {
                        cols.Add(this.IsBlack ? Color.Yellow : Color.Black);
                        name_builder.Append("\\cf" + cols.Count + " ");
                    }
                }
                else
                {
                    bg_test = ff.NameColor.ToUpper().Replace("#", String.Empty);

                    if (bg_test == "000000" && this.IsBlack)
                    {
                        bg_test = "#FFFF00";
                    }
                    else if (bg_test == "FFFFFF" && !this.IsBlack)
                    {
                        bg_test = "#000000";
                    }
                    else
                    {
                        bg_test = ff.NameColor;
                    }

                    col_index = this.GetColorIndex(ref cols, this.HTMLColorToColor(bg_test));

                    if (col_index > -1)
                    {
                        name_builder.Append("\\cf" + (col_index + 1) + " ");
                    }
                    else
                    {
                        cols.Add(this.HTMLColorToColor(bg_test));
                        name_builder.Append("\\cf" + cols.Count + " ");
                    }
                }

                col_index = this.GetColorIndex(ref cols, this.IsBlack ? Color.Black : Color.White);

                if (col_index > -1)
                {
                    name_builder.Append("\\highlight" + (col_index + 1) + " ");
                }
                else
                {
                    cols.Add(this.IsBlack ? Color.Black : Color.White);
                    name_builder.Append("\\highlight" + cols.Count + " ");
                }

                char[] name_chrs = (name + "> ").ToCharArray();

                for (int i = 0; i < name_chrs.Length; i++)
                {
                    name_builder.Append("\\u" + ((int)name_chrs[i]) + "?");
                }

                name_builder.Append("\\highlight0\\cf0");
                rtf.Insert(0, name_builder.ToString());
                name_builder = null;
            }

            if (this.Lines.Length > 0)
            {
                rtf.Insert(0, "\\par");
            }

            if (ff == null)
            {
                rtf.Insert(0, "\\fs" + (Settings.GetReg <int>("global_font_size", 10) * 2));
            }
            else
            {
                int org_size   = Settings.GetReg <int>("global_font_size", 10);
                int difference = (org_size - 10);
                int user_size  = ff.Size + difference;
                rtf.Insert(0, "\\fs" + (user_size * 2));
            }

            StringBuilder header = new StringBuilder();

            header.Append("\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1040{\\fonttbl{\\f0\\fswiss\\fprq2\\fcharset0");

            if (ff == null)
            {
                header.Append(Settings.GetReg <String>("global_font", "Tahoma") + ";}}");
            }
            else
            {
                header.Append(ff.FontName + ";}}");
            }

            header.Append(this.ColorsToRTFColorTable(cols.ToArray()));

            this.SelectionLength = 0;
            this.SelectionStart  = this.Text.Length;
            this.TrimLines();
            this.SelectedRtf     = "{" + header + rtf + "}";
            this.SelectionLength = 0;
            this.SelectionStart  = this.Text.Length;

            cols.Clear();
            cols = null;
            rtf  = null;
            text = null;

            while (this.CanUndo)
            {
                this.ClearUndo();
            }
        }
Beispiel #4
0
        public void RenderChannelListItem(ChannelListViewItem item, FavouritesListItem org)
        {
            using (Bitmap bmp = new Bitmap(154, 15))
                using (Graphics g = Graphics.FromImage(bmp))
                {
                    g.Clear(Color.White);

                    String text    = org.Name;
                    char[] letters = text.ToCharArray();
                    int    x       = 0;

                    for (var i = 0; i < letters.Length; i++)
                    {
                        switch (letters[i])
                        {
                        case ' ':
                            x += 3;
                            break;

                        default:
                            int w = (int)Math.Round((double)g.MeasureString(letters[i].ToString(), this.t_font, 100, StringFormat.GenericTypographic).Width);

                            if ((w + x) < 154)
                            {
                                g.DrawString(letters[i].ToString(), this.t_font, Brushes.Black, new PointF(x, 0));
                            }

                            x += w;
                            break;
                        }

                        if (x >= 154)
                        {
                            break;
                        }
                    }

                    item.NameImg = new Bitmap(x + 2, 15);

                    using (Graphics g2 = Graphics.FromImage(item.NameImg))
                    {
                        g2.Clear(Color.Transparent);
                        g2.DrawImage(bmp, new Point(0, 0));
                    }
                }

            using (Bitmap bmp = new Bitmap(35, 15))
                using (Graphics g = Graphics.FromImage(bmp))
                {
                    g.Clear(Color.White);

                    String text = org.CountString;

                    if (String.IsNullOrEmpty(text))
                    {
                        text = String.Empty;
                    }

                    char[] letters = text.ToCharArray();
                    int    x       = 0;

                    for (var i = 0; i < letters.Length; i++)
                    {
                        switch (letters[i])
                        {
                        case ' ':
                            x += 3;
                            break;

                        default:
                            int w = (int)Math.Round((double)g.MeasureString(letters[i].ToString(), this.t_font, 100, StringFormat.GenericTypographic).Width);

                            if ((w + x) < 35)
                            {
                                g.DrawString(letters[i].ToString(), this.t_font, Brushes.Black, new PointF(x, 0));
                            }

                            x += w;
                            break;
                        }

                        if (x >= 35)
                        {
                            break;
                        }
                    }

                    item.CountImg = new Bitmap(x + 2, 15);

                    using (Graphics g2 = Graphics.FromImage(item.CountImg))
                    {
                        g2.Clear(Color.Transparent);
                        g2.DrawImage(bmp, new Point(0, 0));
                    }
                }

            using (Bitmap bmp = new Bitmap(1024, 15))
                using (Graphics g = Graphics.FromImage(bmp))
                {
                    g.Clear(Color.White);
                    g.CompositingQuality = CompositingQuality.HighQuality;
                    g.InterpolationMode  = InterpolationMode.HighQualityBilinear;

                    String    text = org.Topic;
                    char[]    letters = text.ToCharArray();
                    int       x = 0;
                    bool      bold = false, italic = false, underline = false;
                    Color     fore_color = Color.Black;
                    int       color_finder;
                    EmojiItem emoji_item;

                    for (var i = 0; i < letters.Length; i++)
                    {
                        switch (letters[i])
                        {
                        case '\x0006':
                            bold = !bold;
                            break;

                        case '\x0007':
                            underline = !underline;
                            break;

                        case '\x0009':
                            italic = !italic;
                            break;

                        case '\x0003':
                            if (letters.Length >= (i + 3))
                            {
                                if (int.TryParse(text.Substring(i + 1, 2), out color_finder))
                                {
                                    fore_color = this.GetColorFromCode(color_finder);
                                    i         += 2;
                                }
                                else
                                {
                                    goto default;
                                }
                            }
                            else
                            {
                                goto default;
                            }
                            break;

                        case '\x0005':
                            if (letters.Length >= (i + 3))
                            {
                                if (int.TryParse(text.Substring(i + 1, 2), out color_finder))
                                {
                                    Color back_color = this.GetColorFromCode(color_finder);
                                    i += 2;

                                    using (SolidBrush brush = new SolidBrush(back_color))
                                        g.FillRectangle(brush, new Rectangle(x + 2, 0, 1024 - x - 2, 15));
                                }
                                else
                                {
                                    goto default;
                                }
                            }
                            else
                            {
                                goto default;
                            }
                            break;

                        case ' ':
                            x += underline ? 2 : (bold ? 4 : 3);

                            if (underline)
                            {
                                using (Font font = new Font(this.t_font, this.CreateFont(bold, italic, underline)))
                                    using (SolidBrush brush = new SolidBrush(fore_color))
                                        g.DrawString(" ", font, brush, new PointF(x, 0));
                            }
                            break;

                        case '(':
                        case ':':
                        case ';':
                            Emotic em = Emoticons.FindEmoticon(text.Substring(i).ToUpper());

                            if (em != null)
                            {
                                g.DrawImage(Emoticons.emotic[em.Index], new RectangleF(x + 2, 0, 15, 15));
                                x += 15;
                                i += (em.Shortcut.Length - 1);
                                break;
                            }
                            else
                            {
                                goto default;
                            }

                        case (char)35:
                        case (char)48:
                        case (char)49:
                        case (char)50:
                        case (char)51:
                        case (char)52:
                        case (char)53:
                        case (char)54:
                        case (char)55:
                        case (char)56:
                        case (char)57:
                        case (char)169:
                        case (char)174:
                        case (char)55356:
                        case (char)55357:
                        case (char)8252:
                        case (char)8265:
                        case (char)8482:
                        case (char)8505:
                        case (char)8596:
                        case (char)8597:
                        case (char)8598:
                        case (char)8599:
                        case (char)8600:
                        case (char)8601:
                        case (char)8617:
                        case (char)8618:
                        case (char)8986:
                        case (char)8987:
                        case (char)9193:
                        case (char)9194:
                        case (char)9195:
                        case (char)9196:
                        case (char)9200:
                        case (char)9203:
                        case (char)9410:
                        case (char)9642:
                        case (char)9643:
                        case (char)9654:
                        case (char)9664:
                        case (char)9723:
                        case (char)9724:
                        case (char)9725:
                        case (char)9726:
                        case (char)9728:
                        case (char)9729:
                        case (char)9742:
                        case (char)9745:
                        case (char)9748:
                        case (char)9749:
                        case (char)9757:
                        case (char)9786:
                        case (char)9800:
                        case (char)9801:
                        case (char)9802:
                        case (char)9803:
                        case (char)9804:
                        case (char)9805:
                        case (char)9806:
                        case (char)9807:
                        case (char)9808:
                        case (char)9809:
                        case (char)9810:
                        case (char)9811:
                        case (char)9824:
                        case (char)9827:
                        case (char)9829:
                        case (char)9830:
                        case (char)9832:
                        case (char)9851:
                        case (char)9855:
                        case (char)9875:
                        case (char)9888:
                        case (char)9889:
                        case (char)9898:
                        case (char)9899:
                        case (char)9917:
                        case (char)9918:
                        case (char)9924:
                        case (char)9925:
                        case (char)9934:
                        case (char)9940:
                        case (char)9962:
                        case (char)9970:
                        case (char)9971:
                        case (char)9973:
                        case (char)9978:
                        case (char)9981:
                        case (char)9986:
                        case (char)9989:
                        case (char)9992:
                        case (char)9993:
                        case (char)9994:
                        case (char)9995:
                        case (char)9996:
                        case (char)9999:
                        case (char)10002:
                        case (char)10004:
                        case (char)10006:
                        case (char)10024:
                        case (char)10035:
                        case (char)10036:
                        case (char)10052:
                        case (char)10055:
                        case (char)10060:
                        case (char)10062:
                        case (char)10067:
                        case (char)10068:
                        case (char)10069:
                        case (char)10071:
                        case (char)10084:
                        case (char)10133:
                        case (char)10134:
                        case (char)10135:
                        case (char)10145:
                        case (char)10160:
                        case (char)10175:
                        case (char)10548:
                        case (char)10549:
                        case (char)11013:
                        case (char)11014:
                        case (char)11015:
                        case (char)11035:
                        case (char)11036:
                        case (char)11088:
                        case (char)11093:
                        case (char)12336:
                        case (char)12349:
                        case (char)12951:
                        case (char)12953:
                            emoji_item = Emoji.GetEmoji24(letters, i);

                            if (emoji_item != null)
                            {
                                g.DrawImage(emoji_item.Image, new RectangleF(x + 2, 0, 15, 15));
                                x += 15;
                                i += (emoji_item.Length - 1);
                                break;
                            }
                            else
                            {
                                goto default;
                            }

                        default:
                            using (Font f = new Font(this.t_font, this.CreateFont(bold, italic, underline)))
                                using (SolidBrush brush = new SolidBrush(fore_color))
                                {
                                    int w = (int)Math.Round((double)g.MeasureString(letters[i].ToString(), f, 100, StringFormat.GenericTypographic).Width);
                                    g.DrawString(letters[i].ToString(), f, brush, new PointF(x, 0));
                                    x += w;
                                }
                            break;
                        }
                    }

                    item.TopicImg = new Bitmap(x + 2, 15);

                    using (Graphics g2 = Graphics.FromImage(item.TopicImg))
                    {
                        g2.Clear(Color.Transparent);
                        g2.DrawImage(bmp, new Point(0, 0));
                    }
                }
        }
Beispiel #5
0
        public void Populate(EventHandler callback)
        {
            this.tip = new ToolTip();

            EmojiMenuShortcutItem[] items = new EmojiMenuShortcutItem[207];
            items[0] = new EmojiMenuShortcutItem {
                SurrogateSequence = "49 8419", Shortcut = "1⃣", Description = "Keycap 1"
            };
            items[1] = new EmojiMenuShortcutItem {
                SurrogateSequence = "50 8419", Shortcut = "2⃣", Description = "Keycap 2"
            };
            items[2] = new EmojiMenuShortcutItem {
                SurrogateSequence = "51 8419", Shortcut = "3⃣", Description = "Keycap 3"
            };
            items[3] = new EmojiMenuShortcutItem {
                SurrogateSequence = "52 8419", Shortcut = "4⃣", Description = "Keycap 4"
            };
            items[4] = new EmojiMenuShortcutItem {
                SurrogateSequence = "53 8419", Shortcut = "5⃣", Description = "Keycap 5"
            };
            items[5] = new EmojiMenuShortcutItem {
                SurrogateSequence = "54 8419", Shortcut = "6⃣", Description = "Keycap 6"
            };
            items[6] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55 8419", Shortcut = "7⃣", Description = "Keycap 7"
            };
            items[7] = new EmojiMenuShortcutItem {
                SurrogateSequence = "56 8419", Shortcut = "8⃣", Description = "Keycap 8"
            };
            items[8] = new EmojiMenuShortcutItem {
                SurrogateSequence = "57 8419", Shortcut = "9⃣", Description = "Keycap 9"
            };
            items[9] = new EmojiMenuShortcutItem {
                SurrogateSequence = "48 8419", Shortcut = "0⃣", Description = "Keycap 0"
            };
            items[10] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56607", Shortcut = "🔟", Description = "Keycap Ten"
            };
            items[11] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56610", Shortcut = "🔢", Description = "Input Symbol For Numbers"
            };
            items[12] = new EmojiMenuShortcutItem {
                SurrogateSequence = "35 8419", Shortcut = "#⃣", Description = "Hash Key"
            };
            items[13] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56611", Shortcut = "🔣", Description = "Input Symbol For Symbols"
            };
            items[14] = new EmojiMenuShortcutItem {
                SurrogateSequence = "11014", Shortcut = "⬆", Description = "Upwards Black Arrow"
            };
            items[15] = new EmojiMenuShortcutItem {
                SurrogateSequence = "11015", Shortcut = "⬇", Description = "Downwards Black Arrow"
            };
            items[16] = new EmojiMenuShortcutItem {
                SurrogateSequence = "11013", Shortcut = "⬅", Description = "Leftwards Black Arrow"
            };
            items[17] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10145", Shortcut = "➡", Description = "Black Rightwards Arrow"
            };
            items[18] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56608", Shortcut = "🔠", Description = "Input Symbol For Latin Capital Letters"
            };
            items[19] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56609", Shortcut = "🔡", Description = "Input Symbol For Latin Small Letters"
            };
            items[20] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56612", Shortcut = "🔤", Description = "Input Symbol For Latin Letters"
            };
            items[21] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8599", Shortcut = "↗", Description = "North East Arrow"
            };
            items[22] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8598", Shortcut = "↖", Description = "North West Arrow"
            };
            items[23] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8600", Shortcut = "↘", Description = "South East Arrow"
            };
            items[24] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8601", Shortcut = "↙", Description = "South West Arrow"
            };
            items[25] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8596", Shortcut = "↔", Description = "Left Right Arrow"
            };
            items[26] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8597", Shortcut = "↕", Description = "Up Down Arrow"
            };
            items[27] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56580", Shortcut = "🔄", Description = "Anticlockwise Downwards And Upwards"
            };
            items[28] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9664", Shortcut = "◀", Description = "Black Left-Pointing Triangle"
            };
            items[29] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9654", Shortcut = "▶", Description = "Black Right-Pointing Triangle"
            };
            items[30] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56636", Shortcut = "🔼", Description = "Up-Pointing Small Red Triangle"
            };
            items[31] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56637", Shortcut = "🔽", Description = "Down-Pointing Small Red Triangle"
            };
            items[32] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8617", Shortcut = "↩", Description = "Leftwards Arrow With Hook"
            };
            items[33] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8618", Shortcut = "↪", Description = "Rightwards Arrow With Hook"
            };
            items[34] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8505", Shortcut = "ℹ", Description = "Information Source"
            };
            items[35] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9194", Shortcut = "⏪", Description = "Black Left-Pointing Double Triangle"
            };
            items[36] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9193", Shortcut = "⏩", Description = "Black Right-Pointing Double Triangle"
            };
            items[37] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9195", Shortcut = "⏫", Description = "Black Up-Pointing Double Triangle"
            };
            items[38] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9196", Shortcut = "⏬", Description = "Black Down-Pointing Double Triangle"
            };
            items[39] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10549", Shortcut = "⤵", Description = "Arrow Pointing Rightwards Then Curving Downwards"
            };
            items[40] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10548", Shortcut = "⤴", Description = "Arrow Pointing Rightwards Then Curving Upwards"
            };
            items[41] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56727", Shortcut = "🆗", Description = "Squared OK"
            };
            items[42] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56576", Shortcut = "🔀", Description = "Twisted Rightwards Arrows"
            };
            items[43] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56577", Shortcut = "🔁", Description = "Clockwise Rightwards And Leftwards Open Circle Arrows"
            };
            items[44] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56578", Shortcut = "🔂", Description = "Clockwise Rightwards And Leftwards Open Circle Arrows With Circled One Overlay"
            };
            items[45] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56725", Shortcut = "🆕", Description = "Squared New"
            };
            items[46] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56729", Shortcut = "🆙", Description = "Squared Up With Exclamation Mark"
            };
            items[47] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56722", Shortcut = "🆒", Description = "Squared Cool"
            };
            items[48] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56723", Shortcut = "🆓", Description = "Squared Free"
            };
            items[49] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56726", Shortcut = "🆖", Description = "Squared NG"
            };
            items[50] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56566", Shortcut = "📶", Description = "Antenna With Bars"
            };
            items[51] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57254", Shortcut = "🎦", Description = "Cinema"
            };
            items[52] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56833", Shortcut = "🈁", Description = "Squared Katakana Koko"
            };
            items[53] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56879", Shortcut = "🈯", Description = "Squared CJK Unified Ideograph-6307"
            };
            items[54] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56883", Shortcut = "🈳", Description = "Squared CJK Unified Ideograph-7A7A"
            };
            items[55] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56885", Shortcut = "🈵", Description = "Squared CJK Unified Ideograph-6E80"
            };
            items[56] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56884", Shortcut = "🈴", Description = "Squared CJK Unified Ideograph-5408"
            };
            items[57] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56882", Shortcut = "🈲", Description = "Squared CJK Unified Ideograph-7981"
            };
            items[58] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56912", Shortcut = "🉐", Description = "Circled Ideograph Advantage"
            };
            items[59] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56889", Shortcut = "🈹", Description = "Squared CJK Unified Ideograph-5272"
            };
            items[60] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56890", Shortcut = "🈺", Description = "Squared CJK Unified Ideograph-55B6"
            };
            items[61] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56886", Shortcut = "🈶", Description = "Squared CJK Unified Ideograph-6709"
            };
            items[62] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56858", Shortcut = "🈚", Description = "Squared CJK Unified Ideograph-7121"
            };
            items[63] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57019", Shortcut = "🚻", Description = "Restroom"
            };
            items[64] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57017", Shortcut = "🚹", Description = "Mens Symbol"
            };
            items[65] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57018", Shortcut = "🚺", Description = "Womens Symbol"
            };
            items[66] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57020", Shortcut = "🚼", Description = "Baby Symbol"
            };
            items[67] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57022", Shortcut = "🚾", Description = "Water Closet"
            };
            items[68] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57008", Shortcut = "🚰", Description = "Potable Water Symbol"
            };
            items[69] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57006", Shortcut = "🚮", Description = "Put Litter In Its Place Symbol"
            };
            items[70] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56703", Shortcut = "🅿", Description = "Negative Squared Latin Capital Letter P"
            };
            items[71] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9855", Shortcut = "♿", Description = "Wheelchair Symbol"
            };
            items[72] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57005", Shortcut = "🚭", Description = "No Smoking Symbol"
            };
            items[73] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56887", Shortcut = "🈷", Description = "Squared CJK Unified Ideograph-6708"
            };
            items[74] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56888", Shortcut = "🈸", Description = "Squared CJK Unified Ideograph-7533"
            };
            items[75] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56834", Shortcut = "🈂", Description = "Squared Katakana Sa"
            };
            items[76] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9410", Shortcut = "Ⓜ", Description = "Circled Latin Capital Letter M"
            };
            items[77] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57026", Shortcut = "🛂", Description = "Passport Control"
            };
            items[78] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57028", Shortcut = "🛄", Description = "Baggage Claim"
            };
            items[79] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57029", Shortcut = "🛅", Description = "Left Luggage"
            };
            items[80] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57027", Shortcut = "🛃", Description = "Customs"
            };
            items[81] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56913", Shortcut = "🉑", Description = "Circled Ideograph Accept"
            };
            items[82] = new EmojiMenuShortcutItem {
                SurrogateSequence = "12953", Shortcut = "㊙", Description = "Circled Ideograph Secret"
            };
            items[83] = new EmojiMenuShortcutItem {
                SurrogateSequence = "12951", Shortcut = "㊗", Description = "Circled Ideograph Congratulation"
            };
            items[84] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56721", Shortcut = "🆑", Description = "Squared CL"
            };
            items[85] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56728", Shortcut = "🆘", Description = "Squared SOS"
            };
            items[86] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56724", Shortcut = "🆔", Description = "Squared ID"
            };
            items[87] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57003", Shortcut = "🚫", Description = "No Entry Sign"
            };
            items[88] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56606", Shortcut = "🔞", Description = "No One Under Eighteen Symbol"
            };
            items[89] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56565", Shortcut = "📵", Description = "No Mobile Phones"
            };
            items[90] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57007", Shortcut = "🚯", Description = "Do Not Litter Symbol"
            };
            items[91] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57009", Shortcut = "🚱", Description = "Non-Potable Water Symbol"
            };
            items[92] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57011", Shortcut = "🚳", Description = "No Bicycles"
            };
            items[93] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57015", Shortcut = "🚷", Description = "No Pedestrians"
            };
            items[94] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57016", Shortcut = "🚸", Description = "Children Crossing"
            };
            items[95] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9940", Shortcut = "⛔", Description = "No Entry"
            };
            items[96] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10035", Shortcut = "✳", Description = "Eight Spoked Asterisk"
            };
            items[97] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10055", Shortcut = "❇", Description = "Sparkle"
            };
            items[98] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10062", Shortcut = "❎", Description = "Negative Squared Cross Mark"
            };
            items[99] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9989", Shortcut = "✅", Description = "White Heavy Check Mark"
            };
            items[100] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10036", Shortcut = "✴", Description = "Eight Pointed Black Star"
            };
            items[101] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56479", Shortcut = "💟", Description = "Heart Decoration"
            };
            items[102] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56730", Shortcut = "🆚", Description = "Squared VS"
            };
            items[103] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56563", Shortcut = "📳", Description = "Vibration Mode"
            };
            items[104] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56564", Shortcut = "📴", Description = "Mobile Phone Off"
            };
            items[105] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56688", Shortcut = "🅰", Description = "Negative Squared Latin Capital Letter A"
            };
            items[106] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56689", Shortcut = "🅱", Description = "Negative Squared Latin Capital Letter B"
            };
            items[107] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56718", Shortcut = "🆎", Description = "Negative Squared AB"
            };
            items[108] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56702", Shortcut = "🅾", Description = "Negative Squared Latin Capital Letter O"
            };
            items[109] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56480", Shortcut = "💠", Description = "Diamond Shape With A Dot Inside"
            };
            items[110] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10175", Shortcut = "➿", Description = "Double Curly Loop"
            };
            items[111] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9851", Shortcut = "♻", Description = "Black Universal Recycling Symbol"
            };
            items[112] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9800", Shortcut = "♈", Description = "Aries"
            };
            items[113] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9801", Shortcut = "♉", Description = "Taurus"
            };
            items[114] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9802", Shortcut = "♊", Description = "Gemini"
            };
            items[115] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9803", Shortcut = "♋", Description = "Cancer"
            };
            items[116] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9804", Shortcut = "♌", Description = "Leo"
            };
            items[117] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9805", Shortcut = "♍", Description = "Virgo"
            };
            items[118] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9806", Shortcut = "♎", Description = "Libra"
            };
            items[119] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9807", Shortcut = "♏", Description = "Scorpius"
            };
            items[120] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9808", Shortcut = "♐", Description = "Sagittarius"
            };
            items[121] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9809", Shortcut = "♑", Description = "Capricorn"
            };
            items[122] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9810", Shortcut = "♒", Description = "Aquarius"
            };
            items[123] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9811", Shortcut = "♓", Description = "Pisces"
            };
            items[124] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9934", Shortcut = "⛎", Description = "Ophiuchus"
            };
            items[125] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56623", Shortcut = "🔯", Description = "Six Pointed Star With Middle Dot  "
            };
            items[126] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57319", Shortcut = "🏧", Description = "Automated Teller Machine"
            };
            items[127] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56505", Shortcut = "💹", Description = "Chart With Upwards Trend And Yen Sign"
            };
            items[128] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56498", Shortcut = "💲", Description = "Heavy Dollar Sign"
            };
            items[129] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56497", Shortcut = "💱", Description = "Currency Exchange"
            };
            items[130] = new EmojiMenuShortcutItem {
                SurrogateSequence = "169", Shortcut = "©", Description = "Copyright Sign"
            };
            items[131] = new EmojiMenuShortcutItem {
                SurrogateSequence = "174", Shortcut = "®", Description = "Registered Sign"
            };
            items[132] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8482", Shortcut = "™", Description = "Trade Mark Sign"
            };
            items[133] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10060", Shortcut = "❌", Description = "Cross Mark"
            };
            items[134] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8252", Shortcut = "‼", Description = "Double Exclamation Mark"
            };
            items[135] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8265", Shortcut = "⁉", Description = "Exclamation Question Mark"
            };
            items[136] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10071", Shortcut = "❗", Description = "Heavy Exclamation Mark Symbol"
            };
            items[137] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10067", Shortcut = "❓", Description = "Black Question Mark Ornament"
            };
            items[138] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10069", Shortcut = "❕", Description = "White Exclamation Mark Ornament"
            };
            items[139] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10068", Shortcut = "❔", Description = "White Question Mark Ornament"
            };
            items[140] = new EmojiMenuShortcutItem {
                SurrogateSequence = "11093", Shortcut = "⭕", Description = "Heavy Large Circle"
            };
            items[141] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56605", Shortcut = "🔝", Description = "Top With Upwards Arrow Above"
            };
            items[142] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56602", Shortcut = "🔚", Description = "End With Leftwards Arrow Above"
            };
            items[143] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56601", Shortcut = "🔙", Description = "Back With Leftwards Arrow Above"
            };
            items[144] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56603", Shortcut = "🔛", Description = "On With Exclamation Mark With Left Right Arrow Above"
            };
            items[145] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56604", Shortcut = "🔜", Description = "Soon With Rightwards Arrow Above"
            };
            items[146] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56579", Shortcut = "🔃", Description = "Clockwise Downwards And Upwards Open Circle Arrows"
            };
            items[147] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56667", Shortcut = "🕛", Description = "Clock Face Twelve O’Clock"
            };
            items[148] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56679", Shortcut = "🕧", Description = "Clock Face Twelve-Thirty"
            };
            items[149] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56656", Shortcut = "🕐", Description = "Clock Face One O’Clock"
            };
            items[150] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56668", Shortcut = "🕜", Description = "Clock Face One-Thirty"
            };
            items[151] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56657", Shortcut = "🕑", Description = "Clock Face Two O’Clock"
            };
            items[152] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56669", Shortcut = "🕝", Description = "Clock Face Two-Thirty"
            };
            items[153] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56658", Shortcut = "🕒", Description = "Clock Face Three O’Clock"
            };
            items[154] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56670", Shortcut = "🕞", Description = "Clock Face Three-Thirty"
            };
            items[155] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56659", Shortcut = "🕓", Description = "Clock Face Four O’Clock"
            };
            items[156] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56671", Shortcut = "🕟", Description = "Clock Face Four-Thirty"
            };
            items[157] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56660", Shortcut = "🕔", Description = "Clock Face Five O’Clock"
            };
            items[158] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56672", Shortcut = "🕠", Description = "Clock Face Five-Thirty"
            };
            items[159] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56661", Shortcut = "🕕", Description = "Clock Face Six O’Clock"
            };
            items[160] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56673", Shortcut = "🕡", Description = "Clock Face Six-Thirty"
            };
            items[161] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56662", Shortcut = "🕖", Description = "Clock Face Seven O’Clock"
            };
            items[162] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56674", Shortcut = "🕢", Description = "Clock Face Seven-Thirty"
            };
            items[163] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56663", Shortcut = "🕗", Description = "Clock Face Eight O’Clock"
            };
            items[164] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56675", Shortcut = "🕣", Description = "Clock Face Eight-Thirty"
            };
            items[165] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56664", Shortcut = "🕘", Description = "Clock Face Nine O’Clock"
            };
            items[166] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56676", Shortcut = "🕤", Description = "Clock Face Nine-Thirty"
            };
            items[167] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56665", Shortcut = "🕙", Description = "Clock Face Ten O’Clock"
            };
            items[168] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56677", Shortcut = "🕥", Description = "Clock Face Ten-Thirty"
            };
            items[169] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56666", Shortcut = "🕚", Description = "Clock Face Eleven O’Clock"
            };
            items[170] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56678", Shortcut = "🕦", Description = "Clock Face Eleven-Thirty"
            };
            items[171] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10006", Shortcut = "✖", Description = "Heavy Multiplication X"
            };
            items[172] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10133", Shortcut = "➕", Description = "Heavy Plus Sign"
            };
            items[173] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10134", Shortcut = "➖", Description = "Heavy Minus Sign"
            };
            items[174] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10135", Shortcut = "➗", Description = "Heavy Division Sign"
            };
            items[175] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9824", Shortcut = "♠", Description = "Black Spade Suit"
            };
            items[176] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9829", Shortcut = "♥", Description = "Black Heart Suit"
            };
            items[177] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9827", Shortcut = "♣", Description = "Black Club Suit"
            };
            items[178] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9830", Shortcut = "♦", Description = "Black Diamond Suit"
            };
            items[179] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56494", Shortcut = "💮", Description = "White Flower"
            };
            items[180] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56495", Shortcut = "💯", Description = "Hundred Points Symbol"
            };
            items[181] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10004", Shortcut = "✔", Description = "Heavy Check Mark"
            };
            items[182] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9745", Shortcut = "☑", Description = "Ballot Box With Check"
            };
            items[183] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56600", Shortcut = "🔘", Description = "Radio Button"
            };
            items[184] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56599", Shortcut = "🔗", Description = "Link Symbol"
            };
            items[185] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10160", Shortcut = "➰", Description = "Curly Loop"
            };
            items[186] = new EmojiMenuShortcutItem {
                SurrogateSequence = "12336", Shortcut = "〰", Description = "Wavy Dash"
            };
            items[187] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56625", Shortcut = "🔱", Description = "Trident Emblem"
            };
            items[188] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9724", Shortcut = "◼", Description = "Black Medium Square"
            };
            items[189] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9723", Shortcut = "◻", Description = "White Medium Square"
            };
            items[190] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9725", Shortcut = "◽", Description = "White Medium Small Square"
            };
            items[191] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9642", Shortcut = "▪", Description = "Black Small Square"
            };
            items[192] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9643", Shortcut = "▫", Description = "White Small Square"
            };
            items[193] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56634", Shortcut = "🔺", Description = "Up-Pointing Red Triangle"
            };
            items[194] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56626", Shortcut = "🔲", Description = "Black Square Button"
            };
            items[195] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56627", Shortcut = "🔳", Description = "White Square Button"
            };
            items[196] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9899", Shortcut = "⚫", Description = "Medium Black Circle"
            };
            items[197] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9898", Shortcut = "⚪", Description = "Medium White Circle"
            };
            items[198] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56628", Shortcut = "🔴", Description = "Large Red Circle"
            };
            items[199] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56629", Shortcut = "🔵", Description = "Large Blue Circle"
            };
            items[200] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56635", Shortcut = "🔻", Description = "Down-Pointing Red Triangle"
            };
            items[201] = new EmojiMenuShortcutItem {
                SurrogateSequence = "11036", Shortcut = "⬜", Description = "White Large Square"
            };
            items[202] = new EmojiMenuShortcutItem {
                SurrogateSequence = "11035", Shortcut = "⬛", Description = "Black Large Square"
            };
            items[203] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56630", Shortcut = "🔶", Description = "Large Orange Diamond"
            };
            items[204] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56631", Shortcut = "🔷", Description = "Large Blue Diamond"
            };
            items[205] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56632", Shortcut = "🔸", Description = "Small Orange Diamond"
            };
            items[206] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56633", Shortcut = "🔹", Description = "Small Blue Diamond"
            };

            for (int i = 0; i < items.Length; i++)
            {
                PictureBox pic = new PictureBox();
                pic.BackColor = Color.White;
                pic.Size      = new Size(24, 24);
                int per_line = 8;
                pic.Location    = new Point(1 + ((i % per_line) * 24) + (i % per_line), 1 + ((i / per_line) * 24) + (i / per_line));
                pic.Cursor      = Cursors.Hand;
                pic.Tag         = items[i];
                pic.MouseHover += this.pic_MouseHover;
                pic.Click      += callback;
                EmojiItem item = Emoji.EmojiFromSurrogate(items[i].SurrogateSequence);
                pic.ImageLocation = Path.Combine(Settings.AppPath, "emoji", "at24", item.FileName);
                pic.SizeMode      = PictureBoxSizeMode.CenterImage;
                this.Controls.Add(pic);
            }
        }
Beispiel #6
0
        public void Populate(EventHandler callback)
        {
            this.tip = new ToolTip();

            EmojiMenuShortcutItem[] items = new EmojiMenuShortcutItem[230];
            items[0] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57229", Shortcut = "🎍", Description = "Pine Decoration"
            };
            items[1] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56477", Shortcut = "💝", Description = "Heart With Ribbon"
            };
            items[2] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57230", Shortcut = "🎎", Description = "Japanese Dolls"
            };
            items[3] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57234", Shortcut = "🎒", Description = "School Satchel"
            };
            items[4] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57235", Shortcut = "🎓", Description = "Graduation Cap"
            };
            items[5] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57231", Shortcut = "🎏", Description = "Carp Streamer"
            };
            items[6] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57222", Shortcut = "🎆", Description = "Fireworks"
            };
            items[7] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57223", Shortcut = "🎇", Description = "Firework Sparkler"
            };
            items[8] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57232", Shortcut = "🎐", Description = "Wind Chime"
            };
            items[9] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57233", Shortcut = "🎑", Description = "Moon Viewing Ceremony"
            };
            items[10] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57219", Shortcut = "🎃", Description = "Jack-O-Lantern"
            };
            items[11] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56443", Shortcut = "👻", Description = "Ghost"
            };
            items[12] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57221", Shortcut = "🎅", Description = "Father Christmas"
            };
            items[13] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57220", Shortcut = "🎄", Description = "Christmas Tree"
            };
            items[14] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57217", Shortcut = "🎁", Description = "Wrapped Present"
            };
            items[15] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57227", Shortcut = "🎋", Description = "Tanabata Tree"
            };
            items[16] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57225", Shortcut = "🎉", Description = "Party Popper"
            };
            items[17] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57226", Shortcut = "🎊", Description = "Confetti Ball"
            };
            items[18] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57224", Shortcut = "🎈", Description = "Balloon"
            };
            items[19] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57228", Shortcut = "🎌", Description = "Crossed Flags"
            };
            items[20] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56622", Shortcut = "🔮", Description = "Crystal Ball"
            };
            items[21] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57253", Shortcut = "🎥", Description = "Movie Camera"
            };
            items[22] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56567", Shortcut = "📷", Description = "Camera"
            };
            items[23] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56569", Shortcut = "📹", Description = "Video Camera"
            };
            items[24] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56572", Shortcut = "📼", Description = "Videocassette"
            };
            items[25] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56511", Shortcut = "💿", Description = "Optical Disc"
            };
            items[26] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56512", Shortcut = "📀", Description = "DVD"
            };
            items[27] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56509", Shortcut = "💽", Description = "Minidisc"
            };
            items[28] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56510", Shortcut = "💾", Description = "Floppy Disk"
            };
            items[29] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56507", Shortcut = "💻", Description = "Personal Computer"
            };
            items[30] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56561", Shortcut = "📱", Description = "Mobile Phone"
            };
            items[31] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9742", Shortcut = "☎", Description = "Black Telephone"
            };
            items[32] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56542", Shortcut = "📞", Description = "Telephone Receiver"
            };
            items[33] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56543", Shortcut = "📟", Description = "Pager"
            };
            items[34] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56544", Shortcut = "📠", Description = "Fax Machine"
            };
            items[35] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56545", Shortcut = "📡", Description = "Satellite Antenna"
            };
            items[36] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56570", Shortcut = "📺", Description = "Television"
            };
            items[37] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56571", Shortcut = "📻", Description = "Radio"
            };
            items[38] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56586", Shortcut = "🔊", Description = "Speaker With Three Sound Waves"
            };
            items[39] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56585", Shortcut = "🔉", Description = "Speaker With One Sound Wave"
            };
            items[40] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56584", Shortcut = "🔈", Description = "Speaker"
            };
            items[41] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56583", Shortcut = "🔇", Description = "Speaker With Cancellation Stroke"
            };
            items[42] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56596", Shortcut = "🔔", Description = "Bell"
            };
            items[43] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56597", Shortcut = "🔕", Description = "Bell With Cancellation Stroke"
            };
            items[44] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56546", Shortcut = "📢", Description = "Public Address Loudspeaker"
            };
            items[45] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56547", Shortcut = "📣", Description = "Cheering Megaphone"
            };
            items[46] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9203", Shortcut = "⏳", Description = "Hourglass With Flowing Sand"
            };
            items[47] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8987", Shortcut = "⌛", Description = "Hourglass"
            };
            items[48] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9200", Shortcut = "⏰", Description = "Alarm Clock"
            };
            items[49] = new EmojiMenuShortcutItem {
                SurrogateSequence = "8986", Shortcut = "⌚", Description = "Watch"
            };
            items[50] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56595", Shortcut = "🔓", Description = "Open Lock"
            };
            items[51] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56594", Shortcut = "🔒", Description = "Lock"
            };
            items[52] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56591", Shortcut = "🔏", Description = "Lock With Ink Pen"
            };
            items[53] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56592", Shortcut = "🔐", Description = "Closed Lock With Key"
            };
            items[54] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56593", Shortcut = "🔑", Description = "Key"
            };
            items[55] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56590", Shortcut = "🔎", Description = "Right-Pointing Magnifying Glass"
            };
            items[56] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56481", Shortcut = "💡", Description = "Electric Light Bulb"
            };
            items[57] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56614", Shortcut = "🔦", Description = "Electric Torch"
            };
            items[58] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56582", Shortcut = "🔆", Description = "High Brightness Symbol"
            };
            items[59] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56581", Shortcut = "🔅", Description = "Low Brightness Symbol"
            };
            items[60] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56588", Shortcut = "🔌", Description = "Electric Plug"
            };
            items[61] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56587", Shortcut = "🔋", Description = "Battery"
            };
            items[62] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56589", Shortcut = "🔍", Description = "Left-Pointing Magnifying Glass"
            };
            items[63] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57025", Shortcut = "🛁", Description = "Bathtub"
            };
            items[64] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57024", Shortcut = "🛀", Description = "Bath"
            };
            items[65] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57023", Shortcut = "🚿", Description = "Shower"
            };
            items[66] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57021", Shortcut = "🚽", Description = "Toilet"
            };
            items[67] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56615", Shortcut = "🔧", Description = "Wrench"
            };
            items[68] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56617", Shortcut = "🔩", Description = "Nut And Bolt"
            };
            items[69] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56616", Shortcut = "🔨", Description = "Hammer"
            };
            items[70] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57002", Shortcut = "🚪", Description = "Door"
            };
            items[71] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57004", Shortcut = "🚬", Description = "Smoking Symbol"
            };
            items[72] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56483", Shortcut = "💣", Description = "Bomb"
            };
            items[73] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56619", Shortcut = "🔫", Description = "Pistol"
            };
            items[74] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56618", Shortcut = "🔪", Description = "Hocho"
            };
            items[75] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56458", Shortcut = "💊", Description = "Pill"
            };
            items[76] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56457", Shortcut = "💉", Description = "Syringe"
            };
            items[77] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56496", Shortcut = "💰", Description = "Money Bag"
            };
            items[78] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56500", Shortcut = "💴", Description = "Banknote With Yen Sign"
            };
            items[79] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56501", Shortcut = "💵", Description = "Banknote With Dollar Sign"
            };
            items[80] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56503", Shortcut = "💷", Description = "Banknote With Pound Sign"
            };
            items[81] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56502", Shortcut = "💶", Description = "Banknote With Euro Sign"
            };
            items[82] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56499", Shortcut = "💳", Description = "Credit Card"
            };
            items[83] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56504", Shortcut = "💸", Description = "Money With Wings"
            };
            items[84] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56562", Shortcut = "📲", Description = "Mobile Phone With Rightwards Arrow At Left"
            };
            items[85] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56551", Shortcut = "📧", Description = "E-Mail Symbol"
            };
            items[86] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56549", Shortcut = "📥", Description = "Inbox Tray"
            };
            items[87] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56548", Shortcut = "📤", Description = "Outbox Tray"
            };
            items[88] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9993", Shortcut = "✉", Description = "Envelope"
            };
            items[89] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56553", Shortcut = "📩", Description = "Envelope With Downwards Arrow Above"
            };
            items[90] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56552", Shortcut = "📨", Description = "Incoming Envelope"
            };
            items[91] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56559", Shortcut = "📯", Description = "Postal Horn"
            };
            items[92] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56555", Shortcut = "📫", Description = "Closed Mailbox With Raised Flag"
            };
            items[93] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56554", Shortcut = "📪", Description = "Closed Mailbox With Lowered Flag"
            };
            items[94] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56556", Shortcut = "📬", Description = "Open Mailbox With Raised Flag"
            };
            items[95] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56557", Shortcut = "📭", Description = "Open Mailbox With Lowered Flag"
            };
            items[96] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56558", Shortcut = "📮", Description = "Postbox"
            };
            items[97] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56550", Shortcut = "📦", Description = "Package"
            };
            items[98] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56541", Shortcut = "📝", Description = "Memo"
            };
            items[99] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56516", Shortcut = "📄", Description = "Page Facing Up"
            };
            items[100] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56515", Shortcut = "📃", Description = "Page With Curl"
            };
            items[101] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56529", Shortcut = "📑", Description = "Bookmark Tabs"
            };
            items[102] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56522", Shortcut = "📊", Description = "Bar Chart"
            };
            items[103] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56520", Shortcut = "📈", Description = "Chart With Upwards Trend"
            };
            items[104] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56521", Shortcut = "📉", Description = "Chart With Downwards Trend"
            };
            items[105] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56540", Shortcut = "📜", Description = "Scroll"
            };
            items[106] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56523", Shortcut = "📋", Description = "Clipboard"
            };
            items[107] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56517", Shortcut = "📅", Description = "Calendar"
            };
            items[108] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56518", Shortcut = "📆", Description = "Tear-Off Calendar"
            };
            items[109] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56519", Shortcut = "📇", Description = "Card Index"
            };
            items[110] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56513", Shortcut = "📁", Description = "File Folder"
            };
            items[111] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56514", Shortcut = "📂", Description = "Open File Folder"
            };
            items[112] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9986", Shortcut = "✂", Description = "Black Scissors"
            };
            items[113] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56524", Shortcut = "📌", Description = "Pushpin"
            };
            items[114] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56526", Shortcut = "📎", Description = "Paperclip"
            };
            items[115] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10002", Shortcut = "✒", Description = "Black Nib"
            };
            items[116] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9999", Shortcut = "✏", Description = "Pencil"
            };
            items[117] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56527", Shortcut = "📏", Description = "Straight Ruler"
            };
            items[118] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56528", Shortcut = "📐", Description = "Triangular Ruler"
            };
            items[119] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56533", Shortcut = "📕", Description = "Closed Book"
            };
            items[120] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56535", Shortcut = "📗", Description = "Green Book"
            };
            items[121] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56536", Shortcut = "📘", Description = "Blue Book"
            };
            items[122] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56537", Shortcut = "📙", Description = "Orange Book"
            };
            items[123] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56531", Shortcut = "📓", Description = "Notebook"
            };
            items[124] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56532", Shortcut = "📔", Description = "Notebook With Decorative Cover"
            };
            items[125] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56530", Shortcut = "📒", Description = "Ledger"
            };
            items[126] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56538", Shortcut = "📚", Description = "Books"
            };
            items[127] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56534", Shortcut = "📖", Description = "Open Book"
            };
            items[128] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56598", Shortcut = "🔖", Description = "Bookmark"
            };
            items[129] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56539", Shortcut = "📛", Description = "Name Badge"
            };
            items[130] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56620", Shortcut = "🔬", Description = "Microscope"
            };
            items[131] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56621", Shortcut = "🔭", Description = "Telescope  "
            };
            items[132] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56560", Shortcut = "📰", Description = "Newspaper"
            };
            items[133] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57256", Shortcut = "🎨", Description = "Artist Palette"
            };
            items[134] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57260", Shortcut = "🎬", Description = "Clapper Board"
            };
            items[135] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57252", Shortcut = "🎤", Description = "Microphone"
            };
            items[136] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57255", Shortcut = "🎧", Description = "Headphone"
            };
            items[137] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57276", Shortcut = "🎼", Description = "Musical Score"
            };
            items[138] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57269", Shortcut = "🎵", Description = "Musical Note"
            };
            items[139] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57270", Shortcut = "🎶", Description = "Multiple Musical Notes"
            };
            items[140] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57273", Shortcut = "🎹", Description = "Musical Keyboard"
            };
            items[141] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57275", Shortcut = "🎻", Description = "Violin"
            };
            items[142] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57274", Shortcut = "🎺", Description = "Trumpet"
            };
            items[143] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57271", Shortcut = "🎷", Description = "Saxophone"
            };
            items[144] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57272", Shortcut = "🎸", Description = "Guitar"
            };
            items[145] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56446", Shortcut = "👾", Description = "Alien Monster"
            };
            items[146] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57262", Shortcut = "🎮", Description = "Video Game"
            };
            items[147] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56527", Shortcut = "🃏", Description = "Playing Card Black Joker"
            };
            items[148] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57268", Shortcut = "🎴", Description = "Flower Playing Cards"
            };
            items[149] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56324", Shortcut = "🀄", Description = "Mahjong Tile Red Dragon"
            };
            items[150] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57266", Shortcut = "🎲", Description = "Game Die"
            };
            items[151] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57263", Shortcut = "🎯", Description = "Direct Hit"
            };
            items[152] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57288", Shortcut = "🏈", Description = "American Football"
            };
            items[153] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57280", Shortcut = "🏀", Description = "Basketball And Hoop"
            };
            items[154] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9917", Shortcut = "⚽", Description = "Soccer Ball"
            };
            items[155] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9918", Shortcut = "⚾", Description = "Baseball"
            };
            items[156] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57278", Shortcut = "🎾", Description = "Tennis Racquet And Ball"
            };
            items[157] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57265", Shortcut = "🎱", Description = "Billiards"
            };
            items[158] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57289", Shortcut = "🏉", Description = "Rugby Football"
            };
            items[159] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57267", Shortcut = "🎳", Description = "Bowling"
            };
            items[160] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9971", Shortcut = "⛳", Description = "Flag In Hole"
            };
            items[161] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57013", Shortcut = "🚵", Description = "Mountain Bicyclist"
            };
            items[162] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57012", Shortcut = "🚴", Description = "Bicyclist"
            };
            items[163] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57281", Shortcut = "🏁", Description = "Chequered Flag"
            };
            items[164] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57287", Shortcut = "🏇", Description = "Horse Racing"
            };
            items[165] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57286", Shortcut = "🏆", Description = "Trophy"
            };
            items[166] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57279", Shortcut = "🎿", Description = "Ski And Ski Boot"
            };
            items[167] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57282", Shortcut = "🏂", Description = "Snowboarder"
            };
            items[168] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57290", Shortcut = "🏊", Description = "Swimmer"
            };
            items[169] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57284", Shortcut = "🏄", Description = "Surfer"
            };
            items[170] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57251", Shortcut = "🎣", Description = "Fishing Pole And Fish"
            };
            items[171] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9749", Shortcut = "☕", Description = "Hot Beverage"
            };
            items[172] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57205", Shortcut = "🍵", Description = "Teacup Without Handle"
            };
            items[173] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57206", Shortcut = "🍶", Description = "Sake Bottle And Cup"
            };
            items[174] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57212", Shortcut = "🍼", Description = "Baby Bottle"
            };
            items[175] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57210", Shortcut = "🍺", Description = "Beer Mug"
            };
            items[176] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57211", Shortcut = "🍻", Description = "Clinking Beer Mugs"
            };
            items[177] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57208", Shortcut = "🍸", Description = "Cocktail Glass"
            };
            items[178] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57209", Shortcut = "🍹", Description = "Tropical Drink"
            };
            items[179] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57207", Shortcut = "🍷", Description = "Wine Glass"
            };
            items[180] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57204", Shortcut = "🍴", Description = "Fork And Knife"
            };
            items[181] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57173", Shortcut = "🍕", Description = "Slice Of Pizza"
            };
            items[182] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57172", Shortcut = "🍔", Description = "Hamburger"
            };
            items[183] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57183", Shortcut = "🍟", Description = "French Fries"
            };
            items[184] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57175", Shortcut = "🍗", Description = "Poultry Leg"
            };
            items[185] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57174", Shortcut = "🍖", Description = "Meat On Bone"
            };
            items[186] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57181", Shortcut = "🍝", Description = "Spaghetti"
            };
            items[187] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57179", Shortcut = "🍛", Description = "Curry And Rice"
            };
            items[188] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57188", Shortcut = "🍤", Description = "Fried Shrimp"
            };
            items[189] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57201", Shortcut = "🍱", Description = "Bento Box"
            };
            items[190] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57187", Shortcut = "🍣", Description = "Sushi"
            };
            items[191] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57189", Shortcut = "🍥", Description = "Fish Cake With Swirl Design"
            };
            items[192] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57177", Shortcut = "🍙", Description = "Rice Ball"
            };
            items[193] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57176", Shortcut = "🍘", Description = "Rice Cracker"
            };
            items[194] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57178", Shortcut = "🍚", Description = "Cooked Rice"
            };
            items[195] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57180", Shortcut = "🍜", Description = "Steaming Bowl"
            };
            items[196] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57202", Shortcut = "🍲", Description = "Pot Of Food"
            };
            items[197] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57186", Shortcut = "🍢", Description = "Oden"
            };
            items[198] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57185", Shortcut = "🍡", Description = "Dango"
            };
            items[199] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57203", Shortcut = "🍳", Description = "Cooking"
            };
            items[200] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57182", Shortcut = "🍞", Description = "Bread"
            };
            items[201] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57193", Shortcut = "🍩", Description = "Doughnut"
            };
            items[202] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57198", Shortcut = "🍮", Description = "Custard"
            };
            items[203] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57190", Shortcut = "🍦", Description = "Soft Ice Cream"
            };
            items[204] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57192", Shortcut = "🍨", Description = "Ice Cream"
            };
            items[205] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57191", Shortcut = "🍧", Description = "Shaved Ice"
            };
            items[206] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57218", Shortcut = "🎂", Description = "Birthday Cake"
            };
            items[207] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57200", Shortcut = "🍰", Description = "Shortcake"
            };
            items[208] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57194", Shortcut = "🍪", Description = "Cookie"
            };
            items[209] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57195", Shortcut = "🍫", Description = "Chocolate Bar"
            };
            items[210] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57196", Shortcut = "🍬", Description = "Candy"
            };
            items[211] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57197", Shortcut = "🍭", Description = "Lollipop"
            };
            items[212] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57199", Shortcut = "🍯", Description = "Honey Pot"
            };
            items[213] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57166", Shortcut = "🍎", Description = "Red Apple"
            };
            items[214] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57167", Shortcut = "🍏", Description = "Green Apple"
            };
            items[215] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57162", Shortcut = "🍊", Description = "Tangerine"
            };
            items[216] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57163", Shortcut = "🍋", Description = "Lemon"
            };
            items[217] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57170", Shortcut = "🍒", Description = "Cherries"
            };
            items[218] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57159", Shortcut = "🍇", Description = "Grapes"
            };
            items[219] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57161", Shortcut = "🍉", Description = "Watermelon"
            };
            items[220] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57171", Shortcut = "🍓", Description = "Strawberry"
            };
            items[221] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57169", Shortcut = "🍑", Description = "Peach"
            };
            items[222] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57160", Shortcut = "🍈", Description = "Melon"
            };
            items[223] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57164", Shortcut = "🍌", Description = "Banana"
            };
            items[224] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57168", Shortcut = "🍐", Description = "Pear"
            };
            items[225] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57165", Shortcut = "🍍", Description = "Pineapple"
            };
            items[226] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57184", Shortcut = "🍠", Description = "Roasted Sweet Potato"
            };
            items[227] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57158", Shortcut = "🍆", Description = "Aubergine"
            };
            items[228] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57157", Shortcut = "🍅", Description = "Tomato"
            };
            items[229] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57149", Shortcut = "🌽", Description = "Ear Of Maize"
            };

            for (int i = 0; i < items.Length; i++)
            {
                PictureBox pic = new PictureBox();
                pic.BackColor = Color.White;
                pic.Size      = new Size(24, 24);
                int per_line = 8;
                pic.Location    = new Point(1 + ((i % per_line) * 24) + (i % per_line), 1 + ((i / per_line) * 24) + (i / per_line));
                pic.Cursor      = Cursors.Hand;
                pic.Tag         = items[i];
                pic.MouseHover += this.pic_MouseHover;
                pic.Click      += callback;
                EmojiItem item = Emoji.EmojiFromSurrogate(items[i].SurrogateSequence);
                pic.ImageLocation = Path.Combine(Settings.AppPath, "emoji", "at24", item.FileName);
                pic.SizeMode      = PictureBoxSizeMode.CenterImage;
                this.Controls.Add(pic);
            }
        }
Beispiel #7
0
        public void Populate(EventHandler callback)
        {
            this.tip = new ToolTip();

            EmojiMenuShortcutItem[] items = new EmojiMenuShortcutItem[116];
            items[0] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56374", Shortcut = "🐶", Description = "Dog Face"
            };
            items[1] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56378", Shortcut = "🐺", Description = "Wolf Face"
            };
            items[2] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56369", Shortcut = "🐱", Description = "Cat Face"
            };
            items[3] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56365", Shortcut = "🐭", Description = "Mouse Face"
            };
            items[4] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56377", Shortcut = "🐹", Description = "Hamster Face"
            };
            items[5] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56368", Shortcut = "🐰", Description = "Rabbit Face"
            };
            items[6] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56376", Shortcut = "🐸", Description = "Frog Face"
            };
            items[7] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56367", Shortcut = "🐯", Description = "Tiger Face"
            };
            items[8] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56360", Shortcut = "🐨", Description = "Koala"
            };
            items[9] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56379", Shortcut = "🐻", Description = "Bear Face"
            };
            items[10] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56375", Shortcut = "🐷", Description = "Pig Face"
            };
            items[11] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56381", Shortcut = "🐽", Description = "Pig Nose"
            };
            items[12] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56366", Shortcut = "🐮", Description = "Cow Face"
            };
            items[13] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56343", Shortcut = "🐗", Description = "Boar"
            };
            items[14] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56373", Shortcut = "🐵", Description = "Monkey Face"
            };
            items[15] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56338", Shortcut = "🐒", Description = "Monkey"
            };
            items[16] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56372", Shortcut = "🐴", Description = "Horse Face"
            };
            items[17] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56337", Shortcut = "🐑", Description = "Sheep"
            };
            items[18] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56344", Shortcut = "🐘", Description = "Elephant"
            };
            items[19] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56380", Shortcut = "🐼", Description = "Panda Face"
            };
            items[20] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56359", Shortcut = "🐧", Description = "Penguin"
            };
            items[21] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56358", Shortcut = "🐦", Description = "Bird"
            };
            items[22] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56356", Shortcut = "🐤", Description = "Baby Chick"
            };
            items[23] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56357", Shortcut = "🐥", Description = "Front-Facing Baby Chick"
            };
            items[24] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56355", Shortcut = "🐣", Description = "Hatching Chick"
            };
            items[25] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56340", Shortcut = "🐔", Description = "Chicken"
            };
            items[26] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56333", Shortcut = "🐍", Description = "Snake"
            };
            items[27] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56354", Shortcut = "🐢", Description = "Turtle"
            };
            items[28] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56347", Shortcut = "🐛", Description = "Bug"
            };
            items[29] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56349", Shortcut = "🐝", Description = "Honeybee"
            };
            items[30] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56348", Shortcut = "🐜", Description = "Ant"
            };
            items[31] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56350", Shortcut = "🐞", Description = "Lady Beetle"
            };
            items[32] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56332", Shortcut = "🐌", Description = "Snail"
            };
            items[33] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56345", Shortcut = "🐙", Description = "Octopus"
            };
            items[34] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56346", Shortcut = "🐚", Description = "Spiral Shell"
            };
            items[35] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56352", Shortcut = "🐠", Description = "Tropical Fish"
            };
            items[36] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56351", Shortcut = "🐟", Description = "Fish"
            };
            items[37] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56364", Shortcut = "🐬", Description = "Dolphin"
            };
            items[38] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56371", Shortcut = "🐳", Description = "Spouting Whale"
            };
            items[39] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56331", Shortcut = "🐋", Description = "Whale"
            };
            items[40] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56324", Shortcut = "🐄", Description = "Cow"
            };
            items[41] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56335", Shortcut = "🐏", Description = "Ram"
            };
            items[42] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56320", Shortcut = "🐀", Description = "Rat"
            };
            items[43] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56323", Shortcut = "🐃", Description = "Water Buffalo"
            };
            items[44] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56325", Shortcut = "🐅", Description = "Tiger"
            };
            items[45] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56327", Shortcut = "🐇", Description = "Rabbit"
            };
            items[46] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56329", Shortcut = "🐉", Description = "Dragon"
            };
            items[47] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56334", Shortcut = "🐎", Description = "Horse"
            };
            items[48] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56336", Shortcut = "🐐", Description = "Goat"
            };
            items[49] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56339", Shortcut = "🐓", Description = "Rooster"
            };
            items[50] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56341", Shortcut = "🐕", Description = "Dog"
            };
            items[51] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56342", Shortcut = "🐖", Description = "Pig"
            };
            items[52] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56321", Shortcut = "🐁", Description = "Mouse"
            };
            items[53] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56322", Shortcut = "🐂", Description = "Ox"
            };
            items[54] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56370", Shortcut = "🐲", Description = "Dragon Face"
            };
            items[55] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56353", Shortcut = "🐡", Description = "Blowfish"
            };
            items[56] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56330", Shortcut = "🐊", Description = "Crocodile"
            };
            items[57] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56363", Shortcut = "🐫", Description = "Bactrian Camel"
            };
            items[58] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56362", Shortcut = "🐪", Description = "Dromedary Camel"
            };
            items[59] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56326", Shortcut = "🐆", Description = "Leopard"
            };
            items[60] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56328", Shortcut = "🐈", Description = "Cat"
            };
            items[61] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56361", Shortcut = "🐩", Description = "Poodle"
            };
            items[62] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56382", Shortcut = "🐾", Description = "Paw Prints"
            };
            items[63] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56464", Shortcut = "💐", Description = "Bouquet"
            };
            items[64] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57144", Shortcut = "🌸", Description = "Cherry Blossom"
            };
            items[65] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57143", Shortcut = "🌷", Description = "Tulip"
            };
            items[66] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57152", Shortcut = "🍀", Description = "Four Leaf Clover"
            };
            items[67] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57145", Shortcut = "🌹", Description = "Rose"
            };
            items[68] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57147", Shortcut = "🌻", Description = "Sunflower"
            };
            items[69] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57146", Shortcut = "🌺", Description = "Hibiscus"
            };
            items[70] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57153", Shortcut = "🍁", Description = "Maple Leaf"
            };
            items[71] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57155", Shortcut = "🍃", Description = "Leaf Fluttering In Wind"
            };
            items[72] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57154", Shortcut = "🍂", Description = "Fallen Leaf"
            };
            items[73] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57151", Shortcut = "🌿", Description = "Herb"
            };
            items[74] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57150", Shortcut = "🌾", Description = "Ear Of Rice"
            };
            items[75] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57156", Shortcut = "🍄", Description = "Mushroom"
            };
            items[76] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57141", Shortcut = "🌵", Description = "Cactus"
            };
            items[77] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57140", Shortcut = "🌴", Description = "Palm Tree"
            };
            items[78] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57138", Shortcut = "🌲", Description = "Evergreen Tree"
            };
            items[79] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57139", Shortcut = "🌳", Description = "Deciduous Tree"
            };
            items[80] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57136", Shortcut = "🌰", Description = "Chestnut"
            };
            items[81] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57137", Shortcut = "🌱", Description = "Seedling"
            };
            items[82] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57148", Shortcut = "🌼", Description = "Blossom  "
            };
            items[83] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57104", Shortcut = "🌐", Description = "Globe With Meridians"
            };
            items[84] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57118", Shortcut = "🌞", Description = "Sun With Face"
            };
            items[85] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57117", Shortcut = "🌝", Description = "Full Moon With Face"
            };
            items[86] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57114", Shortcut = "🌚", Description = "New Moon With Face"
            };
            items[87] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57105", Shortcut = "🌑", Description = "New Moon Symbol"
            };
            items[88] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57106", Shortcut = "🌒", Description = "Waxing Crescent Moon Symbol"
            };
            items[89] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57107", Shortcut = "🌓", Description = "First Quarter Moon Symbol"
            };
            items[90] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57108", Shortcut = "🌔", Description = "Waxing Gibbous Moon Symbol"
            };
            items[91] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57109", Shortcut = "🌕", Description = "Full Moon Symbol"
            };
            items[92] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57110", Shortcut = "🌖", Description = "Waning Gibbous Moon Symbol"
            };
            items[93] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57111", Shortcut = "🌗", Description = "Last Quarter Moon Symbol"
            };
            items[94] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57112", Shortcut = "🌘", Description = "Waning Crescent Moon Symbol"
            };
            items[95] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57116", Shortcut = "🌜", Description = "Last Quarter Moon With Face"
            };
            items[96] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57115", Shortcut = "🌛", Description = "First Quarter Moon With Face"
            };
            items[97] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57113", Shortcut = "🌙", Description = "Crescent Moon"
            };
            items[98] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57101", Shortcut = "🌍", Description = "Earth Globe Europe-Africa"
            };
            items[99] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57102", Shortcut = "🌎", Description = "Earth Globe Americas"
            };
            items[100] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57103", Shortcut = "🌏", Description = "Earth Globe Asia-Australia"
            };
            items[101] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57099", Shortcut = "🌋", Description = "Volcano"
            };
            items[102] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57100", Shortcut = "🌌", Description = "Milky Way"
            };
            items[103] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57120", Shortcut = "🌠", Description = "Shooting Star"
            };
            items[104] = new EmojiMenuShortcutItem {
                SurrogateSequence = "11088", Shortcut = "⭐", Description = "White Medium Star"
            };
            items[105] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9728", Shortcut = "☀", Description = "Black Sun With Rays"
            };
            items[106] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9925", Shortcut = "⛅", Description = "Sun Behind Cloud"
            };
            items[107] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9729", Shortcut = "☁", Description = "Cloud"
            };
            items[108] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9889", Shortcut = "⚡", Description = "High Voltage Sign"
            };
            items[109] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9748", Shortcut = "☔", Description = "Umbrella With Rain Drops"
            };
            items[110] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10052", Shortcut = "❄", Description = "Snowflake"
            };
            items[111] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9924", Shortcut = "⛄", Description = "Snowman Without Snow"
            };
            items[112] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57088", Shortcut = "🌀", Description = "Cyclone"
            };
            items[113] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57089", Shortcut = "🌁", Description = "Foggy"
            };
            items[114] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57096", Shortcut = "🌈", Description = "Rainbow"
            };
            items[115] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57098", Shortcut = "🌊", Description = "Water Wave"
            };

            for (int i = 0; i < items.Length; i++)
            {
                PictureBox pic = new PictureBox();
                pic.BackColor = Color.White;
                pic.Size      = new Size(24, 24);
                int per_line = 8;
                pic.Location    = new Point(1 + ((i % per_line) * 24) + (i % per_line), 1 + ((i / per_line) * 24) + (i / per_line));
                pic.Cursor      = Cursors.Hand;
                pic.Tag         = items[i];
                pic.MouseHover += this.pic_MouseHover;
                pic.Click      += callback;
                EmojiItem item = Emoji.EmojiFromSurrogate(items[i].SurrogateSequence);
                pic.ImageLocation = Path.Combine(Settings.AppPath, "emoji", "at24", item.FileName);
                pic.SizeMode      = PictureBoxSizeMode.CenterImage;
                this.Controls.Add(pic);
            }
        }
Beispiel #8
0
        public void Populate(EventHandler callback)
        {
            this.tip = new ToolTip();

            EmojiMenuShortcutItem[] items = new EmojiMenuShortcutItem[189];
            items[0] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56836", Shortcut = "😄", Description = "Smiling Face With Open Mouth And Smiling Eyes"
            };
            items[1] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56835", Shortcut = "😃", Description = "Smiling Face With Open Mouth"
            };
            items[2] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56832", Shortcut = "😀", Description = "Grinning Face"
            };
            items[3] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56842", Shortcut = "😊", Description = "Smiling Face With Smiling Eyes"
            };
            items[4] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9786", Shortcut = "☺", Description = "White Smiling Face"
            };
            items[5] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56841", Shortcut = "😉", Description = "Winking Face"
            };
            items[6] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56845", Shortcut = "😍", Description = "Smiling Face With Heart-Shaped Eyes"
            };
            items[7] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56856", Shortcut = "😘", Description = "Face Throwing A Kiss"
            };
            items[8] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56858", Shortcut = "😚", Description = "Kissing Face With Closed Eyes"
            };
            items[9] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56855", Shortcut = "😗", Description = "Kissing Face"
            };
            items[10] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56857", Shortcut = "😙", Description = "Kissing Face With Smiling Eyes"
            };
            items[11] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56860", Shortcut = "😜", Description = "Face With Stuck-Out Tongue And Winking Eye"
            };
            items[12] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56861", Shortcut = "😝", Description = "Face With Stuck-Out Tongue And Tightly-Closed Eyes"
            };
            items[13] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56859", Shortcut = "😛", Description = "Face With Stuck-Out Tongue"
            };
            items[14] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56883", Shortcut = "😳", Description = "Flushed Face"
            };
            items[15] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56833", Shortcut = "😁", Description = "Grinning Face With Smiling Eyes"
            };
            items[16] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56852", Shortcut = "😔", Description = "Pensive Face"
            };
            items[17] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56844", Shortcut = "😌", Description = "Relieved Face"
            };
            items[18] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56850", Shortcut = "😒", Description = "Unamused Face"
            };
            items[19] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56862", Shortcut = "😞", Description = "Disappointed Face"
            };
            items[20] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56867", Shortcut = "😣", Description = "Persevering Face"
            };
            items[21] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56866", Shortcut = "😢", Description = "Crying Face"
            };
            items[22] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56834", Shortcut = "😂", Description = "Face With Tears Of Joy"
            };
            items[23] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56877", Shortcut = "😭", Description = "Loudly Crying Face"
            };
            items[24] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56874", Shortcut = "😪", Description = "Sleepy Face"
            };
            items[25] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56869", Shortcut = "😥", Description = "Disappointed But Relieved Face"
            };
            items[26] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56880", Shortcut = "😰", Description = "Face With Open Mouth And Cold Sweat"
            };
            items[27] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56837", Shortcut = "😅", Description = "Smiling Face With Open Mouth And Cold Sweat"
            };
            items[28] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56851", Shortcut = "😓", Description = "Face With Cold Sweat"
            };
            items[29] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56873", Shortcut = "😩", Description = "Weary Face"
            };
            items[30] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56875", Shortcut = "😫", Description = "Tired Face"
            };
            items[31] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56872", Shortcut = "😨", Description = "Fearful Face"
            };
            items[32] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56881", Shortcut = "😱", Description = "Face Screaming In Fear"
            };
            items[33] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56864", Shortcut = "😠", Description = "Angry Face"
            };
            items[34] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56865", Shortcut = "😡", Description = "Pouting Face"
            };
            items[35] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56868", Shortcut = "😤", Description = "Face With Look Of Triumph"
            };
            items[36] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56854", Shortcut = "😖", Description = "Confounded Face"
            };
            items[37] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56838", Shortcut = "😆", Description = "Smiling Face With Open Mouth And Tightly-Closed Eyes"
            };
            items[38] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56843", Shortcut = "😋", Description = "Face Savouring Delicious Food"
            };
            items[39] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56887", Shortcut = "😷", Description = "Face With Medical Mask"
            };
            items[40] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56846", Shortcut = "😎", Description = "Smiling Face With Sunglasses"
            };
            items[41] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56884", Shortcut = "😴", Description = "Sleeping Face"
            };
            items[42] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56885", Shortcut = "😵", Description = "Dizzy Face"
            };
            items[43] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56882", Shortcut = "😲", Description = "Astonished Face"
            };
            items[44] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56863", Shortcut = "😟", Description = "Worried Face"
            };
            items[45] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56870", Shortcut = "😦", Description = "Frowning Face With Open Mouth"
            };
            items[46] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56871", Shortcut = "😧", Description = "Anguished Face"
            };
            items[47] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56840", Shortcut = "😈", Description = "Smiling Face With Horns"
            };
            items[48] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56447", Shortcut = "👿", Description = "Imp"
            };
            items[49] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56878", Shortcut = "😮", Description = "Face With Open Mouth"
            };
            items[50] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56876", Shortcut = "😬", Description = "Grimacing Face"
            };
            items[51] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56848", Shortcut = "😐", Description = "Neutral Face"
            };
            items[52] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56853", Shortcut = "😕", Description = "Confused Face"
            };
            items[53] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56879", Shortcut = "😯", Description = "Hushed Face"
            };
            items[54] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56886", Shortcut = "😶", Description = "Face Without Mouth"
            };
            items[55] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56839", Shortcut = "😇", Description = "Smiling Face With Halo"
            };
            items[56] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56847", Shortcut = "😏", Description = "Smirking Face"
            };
            items[57] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56849", Shortcut = "😑", Description = "Expressionless Face"
            };
            items[58] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56434", Shortcut = "👲", Description = "Man With Gua Pi Mao"
            };
            items[59] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56435", Shortcut = "👳", Description = "Man With Turban"
            };
            items[60] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56430", Shortcut = "👮", Description = "Police Officer"
            };
            items[61] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56439", Shortcut = "👷", Description = "Construction Worker"
            };
            items[62] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56450", Shortcut = "💂", Description = "Guardsman"
            };
            items[63] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56438", Shortcut = "👶", Description = "Baby"
            };
            items[64] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56422", Shortcut = "👦", Description = "Boy"
            };
            items[65] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56423", Shortcut = "👧", Description = "Girl"
            };
            items[66] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56424", Shortcut = "👨", Description = "Man"
            };
            items[67] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56425", Shortcut = "👩", Description = "Woman"
            };
            items[68] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56436", Shortcut = "👴", Description = "Older Man"
            };
            items[69] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56437", Shortcut = "👵", Description = "Older Woman"
            };
            items[70] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56433", Shortcut = "👱", Description = "Person With Blond Hair"
            };
            items[71] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56444", Shortcut = "👼", Description = "Baby Angel"
            };
            items[72] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56440", Shortcut = "👸", Description = "Princess"
            };
            items[73] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56890", Shortcut = "😺", Description = "Smiling Cat Face With Open Mouth"
            };
            items[74] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56888", Shortcut = "😸", Description = "Grinning Cat Face With Smiling Eyes"
            };
            items[75] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56891", Shortcut = "😻", Description = "Smiling Cat Face With Heart-Shaped Eyes"
            };
            items[76] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56893", Shortcut = "😽", Description = "Kissing Cat Face With Closed Eyes"
            };
            items[77] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56892", Shortcut = "😼", Description = "Cat Face With Wry Smile"
            };
            items[78] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56896", Shortcut = "🙀", Description = "Weary Cat Face"
            };
            items[79] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56895", Shortcut = "😿", Description = "Crying Cat Face"
            };
            items[80] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56889", Shortcut = "😹", Description = "Cat Face With Tears Of Joy"
            };
            items[81] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56894", Shortcut = "😾", Description = "Pouting Cat Face"
            };
            items[82] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56441", Shortcut = "👹", Description = "Japanese Ogre"
            };
            items[83] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56442", Shortcut = "👺", Description = "Japanese Goblin"
            };
            items[84] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56904", Shortcut = "🙈", Description = "See-No-Evil Monkey"
            };
            items[85] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56905", Shortcut = "🙉", Description = "Hear-No-Evil Monkey"
            };
            items[86] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56906", Shortcut = "🙊", Description = "Speak-No-Evil Monkey"
            };
            items[87] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56448", Shortcut = "💀", Description = "Skull"
            };
            items[88] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56445", Shortcut = "👽", Description = "Extraterrestrial Alien"
            };
            items[89] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56489", Shortcut = "💩", Description = "Pile Of Poo"
            };
            items[90] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56613", Shortcut = "🔥", Description = "Fire"
            };
            items[91] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10024", Shortcut = "✨", Description = "Sparkles"
            };
            items[92] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57119", Shortcut = "🌟", Description = "Glowing Star"
            };
            items[93] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56491", Shortcut = "💫", Description = "Dizzy Symbol"
            };
            items[94] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56485", Shortcut = "💥", Description = "Collision Symbol"
            };
            items[95] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56482", Shortcut = "💢", Description = "Anger Symbol"
            };
            items[96] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56486", Shortcut = "💦", Description = "Splashing Sweat Symbol"
            };
            items[97] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56487", Shortcut = "💧", Description = "Droplet"
            };
            items[98] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56484", Shortcut = "💤", Description = "Sleeping Symbol"
            };
            items[99] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56488", Shortcut = "💨", Description = "Dash Symbol  "
            };
            items[100] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56386", Shortcut = "👂", Description = "Ear"
            };
            items[101] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56384", Shortcut = "👀", Description = "Eyes"
            };
            items[102] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56387", Shortcut = "👃", Description = "Nose"
            };
            items[103] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56389", Shortcut = "👅", Description = "Tongue"
            };
            items[104] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56388", Shortcut = "👄", Description = "Mouth"
            };
            items[105] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56397", Shortcut = "👍", Description = "Thumbs Up Sign"
            };
            items[106] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56398", Shortcut = "👎", Description = "Thumbs Down Sign"
            };
            items[107] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56396", Shortcut = "👌", Description = "Ok Hand Sign"
            };
            items[108] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56394", Shortcut = "👊", Description = "Fisted Hand Sign"
            };
            items[109] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9994", Shortcut = "✊", Description = "Raised Fist"
            };
            items[110] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9996", Shortcut = "✌", Description = "Victory Hand"
            };
            items[111] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56395", Shortcut = "👋", Description = "Waving Hand Sign"
            };
            items[112] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9995", Shortcut = "✋", Description = "Raised Hand"
            };
            items[113] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56400", Shortcut = "👐", Description = "Open Hands Sign"
            };
            items[114] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56390", Shortcut = "👆", Description = "White Up Pointing Backhand Index"
            };
            items[115] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56391", Shortcut = "👇", Description = "White Down Pointing Backhand Index"
            };
            items[116] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56393", Shortcut = "👉", Description = "White Right Pointing Backhand Index"
            };
            items[117] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56392", Shortcut = "👈", Description = "White Left Pointing Backhand Index"
            };
            items[118] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56908", Shortcut = "🙌", Description = "Person Raising Both Hands In Celebration"
            };
            items[119] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56911", Shortcut = "🙏", Description = "Person With Folded Hands"
            };
            items[120] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9757", Shortcut = "☝", Description = "White Up Pointing Index"
            };
            items[121] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56399", Shortcut = "👏", Description = "Clapping Hands Sign"
            };
            items[122] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56490", Shortcut = "💪", Description = "Flexed Biceps"
            };
            items[123] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57014", Shortcut = "🚶", Description = "Pedestrian"
            };
            items[124] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57283", Shortcut = "🏃", Description = "Runner"
            };
            items[125] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56451", Shortcut = "💃", Description = "Dancer"
            };
            items[126] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56427", Shortcut = "👫", Description = "Man And Woman Holding Hands"
            };
            items[127] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56426", Shortcut = "👪", Description = "Family"
            };
            items[128] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56428", Shortcut = "👬", Description = "Two Men Holding Hands"
            };
            items[129] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56429", Shortcut = "👭", Description = "Two Women Holding Hands"
            };
            items[130] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56463", Shortcut = "💏", Description = "Kiss"
            };
            items[131] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56465", Shortcut = "💑", Description = "Couple With Heart"
            };
            items[132] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56431", Shortcut = "👯", Description = "Woman With Bunny Ears"
            };
            items[133] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56902", Shortcut = "🙆", Description = "Face With Ok Gesture"
            };
            items[134] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56901", Shortcut = "🙅", Description = "Face With No Good Gesture"
            };
            items[135] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56449", Shortcut = "💁", Description = "Information Desk Person"
            };
            items[136] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56907", Shortcut = "🙋", Description = "Happy Person Raising One Hand"
            };
            items[137] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56454", Shortcut = "💆", Description = "Face Massage"
            };
            items[138] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56455", Shortcut = "💇", Description = "Haircut"
            };
            items[139] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56453", Shortcut = "💅", Description = "Nail Polish"
            };
            items[140] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56432", Shortcut = "👰", Description = "Bride With Veil"
            };
            items[141] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56910", Shortcut = "🙎", Description = "Person With Pouting Face"
            };
            items[142] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56909", Shortcut = "🙍", Description = "Person Frowning"
            };
            items[143] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56903", Shortcut = "🙇", Description = "Person Bowing Deeply"
            };
            items[144] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57257", Shortcut = "🎩", Description = "Top Hat"
            };
            items[145] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56401", Shortcut = "👑", Description = "Crown"
            };
            items[146] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56402", Shortcut = "👒", Description = "Womans Hat"
            };
            items[147] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56415", Shortcut = "👟", Description = "Athletic Shoe"
            };
            items[148] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56414", Shortcut = "👞", Description = "Mans Shoe"
            };
            items[149] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56417", Shortcut = "👡", Description = "Womans Sandal"
            };
            items[150] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56416", Shortcut = "👠", Description = "High-Heeled Shoe"
            };
            items[151] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56418", Shortcut = "👢", Description = "Womans Boots"
            };
            items[152] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56405", Shortcut = "👕", Description = "T-Shirt"
            };
            items[153] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56404", Shortcut = "👔", Description = "Necktie"
            };
            items[154] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56410", Shortcut = "👚", Description = "Womans Clothes"
            };
            items[155] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56407", Shortcut = "👗", Description = "Dress"
            };
            items[156] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57277", Shortcut = "🎽", Description = "Running Shirt With Sash"
            };
            items[157] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56406", Shortcut = "👖", Description = "Jeans"
            };
            items[158] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56408", Shortcut = "👘", Description = "Kimono"
            };
            items[159] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56409", Shortcut = "👙", Description = "Bikini"
            };
            items[160] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56508", Shortcut = "💼", Description = "Briefcase"
            };
            items[161] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56412", Shortcut = "👜", Description = "Handbag"
            };
            items[162] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56413", Shortcut = "👝", Description = "Pouch"
            };
            items[163] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56411", Shortcut = "👛", Description = "Purse"
            };
            items[164] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56403", Shortcut = "👓", Description = "Eyeglasses"
            };
            items[165] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57216", Shortcut = "🎀", Description = "Ribbon"
            };
            items[166] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57090", Shortcut = "🌂", Description = "Closed Umbrella"
            };
            items[167] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56452", Shortcut = "💄", Description = "Lipstick"
            };
            items[168] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56475", Shortcut = "💛", Description = "Yellow Heart"
            };
            items[169] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56473", Shortcut = "💙", Description = "Blue Heart"
            };
            items[170] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56476", Shortcut = "💜", Description = "Purple Heart"
            };
            items[171] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56474", Shortcut = "💚", Description = "Green Heart"
            };
            items[172] = new EmojiMenuShortcutItem {
                SurrogateSequence = "10084", Shortcut = "❤", Description = "Heavy Black Heart"
            };
            items[173] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56468", Shortcut = "💔", Description = "Broken Heart"
            };
            items[174] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56471", Shortcut = "💗", Description = "Growing Heart"
            };
            items[175] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56467", Shortcut = "💓", Description = "Beating Heart"
            };
            items[176] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56469", Shortcut = "💕", Description = "Two Hearts"
            };
            items[177] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56470", Shortcut = "💖", Description = "Sparkling Heart"
            };
            items[178] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56478", Shortcut = "💞", Description = "Revolving Hearts"
            };
            items[179] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56472", Shortcut = "💘", Description = "Heart With Arrow"
            };
            items[180] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56460", Shortcut = "💌", Description = "Love Letter"
            };
            items[181] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56459", Shortcut = "💋", Description = "Kiss Mark"
            };
            items[182] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56461", Shortcut = "💍", Description = "Ring"
            };
            items[183] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56462", Shortcut = "💎", Description = "Gem Stone"
            };
            items[184] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56420", Shortcut = "👤", Description = "Bust In Silhouette"
            };
            items[185] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56421", Shortcut = "👥", Description = "Busts In Silhouette"
            };
            items[186] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56492", Shortcut = "💬", Description = "Speech Balloon"
            };
            items[187] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56419", Shortcut = "👣", Description = "Footprints"
            };
            items[188] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56493", Shortcut = "💭", Description = "Thought Balloon"
            };

            for (int i = 0; i < items.Length; i++)
            {
                PictureBox pic = new PictureBox();
                pic.BackColor = Color.White;
                pic.Size      = new Size(24, 24);
                int per_line = 8;
                pic.Location    = new Point(1 + ((i % per_line) * 24) + (i % per_line), 1 + ((i / per_line) * 24) + (i / per_line));
                pic.Cursor      = Cursors.Hand;
                pic.Tag         = items[i];
                pic.MouseHover += this.pic_MouseHover;
                pic.Click      += callback;
                EmojiItem item = Emoji.EmojiFromSurrogate(items[i].SurrogateSequence);
                pic.ImageLocation = Path.Combine(Settings.AppPath, "emoji", "at24", item.FileName);
                pic.SizeMode      = PictureBoxSizeMode.CenterImage;
                this.Controls.Add(pic);
            }
        }
Beispiel #9
0
        protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
        {
            Rectangle bounds = new Rectangle(0, 0, e.ToolStrip.Width, e.ToolStrip.Height);

            using (LinearGradientBrush brush = new LinearGradientBrush(bounds, Color.Gainsboro, Color.WhiteSmoke, LinearGradientMode.Vertical))
                e.Graphics.FillRectangle(brush, bounds);

            if (e.ToolStrip is ToolStripDropDownMenu)
            {
                return;
            }

            // topic
            if (this.TopicText != null)
            {
                Rectangle r = new Rectangle(2, (e.ToolStrip.Height / 2) - 9, (e.ToolStrip.Width - 60), 20);
                char[]    letters = this.TopicText.ToCharArray();
                Color     fg = Color.Black;
                bool      bold = false, italic = false, underline = false, back_color_required = false;
                int       x = r.X, y = r.Y, max_x = (r.Width + 2), clen = 0, tcol = 0;
                EmojiItem emoji_item;

                for (int i = 0; i < letters.Length; i++)
                {
                    switch (letters[i])
                    {
                    case '\x0006':
                        bold = !bold;
                        break;

                    case '\x0007':
                        underline = !underline;
                        break;

                    case '\x0009':
                        italic = !italic;
                        break;

                    case '\x0003':
                        if (letters.Length >= (i + 3))
                        {
                            if (int.TryParse(this.TopicText.Substring(i + 1, 2), out tcol))
                            {
                                fg = this.GetColorFromCode(tcol);
                                i += 2;
                            }
                            else
                            {
                                goto default;
                            }
                        }
                        else
                        {
                            goto default;
                        }
                        break;

                    case '\x0005':
                        if (letters.Length >= (i + 3))
                        {
                            if (int.TryParse(this.TopicText.Substring(i + 1, 2), out tcol))
                            {
                                Color back_color = this.GetColorFromCode(tcol);
                                back_color_required = true;
                                i += 2;

                                if ((max_x - x) > 0)
                                {
                                    using (SolidBrush brush = new SolidBrush(back_color))
                                        e.Graphics.FillRectangle(brush, new Rectangle(x + 2, y, max_x - x, 20));
                                }
                            }
                            else
                            {
                                goto default;
                            }
                        }
                        else
                        {
                            goto default;
                        }
                        break;

                    case ' ':
                        x += underline ? 2 : (bold ? 4 : 3);

                        if (x >= max_x)
                        {
                            break;
                        }

                        if (underline)
                        {
                            using (Font font = new Font(this.t_font, this.CreateFont(bold, italic, underline)))
                                using (SolidBrush brush = new SolidBrush(fg))
                                    e.Graphics.DrawString(" ", font, brush, new PointF(x, (y + 1)));
                        }
                        break;

                    case '(':
                    case ':':
                    case ';':
                        Emotic emote_index = Emoticons.FindEmoticon(this.TopicText.Substring(i).ToUpper());

                        if (emote_index != null)
                        {
                            if ((x + 15) >= max_x)
                            {
                                x += 15;
                                break;
                            }

                            e.Graphics.DrawImage(Emoticons.emotic[emote_index.Index], new RectangleF(x + 3, y + 2, 16, 16));
                            x += 18;
                            i += (emote_index.Shortcut.Length - 1);
                            break;
                        }
                        else
                        {
                            goto default;
                        }

                    case (char)35:
                    case (char)48:
                    case (char)49:
                    case (char)50:
                    case (char)51:
                    case (char)52:
                    case (char)53:
                    case (char)54:
                    case (char)55:
                    case (char)56:
                    case (char)57:
                    case (char)169:
                    case (char)174:
                    case (char)55356:
                    case (char)55357:
                    case (char)8252:
                    case (char)8265:
                    case (char)8482:
                    case (char)8505:
                    case (char)8596:
                    case (char)8597:
                    case (char)8598:
                    case (char)8599:
                    case (char)8600:
                    case (char)8601:
                    case (char)8617:
                    case (char)8618:
                    case (char)8986:
                    case (char)8987:
                    case (char)9193:
                    case (char)9194:
                    case (char)9195:
                    case (char)9196:
                    case (char)9200:
                    case (char)9203:
                    case (char)9410:
                    case (char)9642:
                    case (char)9643:
                    case (char)9654:
                    case (char)9664:
                    case (char)9723:
                    case (char)9724:
                    case (char)9725:
                    case (char)9726:
                    case (char)9728:
                    case (char)9729:
                    case (char)9742:
                    case (char)9745:
                    case (char)9748:
                    case (char)9749:
                    case (char)9757:
                    case (char)9786:
                    case (char)9800:
                    case (char)9801:
                    case (char)9802:
                    case (char)9803:
                    case (char)9804:
                    case (char)9805:
                    case (char)9806:
                    case (char)9807:
                    case (char)9808:
                    case (char)9809:
                    case (char)9810:
                    case (char)9811:
                    case (char)9824:
                    case (char)9827:
                    case (char)9829:
                    case (char)9830:
                    case (char)9832:
                    case (char)9851:
                    case (char)9855:
                    case (char)9875:
                    case (char)9888:
                    case (char)9889:
                    case (char)9898:
                    case (char)9899:
                    case (char)9917:
                    case (char)9918:
                    case (char)9924:
                    case (char)9925:
                    case (char)9934:
                    case (char)9940:
                    case (char)9962:
                    case (char)9970:
                    case (char)9971:
                    case (char)9973:
                    case (char)9978:
                    case (char)9981:
                    case (char)9986:
                    case (char)9989:
                    case (char)9992:
                    case (char)9993:
                    case (char)9994:
                    case (char)9995:
                    case (char)9996:
                    case (char)9999:
                    case (char)10002:
                    case (char)10004:
                    case (char)10006:
                    case (char)10024:
                    case (char)10035:
                    case (char)10036:
                    case (char)10052:
                    case (char)10055:
                    case (char)10060:
                    case (char)10062:
                    case (char)10067:
                    case (char)10068:
                    case (char)10069:
                    case (char)10071:
                    case (char)10084:
                    case (char)10133:
                    case (char)10134:
                    case (char)10135:
                    case (char)10145:
                    case (char)10160:
                    case (char)10175:
                    case (char)10548:
                    case (char)10549:
                    case (char)11013:
                    case (char)11014:
                    case (char)11015:
                    case (char)11035:
                    case (char)11036:
                    case (char)11088:
                    case (char)11093:
                    case (char)12336:
                    case (char)12349:
                    case (char)12951:
                    case (char)12953:
                        emoji_item = Emoji.GetEmoji24(letters, i);

                        if (emoji_item != null)
                        {
                            if ((x + 15) >= max_x)
                            {
                                x += 15;
                                break;
                            }

                            e.Graphics.DrawImage(emoji_item.Image, new RectangleF(x + 3, y + 2, 16, 16));
                            x += 18;
                            i += (emoji_item.Length - 1);
                            break;
                        }
                        else
                        {
                            goto default;
                        }

                    default:
                        using (Font font = new Font(this.t_font, this.CreateFont(bold, italic, underline)))
                        {
                            clen = (int)Math.Round((double)e.Graphics.MeasureString(letters[i].ToString(), font, 100, StringFormat.GenericTypographic).Width);

                            if ((x + clen) >= max_x)
                            {
                                x += clen;
                                break;
                            }

                            using (SolidBrush brush = new SolidBrush(fg))
                                e.Graphics.DrawString(letters[i].ToString(), font, brush, new PointF(x, (y + 1)));

                            x += clen;
                        }
                        break;
                    }

                    if (x >= max_x)
                    {
                        break;
                    }
                }

                if (back_color_required)
                {
                    if ((max_x - x) > 0)
                    {
                        Rectangle excess = new Rectangle((x + 2), 0, (max_x - x), e.ToolStrip.Height);

                        using (LinearGradientBrush lb = new LinearGradientBrush(excess, Color.Gainsboro, Color.WhiteSmoke, LinearGradientMode.Vertical))
                            e.Graphics.FillRectangle(lb, excess);
                    }
                }
            }

            // close
            if (this.close_hottracking)
            {
                Rectangle rec = new Rectangle(e.ToolStrip.Width - 19, 7, 12, 10);
                e.Graphics.FillRectangle(this.close_brush, rec);
            }
        }
Beispiel #10
0
        public void Draw(DrawItemEventArgs e, bool selected, bool tracked, bool is_black)
        {
            Color item_bg = is_black ? Color.Black : Color.White;

            if (tracked)
            {
                item_bg = is_black ? Color.DimGray : Color.Gainsboro;
            }
            if (selected)
            {
                item_bg = is_black ? Color.DarkBlue : Color.LightSteelBlue;
            }

            using (SolidBrush brush = new SolidBrush(item_bg))
                e.Graphics.FillRectangle(brush, e.Bounds);

            if (this.Owner.AvatarBytes.Length > 0)
            {
                using (MemoryStream ms = new MemoryStream(this.Owner.AvatarBytes))
                    using (Bitmap bmp = new Bitmap(ms))
                        e.Graphics.DrawImage(bmp, new Point(e.Bounds.X + 1, e.Bounds.Y + 2));
            }
            else
            {
                using (MemoryStream ms = new MemoryStream(Avatar.DefaultAvatar))
                    using (Bitmap bmp = new Bitmap(ms))
                        e.Graphics.DrawImage(bmp, new Point(e.Bounds.X + 1, e.Bounds.Y + 2));
            }

            int img_x = 58;

            Color name_color = is_black ? Color.White : Color.Black;

            if (this.Owner.Level == 3)
            {
                name_color = Color.Red;
            }
            else if (this.Owner.Level == 2)
            {
                name_color = is_black ? Color.Lime : Color.Green;
            }
            else if (this.Owner.Level == 1)
            {
                name_color = is_black ? Color.Aqua : Color.Blue;
            }

            if (this.Owner.HasFiles)
            {
                using (MemoryStream ms = new MemoryStream(Avatar.BrowseIcon))
                    using (Bitmap bmp = new Bitmap(ms))
                        e.Graphics.DrawImage(bmp, new Rectangle(e.Bounds.X + img_x, e.Bounds.Y + 7, 14, 14));

                img_x += 15;
            }

            if (this.Owner.IsAway)
            {
                using (MemoryStream ms = new MemoryStream(Avatar.AwayIcon))
                    using (Bitmap bmp = new Bitmap(ms))
                        e.Graphics.DrawImage(bmp, new Rectangle(e.Bounds.X + img_x, e.Bounds.Y + 7, 14, 14));

                img_x += 15;
            }

            if (this.Owner.SupportsVC)
            {
                using (MemoryStream ms = new MemoryStream(is_black ? Avatar.VoiceIconBlack : Avatar.VoiceIcon))
                    using (Bitmap bmp = new Bitmap(ms))
                        e.Graphics.DrawImage(bmp, new Rectangle(e.Bounds.X + img_x, e.Bounds.Y + 7, 14, 14));

                img_x += 15;
            }

            using (Font name_font = new Font(e.Font, FontStyle.Bold))
                using (SolidBrush brush = new SolidBrush(name_color))
                {
                    char[] n_letters   = this.Owner.Name.ToCharArray();
                    int    n_x_pos     = e.Bounds.X + img_x;
                    int    n_y_pos     = e.Bounds.Y + 7;
                    int    n_max_width = (n_x_pos + e.Bounds.Width);

                    for (int i = 0; i < n_letters.Length; i++)
                    {
                        switch (n_letters[i])
                        {
                        case ' ':
                            n_x_pos += 4;
                            break;

                        default:
                            try
                            {
                                int w = (int)Math.Round((double)e.Graphics.MeasureString(n_letters[i].ToString(), name_font, 100, StringFormat.GenericTypographic).Width);

                                if ((n_x_pos + w) < n_max_width)
                                {
                                    e.Graphics.DrawString(n_letters[i].ToString(), name_font, brush, new PointF(n_x_pos, n_y_pos));
                                }

                                n_x_pos += w;
                            }
                            catch { break; }
                            break;
                        }

                        if (n_x_pos >= n_max_width)
                        {
                            break;
                        }
                    }
                }

            try
            {
                using (SolidBrush brush = new SolidBrush(is_black ? Color.WhiteSmoke : Color.Gray))
                    e.Graphics.DrawString(this.Owner.ToASLString(), e.Font, brush, new PointF(e.Bounds.X + 58, e.Bounds.Y + 24));
            }
            catch { }

            String text    = this.Owner.PersonalMessage;
            bool   is_song = false;

            if (text.StartsWith("\x0007"))
            {
                text = Helpers.StripColors(text);

                if (is_black)
                {
                    text = "\x0007\x000311" + text;
                }
                else
                {
                    text = "\x0007\x000312" + text;
                }

                is_song = true;
            }

            if (!String.IsNullOrEmpty(text))
            {
                char[]    letters = text.ToCharArray();
                bool      bold = false, italic = false, underline = false;
                int       x = e.Bounds.X + 58, y = e.Bounds.Y + 38;
                int       max_width  = (e.Bounds.X + e.Bounds.Width);
                Color     fore_color = is_black ? Color.WhiteSmoke : Color.Gray;
                int       color_finder;
                EmojiItem emojiitem;

                if (is_song)
                {
                    using (MemoryStream ms = new MemoryStream(is_black ? Avatar.MusicIconBlack : Avatar.MusicIcon))
                        using (Bitmap bmp = new Bitmap(ms))
                            e.Graphics.DrawImage(bmp, new RectangleF(x, y, 14, 14));

                    x += 15;
                }

                for (int i = 0; i < letters.Length; i++)
                {
                    switch (letters[i])
                    {
                    case '\x0006':
                        bold = !bold;
                        break;

                    case '\x0007':
                        underline = !underline;
                        break;

                    case '\x0009':
                        italic = !italic;
                        break;

                    case '\x0003':
                        if (letters.Length >= (i + 3))
                        {
                            if (int.TryParse(text.Substring(i + 1, 2), out color_finder))
                            {
                                fore_color = this.GetColorFromCode(color_finder);
                                i         += 2;
                            }
                            else
                            {
                                goto default;
                            }
                        }
                        else
                        {
                            goto default;
                        }
                        break;

                    case '\x0005':
                        if (letters.Length >= (i + 3))
                        {
                            if (int.TryParse(text.Substring(i + 1, 2), out color_finder))
                            {
                                i += 2;
                            }
                            else
                            {
                                goto default;
                            }
                        }
                        else
                        {
                            goto default;
                        }
                        break;

                    case ' ':
                        x += underline ? 2 : (bold ? 4 : 3);
                        break;

                    case '(':
                    case ':':
                    case ';':
                        Emotic em = Emoticons.FindEmoticon(text.Substring(i).ToUpper());

                        if (em != null && !is_song)
                        {
                            if ((x + 15) < max_width)
                            {
                                e.Graphics.DrawImage(Emoticons.emotic[em.Index], new RectangleF(x + 3, y, 14, 14));
                            }

                            x += 15;
                            i += (em.Shortcut.Length - 1);
                            break;
                        }
                        else
                        {
                            goto default;
                        }

                    case (char)35:
                    case (char)48:
                    case (char)49:
                    case (char)50:
                    case (char)51:
                    case (char)52:
                    case (char)53:
                    case (char)54:
                    case (char)55:
                    case (char)56:
                    case (char)57:
                    case (char)169:
                    case (char)174:
                    case (char)55356:
                    case (char)55357:
                    case (char)8252:
                    case (char)8265:
                    case (char)8482:
                    case (char)8505:
                    case (char)8596:
                    case (char)8597:
                    case (char)8598:
                    case (char)8599:
                    case (char)8600:
                    case (char)8601:
                    case (char)8617:
                    case (char)8618:
                    case (char)8986:
                    case (char)8987:
                    case (char)9193:
                    case (char)9194:
                    case (char)9195:
                    case (char)9196:
                    case (char)9200:
                    case (char)9203:
                    case (char)9410:
                    case (char)9642:
                    case (char)9643:
                    case (char)9654:
                    case (char)9664:
                    case (char)9723:
                    case (char)9724:
                    case (char)9725:
                    case (char)9726:
                    case (char)9728:
                    case (char)9729:
                    case (char)9742:
                    case (char)9745:
                    case (char)9748:
                    case (char)9749:
                    case (char)9757:
                    case (char)9786:
                    case (char)9800:
                    case (char)9801:
                    case (char)9802:
                    case (char)9803:
                    case (char)9804:
                    case (char)9805:
                    case (char)9806:
                    case (char)9807:
                    case (char)9808:
                    case (char)9809:
                    case (char)9810:
                    case (char)9811:
                    case (char)9824:
                    case (char)9827:
                    case (char)9829:
                    case (char)9830:
                    case (char)9832:
                    case (char)9851:
                    case (char)9855:
                    case (char)9875:
                    case (char)9888:
                    case (char)9889:
                    case (char)9898:
                    case (char)9899:
                    case (char)9917:
                    case (char)9918:
                    case (char)9924:
                    case (char)9925:
                    case (char)9934:
                    case (char)9940:
                    case (char)9962:
                    case (char)9970:
                    case (char)9971:
                    case (char)9973:
                    case (char)9978:
                    case (char)9981:
                    case (char)9986:
                    case (char)9989:
                    case (char)9992:
                    case (char)9993:
                    case (char)9994:
                    case (char)9995:
                    case (char)9996:
                    case (char)9999:
                    case (char)10002:
                    case (char)10004:
                    case (char)10006:
                    case (char)10024:
                    case (char)10035:
                    case (char)10036:
                    case (char)10052:
                    case (char)10055:
                    case (char)10060:
                    case (char)10062:
                    case (char)10067:
                    case (char)10068:
                    case (char)10069:
                    case (char)10071:
                    case (char)10084:
                    case (char)10133:
                    case (char)10134:
                    case (char)10135:
                    case (char)10145:
                    case (char)10160:
                    case (char)10175:
                    case (char)10548:
                    case (char)10549:
                    case (char)11013:
                    case (char)11014:
                    case (char)11015:
                    case (char)11035:
                    case (char)11036:
                    case (char)11088:
                    case (char)11093:
                    case (char)12336:
                    case (char)12349:
                    case (char)12951:
                    case (char)12953:
                        emojiitem = Emoji.GetEmoji24(letters, i);

                        if (emojiitem != null && !is_song)
                        {
                            if ((x + 15) < max_width)
                            {
                                e.Graphics.DrawImage(emojiitem.Image, new RectangleF(x + 3, y, 14, 14));
                            }

                            x += 15;
                            i += (emojiitem.Length - 1);
                            break;
                        }
                        else
                        {
                            goto default;
                        }

                    default:
                        using (Font f = new Font(e.Font, this.CreateFont(bold, italic, underline)))
                            using (SolidBrush brush = new SolidBrush(fore_color))
                            {
                                try
                                {
                                    int w = (int)Math.Round((double)e.Graphics.MeasureString(letters[i].ToString(), f, 100, StringFormat.GenericTypographic).Width);

                                    if ((x + w) < max_width)
                                    {
                                        e.Graphics.DrawString(letters[i].ToString(), f, brush, new PointF(x, y));
                                    }

                                    x += w;
                                }
                                catch { break; }
                            }
                        break;
                    }

                    if (x >= max_width)
                    {
                        break;
                    }
                }
            }
        }
Beispiel #11
0
        public void Populate(EventHandler callback)
        {
            this.tip = new ToolTip();

            EmojiMenuShortcutItem[] items = new EmojiMenuShortcutItem[101];
            items[0] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57312", Shortcut = "🏠", Description = "House Building"
            };
            items[1] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57313", Shortcut = "🏡", Description = "House With Garden"
            };
            items[2] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57323", Shortcut = "🏫", Description = "School"
            };
            items[3] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57314", Shortcut = "🏢", Description = "Office Building"
            };
            items[4] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57315", Shortcut = "🏣", Description = "Japanese Post Office"
            };
            items[5] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57317", Shortcut = "🏥", Description = "Hospital"
            };
            items[6] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57318", Shortcut = "🏦", Description = "Bank"
            };
            items[7] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57322", Shortcut = "🏪", Description = "Convenience Store"
            };
            items[8] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57321", Shortcut = "🏩", Description = "Love Hotel"
            };
            items[9] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57320", Shortcut = "🏨", Description = "Hotel"
            };
            items[10] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56466", Shortcut = "💒", Description = "Wedding"
            };
            items[11] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9962", Shortcut = "⛪", Description = "Church"
            };
            items[12] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57324", Shortcut = "🏬", Description = "Department Store"
            };
            items[13] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57316", Shortcut = "🏤", Description = "European Post Office"
            };
            items[14] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57095", Shortcut = "🌇", Description = "Sunset Over Buildings"
            };
            items[15] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57094", Shortcut = "🌆", Description = "Cityscape At Dusk"
            };
            items[16] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57327", Shortcut = "🏯", Description = "Japanese Castle"
            };
            items[17] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57328", Shortcut = "🏰", Description = "European Castle"
            };
            items[18] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9978", Shortcut = "⛺", Description = "Tent"
            };
            items[19] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57325", Shortcut = "🏭", Description = "Factory"
            };
            items[20] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56828", Shortcut = "🗼", Description = "Tokyo Tower"
            };
            items[21] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56830", Shortcut = "🗾", Description = "Silhouette Of Japan"
            };
            items[22] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56827", Shortcut = "🗻", Description = "Mount Fuji"
            };
            items[23] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57092", Shortcut = "🌄", Description = "Sunrise Over Mountains"
            };
            items[24] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57093", Shortcut = "🌅", Description = "Sunrise"
            };
            items[25] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57091", Shortcut = "🌃", Description = "Night With Stars"
            };
            items[26] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56829", Shortcut = "🗽", Description = "Statue Of Liberty"
            };
            items[27] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57097", Shortcut = "🌉", Description = "Bridge At Night"
            };
            items[28] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57248", Shortcut = "🎠", Description = "Carousel Horse"
            };
            items[29] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57249", Shortcut = "🎡", Description = "Ferris Wheel"
            };
            items[30] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9970", Shortcut = "⛲", Description = "Fountain"
            };
            items[31] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57250", Shortcut = "🎢", Description = "Roller Coaster"
            };
            items[32] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56994", Shortcut = "🚢", Description = "Ship"
            };
            items[33] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9973", Shortcut = "⛵", Description = "Sailboat"
            };
            items[34] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56996", Shortcut = "🚤", Description = "Speedboat"
            };
            items[35] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56995", Shortcut = "🚣", Description = "Rowboat"
            };
            items[36] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9875", Shortcut = "⚓", Description = "Anchor"
            };
            items[37] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56960", Shortcut = "🚀", Description = "Rocket"
            };
            items[38] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9992", Shortcut = "✈", Description = "Airplane"
            };
            items[39] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56506", Shortcut = "💺", Description = "Seat"
            };
            items[40] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56961", Shortcut = "🚁", Description = "Helicopter"
            };
            items[41] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56962", Shortcut = "🚂", Description = "Steam Locomotive"
            };
            items[42] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56970", Shortcut = "🚊", Description = "Tram"
            };
            items[43] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56969", Shortcut = "🚉", Description = "Station"
            };
            items[44] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56990", Shortcut = "🚞", Description = "Mountain Railway"
            };
            items[45] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56966", Shortcut = "🚆", Description = "Train"
            };
            items[46] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56964", Shortcut = "🚄", Description = "High-Speed Train"
            };
            items[47] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56965", Shortcut = "🚅", Description = "High-Speed Train With Bullet Nose"
            };
            items[48] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56968", Shortcut = "🚈", Description = "Light Rail"
            };
            items[49] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56967", Shortcut = "🚇", Description = "Metro"
            };
            items[50] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56989", Shortcut = "🚝", Description = "Monorail"
            };
            items[51] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56971", Shortcut = "🚋", Description = "Tram Car"
            };
            items[52] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56963", Shortcut = "🚃", Description = "Railway Car"
            };
            items[53] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56974", Shortcut = "🚎", Description = "Trolleybus"
            };
            items[54] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56972", Shortcut = "🚌", Description = "Bus"
            };
            items[55] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56973", Shortcut = "🚍", Description = "Oncoming Bus"
            };
            items[56] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56985", Shortcut = "🚙", Description = "Recreational Vehicle"
            };
            items[57] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56984", Shortcut = "🚘", Description = "Oncoming Automobile"
            };
            items[58] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56983", Shortcut = "🚗", Description = "Automobile"
            };
            items[59] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56981", Shortcut = "🚕", Description = "Taxi"
            };
            items[60] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56982", Shortcut = "🚖", Description = "Oncoming Taxi"
            };
            items[61] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56987", Shortcut = "🚛", Description = "Articulated Lorry"
            };
            items[62] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56986", Shortcut = "🚚", Description = "Delivery Truck"
            };
            items[63] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57000", Shortcut = "🚨", Description = "Police Cars Revolving Light"
            };
            items[64] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56979", Shortcut = "🚓", Description = "Police Car"
            };
            items[65] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56980", Shortcut = "🚔", Description = "Oncoming Police Car"
            };
            items[66] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56978", Shortcut = "🚒", Description = "Fire Engine"
            };
            items[67] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56977", Shortcut = "🚑", Description = "Ambulance"
            };
            items[68] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56976", Shortcut = "🚐", Description = "Minibus"
            };
            items[69] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57010", Shortcut = "🚲", Description = "Bicycle  "
            };
            items[70] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56993", Shortcut = "🚡", Description = "Aerial Tramway"
            };
            items[71] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56991", Shortcut = "🚟", Description = "Suspension Railway"
            };
            items[72] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56992", Shortcut = "🚠", Description = "Mountain Cableway"
            };
            items[73] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56988", Shortcut = "🚜", Description = "Tractor"
            };
            items[74] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56456", Shortcut = "💈", Description = "Barber Pole"
            };
            items[75] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56975", Shortcut = "🚏", Description = "Bus Stop"
            };
            items[76] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57259", Shortcut = "🎫", Description = "Ticket"
            };
            items[77] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56998", Shortcut = "🚦", Description = "Vertical Traffic Light"
            };
            items[78] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56997", Shortcut = "🚥", Description = "Horizontal Traffic Light"
            };
            items[79] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9888", Shortcut = "⚠", Description = "Warning Sign"
            };
            items[80] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56999", Shortcut = "🚧", Description = "Construction Sign"
            };
            items[81] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56624", Shortcut = "🔰", Description = "Japanese Symbol For Beginner"
            };
            items[82] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9981", Shortcut = "⛽", Description = "Fuel Pump"
            };
            items[83] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57326", Shortcut = "🏮", Description = "Izakaya Lantern"
            };
            items[84] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57264", Shortcut = "🎰", Description = "Slot Machine"
            };
            items[85] = new EmojiMenuShortcutItem {
                SurrogateSequence = "9832", Shortcut = "♨", Description = "Hot Springs"
            };
            items[86] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56831", Shortcut = "🗿", Description = "Moyai"
            };
            items[87] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57258", Shortcut = "🎪", Description = "Circus Tent"
            };
            items[88] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 57261", Shortcut = "🎭", Description = "Performing Arts"
            };
            items[89] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 56525", Shortcut = "📍", Description = "Round Pushpin"
            };
            items[90] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55357 57001", Shortcut = "🚩", Description = "Triangular Flag On Post"
            };
            items[91] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56815 55356 56821", Shortcut = "🇯🇵", Description = "Flag For Japan"
            };
            items[92] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56816 55356 56823", Shortcut = "🇰🇷", Description = "Flag For South Korea"
            };
            items[93] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56809 55356 56810", Shortcut = "🇩🇪", Description = "Flag For Germany"
            };
            items[94] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56808 55356 56819", Shortcut = "🇨🇳", Description = "Flag For China"
            };
            items[95] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56826 55356 56824", Shortcut = "🇺🇸", Description = "Flag For USA"
            };
            items[96] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56811 55356 56823", Shortcut = "🇫🇷", Description = "Flag For France"
            };
            items[97] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56810 55356 56824", Shortcut = "🇪🇸", Description = "Flag For Spain"
            };
            items[98] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56814 55356 56825", Shortcut = "🇮🇹", Description = "Flag For Italy"
            };
            items[99] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56823 55356 56826", Shortcut = "🇷🇺", Description = "Flag For Russia"
            };
            items[100] = new EmojiMenuShortcutItem {
                SurrogateSequence = "55356 56812 55356 56807", Shortcut = "🇬🇧", Description = "Flag For Great Britain"
            };

            for (int i = 0; i < items.Length; i++)
            {
                PictureBox pic = new PictureBox();
                pic.BackColor = Color.White;
                pic.Size      = new Size(24, 24);
                int per_line = 8;
                pic.Location    = new Point(1 + ((i % per_line) * 24) + (i % per_line), 1 + ((i / per_line) * 24) + (i / per_line));
                pic.Cursor      = Cursors.Hand;
                pic.Tag         = items[i];
                pic.MouseHover += this.pic_MouseHover;
                pic.Click      += callback;
                EmojiItem item = Emoji.EmojiFromSurrogate(items[i].SurrogateSequence);
                pic.ImageLocation = Path.Combine(Settings.AppPath, "emoji", "at24", item.FileName);
                pic.SizeMode      = PictureBoxSizeMode.CenterImage;
                this.Controls.Add(pic);
            }
        }