コード例 #1
0
ファイル: BaseChartPage.cs プロジェクト: Yahasana/Blumind
        void CreateExtendActionMenus(IEnumerable <ExtendActionInfo> actions, ref int index)
        {
            if (actions.IsNullOrEmpty())
            {
                return;
            }

            if (!ExtendActionItems.IsEmpty())
            {
                var tss = new ToolStripSeparator();
                ChartContextMenuStrip.Items.Insert(index++, tss);
                ExtendActionItems.Add(tss);
            }

            foreach (var ea in actions)
            {
                var mi = new ToolStripMenuItem();
                mi.Text  = Lang._(ea.Text);
                mi.Image = ea.Icon;
                mi.ShortcutKeyDisplayString = ea.ShortcutKeyDisplayString;
                mi.Click += ea.Processor;

                //
                ChartContextMenuStrip.Items.Insert(index++, mi);
                ExtendActionItems.Add(mi);
            }
        }
コード例 #2
0
ファイル: BaseChartPage.cs プロジェクト: Yahasana/Blumind
        void CreateExtendActionMenus()
        {
            ClearExtendActionMenus();

            if (ChartContextMenuStrip == null || SelectedObjects.Length != 1)
            {
                return;
            }

            var mindex = ExtendActionMenuIndex;

            if (mindex < 0 || mindex >= ChartContextMenuStrip.Items.Count)
            {
                mindex = ChartContextMenuStrip.Items.Count;
            }


            var so = SelectedObjects.First();

            if (so is IExtendActionProvider)
            {
                var ep = (IExtendActionProvider)so;
                CreateExtendActionMenus(ep.GetExtendActions(ReadOnly), ref mindex);
            }

            //
            CreateExtendActionMenus(GetExtendActions(), ref mindex);

            // separators
            if (!ExtendActionItems.IsEmpty())
            {
                var min = ChartContextMenuStrip.Items.IndexOf(ExtendActionItems.First());
                var max = ChartContextMenuStrip.Items.IndexOf(ExtendActionItems.Last());

                if (max < ChartContextMenuStrip.Items.Count - 1 && !(ChartContextMenuStrip.Items[max + 1] is ToolStripSeparator))
                {
                    var tss = new ToolStripSeparator();
                    ChartContextMenuStrip.Items.Insert(max, tss);
                    ExtendActionItems.Add(tss);
                }

                if (min > 0 && !(ChartContextMenuStrip.Items[min - 1] is ToolStripSeparator))
                {
                    var tss = new ToolStripSeparator();
                    ChartContextMenuStrip.Items.Insert(min, tss);
                    ExtendActionItems.Add(tss);
                }
            }
        }
コード例 #3
0
ファイル: BaseChartPage.cs プロジェクト: Yahasana/Blumind
        void ClearExtendActionMenus()
        {
            if (ChartContextMenuStrip == null || ExtendActionItems.IsNullOrEmpty())
            {
                return;
            }

            foreach (var mi in ExtendActionItems)
            {
                if (ChartContextMenuStrip.Items.Contains(mi))
                {
                    ChartContextMenuStrip.Items.Remove(mi);
                }
            }

            ExtendActionItems.Clear();
        }