Exemple #1
0
        public void UpdateTheme()
        {
            if (ShareXResources.UseCustomTheme)
            {
                lblImageSize.BackColor = ShareXResources.Theme.BackgroundColor;
                lblImageSize.ForeColor = ShareXResources.Theme.TextColor;

                ShareXResources.ApplyCustomThemeToContextMenuStrip(cmsMenu);
            }
            else
            {
                lblImageSize.BackColor = SystemColors.Window;
                lblImageSize.ForeColor = SystemColors.ControlText;
            }
        }
Exemple #2
0
        public CodeMenu(TextBoxBase tbb, CodeMenuItem[] items)
        {
            textBoxBase = tbb;

            Font            = new Font("Lucida Console", 8);
            AutoClose       = textBoxBase == null;
            ShowImageMargin = false;

            foreach (CodeMenuItem item in items)
            {
                ToolStripMenuItem tsmi = new ToolStripMenuItem {
                    Text = $"{item.Name} - {item.Description}", Tag = item.Name
                };

                tsmi.MouseUp += (sender, e) =>
                {
                    if (textBoxBase != null && e.Button == MouseButtons.Left)
                    {
                        string text = ((ToolStripMenuItem)sender).Tag.ToString();
                        textBoxBase.AppendTextToSelection(text);
                    }
                    else
                    {
                        Close();
                    }
                };

                if (string.IsNullOrWhiteSpace(item.Category))
                {
                    Items.Add(tsmi);
                }
                else
                {
                    ToolStripMenuItem tsmiParent;
                    int index = Items.IndexOfKey(item.Category);
                    if (index < 0)
                    {
                        tsmiParent = new ToolStripMenuItem {
                            Text = item.Category, Tag = item.Category, Name = item.Category
                        };
                        tsmiParent.HideImageMargin();
                        Items.Add(tsmiParent);
                    }
                    else
                    {
                        tsmiParent = Items[index] as ToolStripMenuItem;
                    }
                    tsmiParent.DropDownItems.Add(tsmi);
                }
            }

            Items.Add(new ToolStripSeparator());

            ToolStripMenuItem tsmiClose = new ToolStripMenuItem(Resources.CodeMenu_Create_Close);

            tsmiClose.Click += (sender, e) => Close();
            Items.Add(tsmiClose);

            if (ShareXResources.UseCustomTheme)
            {
                ShareXResources.ApplyCustomThemeToContextMenuStrip(this);
            }

            if (textBoxBase != null)
            {
                textBoxBase.MouseDown += (sender, e) =>
                {
                    if (Items.Count > 0)
                    {
                        Show(textBoxBase, MenuLocation);
                    }
                };

                textBoxBase.GotFocus += (sender, e) =>
                {
                    if (Items.Count > 0)
                    {
                        Show(textBoxBase, MenuLocation);
                    }
                };

                textBoxBase.LostFocus += (sender, e) =>
                {
                    if (Visible)
                    {
                        Close();
                    }
                };

                textBoxBase.KeyDown += (sender, e) =>
                {
                    if ((e.KeyCode == Keys.Enter || e.KeyCode == Keys.Escape) && Visible)
                    {
                        Close();
                        e.SuppressKeyPress = true;
                    }
                };

                textBoxBase.Disposed += (sender, e) => Dispose();
            }
        }