예제 #1
0
        private void Tastudio_Load(object sender, EventArgs e)
        {
            if (!Engage())
            {
                Close();
                return;
            }

            if (TasView.Rotatable)
            {
                RightClickMenu.Items.AddRange(TasView.GenerateContextMenuItems()
                                              .ToArray());

                RightClickMenu.Items
                .OfType <ToolStripMenuItem>()
                .First(t => t.Name == "RotateMenuItem")
                .Click += (o, ov) => { CurrentTasMovie.FlagChanges(); };
            }

            TasView.ScrollSpeed           = Settings.ScrollSpeed;
            TasView.AlwaysScroll          = Settings.FollowCursorAlwaysScroll;
            TasView.ScrollMethod          = Settings.FollowCursorScrollMethod;
            TasView.SeekingCutoffInterval = Settings.SeekingCutoffInterval;
            BookMarkControl.HoverInterval = Settings.BranchCellHoverInterval;

            _autosaveTimer       = new Timer(components);
            _autosaveTimer.Tick += AutosaveTimerEventProcessor;
            if (Settings.AutosaveInterval > 0)
            {
                _autosaveTimer.Interval = (int)Settings.AutosaveInterval;
                _autosaveTimer.Start();
            }

            MainVertialSplit.SetDistanceOrDefault(
                Settings.MainVerticalSplitDistance,
                _defaultMainSplitDistance);

            BranchesMarkersSplit.SetDistanceOrDefault(
                Settings.BranchMarkerSplitDistance,
                _defaultBranchMarkerSplitDistance);

            TasView.Font = TasViewFont;
            CurrentTasMovie.BindMarkersToInput = Settings.BindMarkersToInput;
            RefreshDialog();
            _initialized = true;
        }
예제 #2
0
 private void SaveTasMenuItem_Click(object sender, EventArgs e)
 {
     if (string.IsNullOrEmpty(CurrentTasMovie.Filename) ||
         CurrentTasMovie.Filename == DefaultTasProjName())
     {
         SaveAsTasMenuItem_Click(sender, e);
     }
     else
     {
         _autosaveTimer.Stop();
         MessageStatusLabel.Text = "Saving...";
         this.Cursor             = Cursors.WaitCursor;
         Update();
         if (_autosaveAppendFilenamePending)
         {
             // temp filename
             var ext = CurrentTasMovie.PreferredExtension;
             CurrentTasMovie.Filename = CurrentTasMovie.Filename.Replace(ext, "backup." + ext);
         }
         CurrentTasMovie.Save();
         if (Settings.AutosaveInterval > 0)
         {
             _autosaveTimer.Start();
         }
         MessageStatusLabel.Text = CurrentTasMovie.Name + " saved.";
         if (_autosaveAppendFilenamePending)
         {
             // switch back to original
             CurrentTasMovie.Filename = CurrentTasMovie.Filename.Replace("backup.", "");
             // we should only arrive here if changes were true
             // and saving to a different file clears changes
             // so assuming the original file remains unsaved, keep changes flagged
             CurrentTasMovie.FlagChanges();
         }
         else
         {
             Settings.RecentTas.Add(CurrentTasMovie.Filename);
         }
         this.Cursor = Cursors.Default;
     }
 }
예제 #3
0
파일: TAStudio.cs 프로젝트: m35/BizHawk
        private void Tastudio_Load(object sender, EventArgs e)
        {
            if (!InitializeOnLoad())
            {
                Close();
                DialogResult = DialogResult.Cancel;
                return;
            }

            SetColumnsFromCurrentStickies();

            if (TasView.Rotatable)
            {
                RightClickMenu.Items.AddRange(TasView.GenerateContextMenuItems()
                                              .ToArray());

                RightClickMenu.Items
                .OfType <ToolStripMenuItem>()
                .First(t => t.Name == "RotateMenuItem")
                .Click += (o, ov) => { CurrentTasMovie.FlagChanges(); };
            }

            TasView.ScrollSpeed           = Settings.ScrollSpeed;
            TasView.AlwaysScroll          = Settings.FollowCursorAlwaysScroll;
            TasView.ScrollMethod          = Settings.FollowCursorScrollMethod;
            TasView.SeekingCutoffInterval = Settings.SeekingCutoffInterval;
            BookMarkControl.HoverInterval = Settings.BranchCellHoverInterval;

            _autosaveTimer       = new Timer(components);
            _autosaveTimer.Tick += AutosaveTimerEventProcessor;
            if (Settings.AutosaveInterval > 0)
            {
                _autosaveTimer.Interval = (int)Settings.AutosaveInterval;
                _autosaveTimer.Start();
            }

            // Remembering Split container logic
            if (Settings.MainVerticalSplitDistance > 0)
            {
                try
                {
                    MainVertialSplit.SplitterDistance = Settings.MainVerticalSplitDistance;
                }
                catch (Exception)
                {
                    MainVertialSplit.SplitterDistance = _defaultMainSplitDistance;
                }
            }

            if (Settings.BranchMarkerSplitDistance > 0)
            {
                try
                {
                    BranchesMarkersSplit.SplitterDistance = Settings.BranchMarkerSplitDistance;
                }
                catch (Exception)
                {
                    BranchesMarkersSplit.SplitterDistance = _defaultBranchMarkerSplitDistance;
                }
            }

            TasView.Font = TasViewFont;
            CurrentTasMovie.BindMarkersToInput = Settings.BindMarkersToInput;
            RefreshDialog();
            _initialized = true;
        }
예제 #4
0
 private void TasView_ColumnReordered(object sender, InputRoll.ColumnReorderedEventArgs e)
 {
     CurrentTasMovie.FlagChanges();
 }
예제 #5
0
        private void Tastudio_Load(object sender, EventArgs e)
        {
            if (!InitializeOnLoad())
            {
                Close();
                DialogResult = DialogResult.Cancel;
                return;
            }

            SetColumnsFromCurrentStickies();

            if (VersionInfo.DeveloperBuild)
            {
                RightClickMenu.Items.AddRange(TasView.GenerateContextMenuItems().ToArray());

                RightClickMenu.Items
                .OfType <ToolStripMenuItem>()
                .First(t => t.Name == "RotateMenuItem")
                .Click += (o, ov) =>
                {
                    CurrentTasMovie.FlagChanges();
                };
            }

            TasView.InputPaintingMode     = Settings.DrawInput;
            TasView.ScrollSpeed           = Settings.ScrollSpeed;
            TasView.AlwaysScroll          = Settings.FollowCursorAlwaysScroll;
            TasView.ScrollMethod          = Settings.FollowCursorScrollMethod;
            TasView.SeekingCutoffInterval = Settings.SeekingCutoffInterval;
            BookMarkControl.HoverInterval = Settings.BranchCellHoverInterval;

            _autosaveTimer       = new Timer(components);
            _autosaveTimer.Tick += AutosaveTimerEventProcessor;
            if (Settings.AutosaveInterval > 0)
            {
                _autosaveTimer.Interval = (int)Settings.AutosaveInterval;
                _autosaveTimer.Start();
            }

            // Remembering Split container logic
            int defaultMainSplitDistance         = MainVertialSplit.SplitterDistance;
            int defaultBranchMarkerSplitDistance = BranchesMarkersSplit.SplitterDistance;

            ToolStripMenuItem restoreDefaults = TASMenu.Items
                                                .OfType <ToolStripMenuItem>()
                                                .Single(t => t.Name == "SettingsSubMenu")
                                                .DropDownItems
                                                .OfType <ToolStripMenuItem>()
                                                .Single(t => t.Text == "Restore &Defaults");

            restoreDefaults.Click += (o, ev) =>
            {
                MainVertialSplit.SplitterDistance     = defaultMainSplitDistance;
                BranchesMarkersSplit.SplitterDistance = defaultBranchMarkerSplitDistance;
            };

            if (Settings.MainVerticalSplitDistance > 0)
            {
                try
                {
                    MainVertialSplit.SplitterDistance = Settings.MainVerticalSplitDistance;
                }
                catch (Exception)
                {
                    MainVertialSplit.SplitterDistance = defaultMainSplitDistance;
                }
            }

            if (Settings.BranchMarkerSplitDistance > 0)
            {
                try
                {
                    BranchesMarkersSplit.SplitterDistance = Settings.BranchMarkerSplitDistance;
                }
                catch (Exception)
                {
                    BranchesMarkersSplit.SplitterDistance = defaultBranchMarkerSplitDistance;
                }
            }

            RefreshDialog();
            _initialized = true;
        }
예제 #6
0
        private void SetUpToolStripColumns()
        {
            ColumnsSubMenu.DropDownItems.Clear();

            var columns = TasView.AllColumns
                          .Where(x => !string.IsNullOrWhiteSpace(x.Text))
                          .Where(x => x.Name != "FrameColumn");

            ToolStripMenuItem[] playerMenus = new ToolStripMenuItem[Global.Emulator.ControllerDefinition.PlayerCount + 1];
            playerMenus[0] = ColumnsSubMenu;
            for (int i = 1; i < playerMenus.Length; i++)
            {
                playerMenus[i] = new ToolStripMenuItem("Player " + i);
            }
            int player = 0;

            foreach (InputRoll.RollColumn column in columns)
            {
                ToolStripMenuItem menuItem = new ToolStripMenuItem
                {
                    Text         = column.Text + " (" + column.Name + ")",
                    Checked      = column.Visible,
                    CheckOnClick = true,
                    Tag          = column.Name
                };

                menuItem.CheckedChanged += (o, ev) =>
                {
                    ToolStripMenuItem sender = o as ToolStripMenuItem;
                    TasView.AllColumns.Find(c => c.Name == (string)sender.Tag).Visible = sender.Checked;
                    TasView.AllColumns.ColumnsChanged();
                    CurrentTasMovie.FlagChanges();
                    RefreshTasView();
                    ColumnsSubMenu.ShowDropDown();
                    (sender.OwnerItem as ToolStripMenuItem).ShowDropDown();
                };

                if (column.Name.StartsWith("P") && column.Name.Length > 1 && char.IsNumber(column.Name, 1))
                {
                    player = int.Parse(column.Name[1].ToString());
                }
                else
                {
                    player = 0;
                }

                playerMenus[player].DropDownItems.Add(menuItem);
            }

            for (int i = 1; i < playerMenus.Length; i++)
            {
                ColumnsSubMenu.DropDownItems.Add(playerMenus[i]);
            }

            ColumnsSubMenu.DropDownItems.Add(new ToolStripSeparator());
            for (int i = 1; i < playerMenus.Length; i++)
            {
                ToolStripMenuItem item = new ToolStripMenuItem("Show Player " + i);
                item.CheckOnClick = true;
                item.Checked      = true;

                int dummyInt = i;
                ToolStripMenuItem dummyObject = playerMenus[i];
                item.CheckedChanged += (o, ev) =>
                {
                    ToolStripMenuItem sender = o as ToolStripMenuItem;
                    foreach (ToolStripMenuItem menuItem in dummyObject.DropDownItems)
                    {
                        TasView.AllColumns.Find(c => c.Name == (string)menuItem.Tag).Visible = sender.Checked;
                    }

                    CurrentTasMovie.FlagChanges();
                    RefreshTasView();
                };

                ColumnsSubMenu.DropDownItems.Add(item);
            }

            ColumnsSubMenu.DropDownItems.Add(new ToolStripSeparator());
            var defaults = new ToolStripMenuItem
            {
                Name = "RestoreDefaultColumnConfiguration",
                Text = "Restore defaults"
            };

            defaults.Click += (o, ev) =>
            {
                TasView.AllColumns.Clear();
                SetUpColumns();
                RefreshTasView();
                CurrentTasMovie.FlagChanges();
            };

            ColumnsSubMenu.DropDownItems.Add(defaults);
        }
예제 #7
0
 private void RotateMenuItem_Click(object sender, EventArgs e)
 {
     TasView.HorizontalOrientation ^= true;
     CurrentTasMovie.FlagChanges();
 }
예제 #8
0
        private void Tastudio_Load(object sender, EventArgs e)
        {
            if (!InitializeOnLoad())
            {
                Close();
                DialogResult = DialogResult.Cancel;
                return;
            }

            // Set the screenshot to "1x" resolution of the core
            // cores like n64 and psx are going to still have sizes too big for the control, so cap them
            int width  = VideoProvider.BufferWidth;
            int height = VideoProvider.BufferHeight;

            if (width > 320)
            {
                double ratio = 320.0 / (double)width;
                width  = 320;
                height = (int)((double)(height) * ratio);
            }
            ScreenshotControl.DrawingHeight = height;
            ScreenshotControl.Size          = new Size(width, ScreenshotControl.DrawingHeight + ScreenshotControl.UserPadding);


            ScreenshotControl.Visible = false;
            Controls.Add(ScreenshotControl);
            ScreenshotControl.BringToFront();

            SetColumnsFromCurrentStickies();

            if (VersionInfo.DeveloperBuild)
            {
                RightClickMenu.Items.AddRange(TasView.GenerateContextMenuItems().ToArray());

                RightClickMenu.Items
                .OfType <ToolStripMenuItem>()
                .First(t => t.Name == "RotateMenuItem")
                .Click += (o, ov) =>
                {
                    CurrentTasMovie.FlagChanges();
                };
            }

            TasView.InputPaintingMode     = Settings.DrawInput;
            TasView.ScrollSpeed           = Settings.ScrollSpeed;
            TasView.AlwaysScroll          = Settings.FollowCursorAlwaysScroll;
            TasView.ScrollMethod          = Settings.FollowCursorScrollMethod;
            TasView.SeekingCutoffInterval = Settings.SeekingCutoffInterval;
            BookMarkControl.HoverInterval = Settings.BranchCellHoverInterval;

            _autosaveTimer.Tick += AutosaveTimerEventProcessor;
            if (Settings.AutosaveInterval > 0)
            {
                _autosaveTimer.Interval = (int)Settings.AutosaveInterval;
                _autosaveTimer.Start();
            }

            // Remembering Split container logic
            int defaultMainSplitDistance         = MainVertialSplit.SplitterDistance;
            int defaultBranchMarkerSplitDistance = BranchesMarkersSplit.SplitterDistance;

            ToolStripMenuItem restoreDefaults = TASMenu.Items
                                                .OfType <ToolStripMenuItem>()
                                                .Single(t => t.Name == "SettingsSubMenu")
                                                .DropDownItems
                                                .OfType <ToolStripMenuItem>()
                                                .Single(t => t.Text == "Restore &Defaults");

            restoreDefaults.Click += (o, ev) =>
            {
                MainVertialSplit.SplitterDistance     = defaultMainSplitDistance;
                BranchesMarkersSplit.SplitterDistance = defaultBranchMarkerSplitDistance;
            };

            if (Settings.MainVerticalSplitDistance > 0)
            {
                MainVertialSplit.SplitterDistance = Settings.MainVerticalSplitDistance;
            }

            if (Settings.BranchMarkerSplitDistance > 0)
            {
                BranchesMarkersSplit.SplitterDistance = Settings.BranchMarkerSplitDistance;
            }

            ////////////////

            RefreshDialog();
            _initialized = true;
        }