示例#1
0
 private void OnIDEEventRaised(IIDEEvent obj)
 {
     if (obj is IDE.RequestedPluginListRefreshEvent)
     {
         CheckPlugins();
     }
 }
 private void OnIDEEventRaised(IIDEEvent obj)
 {
     if (obj is IDE.PluginListsUpdatedEvent)
     {
         UpdateTreeView();
     }
 }
 private void ProcessEvent(IIDEEvent ideEvent)
 {
     lock (_publishedEvents)
     {
         _publishedEvents.Add(ideEvent);
         _eventReceptionLock.Set();
     }
 }
 private bool IsTimeout(IIDEEvent e)
 {
     if (curInt == null)
     {
         return(false);
     }
     Asserts.That(e.TriggeredAt.HasValue);
     return(curInt.EndTime + _maxInactivityTime < e.TriggeredAt.Value);
 }
        private void OnIDEEventRaised(IIDEEvent obj)
        {
            if (obj is IDE.PluginListsUpdatedEvent)
            {
                UpdateAvailablePluginsTreeView();
                UpdateInstalledPluginsTreeView();

                ResetUIElements();
            }
        }
 private void EndCurrentInterval(IIDEEvent e = null)
 {
     if (e != null)
     {
         Asserts.That(e.TriggeredAt.HasValue);
         _context.UpdateDurationForIntervalToThis(_cur, e.TriggeredAt.Value);
     }
     _hasFocus = false;
     _cur      = null;
 }
示例#7
0
        private void OnProjectPathsChanged(IIDEEvent obj)
        {
            DialogResult result = DarkMessageBox.Show(this, "To apply the changes, you must restart TombIDE.\n" +
                                                      "Are you sure you want to do that?", "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.Yes)
            {
                if (!_ide.CanClose())
                {
                    // User pressed "Cancel"

                    DarkMessageBox.Show(this, "Operation cancelled.\nNo paths have been affected.", "Operation cancelled",
                                        MessageBoxButtons.OK, MessageBoxIcon.Information);

                    return;
                }

                if (obj is IDE.ProjectScriptPathChangedEvent)
                {
                    _ide.Project.ScriptPath = ((IDE.ProjectScriptPathChangedEvent)obj).NewPath;
                }
                else if (obj is IDE.ProjectLevelsPathChangedEvent)
                {
                    List <ProjectLevel> projectLevels = new List <ProjectLevel>();
                    projectLevels.AddRange(_ide.Project.Levels);

                    // Remove all internal level entries from the project's Levels list (for safety)
                    foreach (ProjectLevel projectLevel in projectLevels)
                    {
                        if (projectLevel.FolderPath.StartsWith(_ide.Project.LevelsPath, StringComparison.OrdinalIgnoreCase))
                        {
                            _ide.Project.Levels.Remove(projectLevel);
                        }
                    }

                    _ide.Project.LevelsPath = ((IDE.ProjectLevelsPathChangedEvent)obj).NewPath;
                }

                RestartApplication();
            }
            else if (result == DialogResult.No)
            {
                DarkMessageBox.Show(this, "Operation cancelled.\nNo paths have been affected.", "Operation cancelled",
                                    MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        private void OnIDEEventRaised(IIDEEvent obj)
        {
            if (obj is IDE.SelectedLevelChangedEvent)
            {
                // Update the whole control depending on the level selection
                if (_ide.SelectedLevel != null)
                {
                    tabControl.Enabled = true;

                    if (tabControl.SelectedIndex == 0)
                    {
                        UpdateSettings();
                    }
                    else if (tabControl.SelectedIndex == 1)
                    {
                        InitializeResourceListRefresh();
                    }
                }
                else
                {
                    ClearEverything();
                    tabControl.Enabled = false;
                }
            }
            else if (obj is IDE.ProgramButtonsModifiedEvent)
            {
                // Cache the first 3 items, because they are important
                List <ToolStripItem> cachedItems = new List <ToolStripItem>
                {
                    contextMenu.Items[0],
                    contextMenu.Items[1],
                    contextMenu.Items[2]
                };

                // Clear the whole list
                contextMenu.Items.Clear();

                // Re-Add the cached items
                contextMenu.Items.AddRange(cachedItems.ToArray());

                AddPinnedProgramsToContextMenu();
            }
        }
        private void OnIDEEventRaised(IIDEEvent obj)
        {
            if (obj is IDE.SelectedLevelSettingsChangedEvent)
            {
                // Update the text of the node (if the level name was changed ofc)
                if (button_ViewFileNames.Checked)
                {
                    if (_ide.SelectedLevel.SpecificFile == "$(LatestFile)")
                    {
                        treeView.SelectedNodes[0].Text = _ide.SelectedLevel.Name + " (" + _ide.SelectedLevel.GetLatestPrj2File() + ")";
                    }
                    else
                    {
                        treeView.SelectedNodes[0].Text = _ide.SelectedLevel.Name + " (" + _ide.SelectedLevel.SpecificFile + ")";
                    }
                }
                else
                {
                    treeView.SelectedNodes[0].Text = _ide.SelectedLevel.Name;
                }

                // Mark external levels
                if (!_ide.SelectedLevel.FolderPath.StartsWith(_ide.Project.LevelsPath, StringComparison.OrdinalIgnoreCase))
                {
                    treeView.SelectedNodes[0].Text = _ide.IDEConfiguration.ExternalLevelPrefix + treeView.SelectedNodes[0].Text;
                }

                // Update the node's Tag with the updated level
                treeView.SelectedNodes[0].Tag = _ide.SelectedLevel;

                // Send the new list (with the modified node) into the .trproj file
                ReserializeTRPROJ();
            }
            else if (obj is IDE.PRJ2FileDeletedEvent)
            {
                // Clear the selection immediately, otherwise many exceptions will happen!
                treeView.SelectedNodes.Clear();
                CheckItemSelection();

                RefreshLevelList();
            }
        }
示例#10
0
 private void OnIDEEventRaised(IIDEEvent obj)
 {
     if (obj is IDE.SelectedIDETabChangedEvent)
     {
         SelectIDETab(((IDE.SelectedIDETabChangedEvent)obj).Current);
     }
     else if (obj is IDE.ProjectScriptPathChangedEvent || obj is IDE.ProjectLevelsPathChangedEvent)
     {
         OnProjectPathsChanged(obj);
     }
     else if (obj is IDE.ScriptEditor_ContentChangedEvent)
     {
         // Indicate changes inside the Script Editor
         panelButton_ScriptEditor.BackColor  = Color.FromArgb(180, 100, 0);
         timer_ScriptButtonBlinking.Interval = 1;
         timer_ScriptButtonBlinking.Start();
     }
     else if (obj is IDE.ApplicationRestartingEvent)
     {
         RestartApplication();
     }
 }
示例#11
0
 public void RaiseEvent(IIDEEvent eventObj) =>
 SynchronizationContext.Current.Send(eventObj_ => IDEEventRaised?.Invoke((IIDEEvent)eventObj_), eventObj);
示例#12
0
        private static string Print(IIDEEvent e)
        {
            var ise = e as IDEStateEvent;

            if (ise != null)
            {
                return("IDEStateEvent({0})".FormatEx(ise.IDELifecyclePhase));
            }
            var de = e as DebuggerEvent;

            if (de != null)
            {
                return("DebuggerEvent({0}, {1})".FormatEx(de.Action, de.Mode));
            }
            var we = e as WindowEvent;

            if (we != null)
            {
                if (Names.Window("main Microsoft Visual Studio").Equals(we.Window))
                {
                    return(we.Action == WindowAction.Activate
                        ? "FocusGain"
                        : "FocusLost");
                }
                return
                    ("WindowEvent({0}, {1})".FormatEx(
                         we.Window.Caption.Replace("Unit Test Sessions - All tests from ", "Tests: ")
                         .Replace(" - Microsoft Visual Studio - Experimental Instance", ""),
                         we.Action));
            }
            var ce = e as CommandEvent;

            if (ce != null)
            {
                var cid = ce.CommandId;
                if (cid.Contains(':'))
                {
                    cid = cid.Substring(cid.LastIndexOf(':') + 1);
                }
                return("CommandEvent({0})".FormatEx(cid));
            }
            var tre = e as TestRunEvent;

            if (tre != null)
            {
                return("TestRunEvent({0} tests)".FormatEx(tre.Tests.Count));
            }
            var ne = e as NavigationEvent;

            if (ne != null)
            {
                switch (ne.TypeOfNavigation)
                {
                case NavigationType.CtrlClick:
                    return("NavigationEvent({0} -> {1})".FormatEx(Simple(ne.Location), Simple(ne.Target)));

                case NavigationType.Unknown:
                    return("NavigationEvent(unknown)");

                default:
                    return("NavigationEvent({0})".FormatEx(Simple(ne.Location)));
                }
            }

            return(e.GetType().Name);
        }