コード例 #1
0
        void ActivateTSEditorMode(EnumPolyEditMode mode)
        {
            tsImgMove.BackgroundImage           = Resources.imgMove;
            tsImgRotate.BackgroundImage         = Resources.imgRotate;
            tsImgScale.BackgroundImage          = Resources.imgScale;
            tsPolyDelete.BackgroundImage        = Resources.DelPoint;
            tsPolyMove.BackgroundImage          = Resources.MovPoint;
            tsPolyNewPoinInLine.BackgroundImage = Resources.NewPointInLine;
            tsPolyNewPoint.BackgroundImage      = Resources.NewPoint;
            switch (mode)
            {
            case EnumPolyEditMode.DelVert:
                tsPolyDelete.BackgroundImage = Resources.o_DelPoint;
                break;

            case EnumPolyEditMode.MoveVertorPoly:
                tsPolyMove.BackgroundImage = Resources.o_MovPoint;
                break;

            case EnumPolyEditMode.NewVert:
                tsPolyNewPoint.BackgroundImage = Resources.o_NewPoint;
                break;

            case EnumPolyEditMode.NewVertInLine:
                tsPolyNewPoinInLine.BackgroundImage = Resources.o_NewPointInLine;
                break;

            case EnumPolyEditMode.MoveImage:
                tsImgMove.BackgroundImage = Resources.o_imgMove;
                break;

            case EnumPolyEditMode.ScaleImage:
                tsImgScale.BackgroundImage = Resources.o_imgScale;
                break;

            case EnumPolyEditMode.RotateImage:
                tsImgRotate.BackgroundImage = Resources.o_imgRotate;
                break;
            }
            Overlay.Refresh();
        }
コード例 #2
0
        public FrmGraphicsEditor()
        {
            InitializeComponent();
            PolyEditMode = EnumPolyEditMode.MoveImage;



            Overlay = new GraphicalOverlay()
            {
                Owner = pbDrawSpace
            };

            Overlay.Paint += Overlay_Paint;
            InitTSEvents();
            InitPbDrawSpace();

            btnNewTTImage.Click += BtnTTImageNew_Click;
            btnDelTTImage.Click += (_, __) => { if (lbTTImages.SelectedItem != null)
                                                {
                                                    selectedScene.TTImages.RemoveAt(lbTTImages.SelectedIndex); RefreshTTImages(); Overlay.Refresh();
                                                }
            };
            btnMoveUpTTImage.Click += (_, __) => { if (lbTTImages.SelectedIndex > 0)
                                                   {
                                                       SwapImages(lbTTImages.SelectedIndex, lbTTImages.SelectedIndex - 1); RefreshTTImages(); Overlay.Refresh();
                                                   }
            };
            btnMoveDownTTImage.Click += (_, __) => { if (lbTTImages.SelectedIndex < lbTTImages.Items.Count - 1)
                                                     {
                                                         SwapImages(lbTTImages.SelectedIndex, lbTTImages.SelectedIndex + 1); RefreshTTImages(); Overlay.Refresh();
                                                     }
            };

            var SceneContext = new ContextMenu();

            SceneContext.MenuItems.Add("New", (_, __) =>
            {
                if (MainForm.Project == null)
                {
                    return;
                }
                using (var f = new frmScene(MainForm.Project.Scenes.ToArray()))
                {
                    if (f.ShowDialog() == DialogResult.OK)
                    {
                        MainForm.Project.Scenes.Add(f.Result);
                        RefreshScenes();
                        lbScenes.SelectedIndex = lbScenes.Items.Count - 1;
                    }
                }
            });
            SceneContext.MenuItems.Add("Edit", (_, __) =>
            {
                if (MainForm.Project == null || lbScenes.SelectedItem == null)
                {
                    return;
                }

                using (var f = new frmScene(MainForm.Project.Scenes.ToArray(), MainForm.Project.Scenes[lbScenes.SelectedIndex]))
                {
                    if (f.ShowDialog() == DialogResult.OK)
                    {
                        var s           = MainForm.Project.Scenes[lbScenes.SelectedIndex];
                        s.Name          = f.Result.Name;
                        s.ResolutionDPI = f.Result.ResolutionDPI;
                        s.CanvasSize    = f.Result.CanvasSize;

                        RefreshScenes();
                    }
                }
            });
            lbScenes.ContextMenu = SceneContext;

            lbOids.SelectedIndexChanged     += LbOids_SelectedIndexChanged;
            lbScenes.SelectedIndexChanged   += LB_Scenes_SelectedIndexChanged;
            tsPolygons.SelectedIndexChanged += (_, __) =>
            {
                if (selectedSceneOid != null)
                {
                    int i = tsPolygons.SelectedIndex;
                    if (i > -1 && selectedSceneOid.Polygons.Count > 0)
                    {
                        selectedpolygon = selectedSceneOid.Polygons[i];
                        Overlay.Refresh();
                    }
                }
            };

            btnOnSwitchOid.Click += (_, __) =>
            {
                if (selectedScene == null)
                {
                    return;
                }

                lbOids.SelectedIndex = -1;
                tsPolygons.Items.Clear();


                if (selectedScene.StartOid == null)
                {
                    selectedScene.StartOid = new SceneOid("os_start");
                    selectedSceneOid       = selectedScene.StartOid;
                }
                if (selectedScene.StartOid.Polygons == null || selectedScene.StartOid.Polygons.Count == 0)
                {
                    selectedSceneOid = selectedScene.StartOid;
                    tsAddPoly.PerformClick();
                }
                selectedSceneOid = selectedScene.StartOid;


                tsPolygons.Items.AddRange(selectedSceneOid.Polygons.ToArray());
                if (tsPolygons.Items.Count > 0)
                {
                    tsPolygons.SelectedIndex = 0;
                }
            };

            RefreshScenes();
            RefreshNodes();
            tsImgMove.PerformClick();
        }