Skip to content

Commit 5177802

Browse files
committed
Editor: simple add to watch pane implementation
1 parent a920957 commit 5177802

File tree

3 files changed

+40
-3
lines changed

3 files changed

+40
-3
lines changed

Editor/AGS.Editor/GUI/GUIController.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,14 @@ public void HideFindSymbolResults()
487487
_mainForm.pnlFindResults.Hide();
488488
}
489489

490+
public void AddVariableToWatchPanel(string var_name)
491+
{
492+
_mainForm.pnlWatchVariables.AddVariableToWatchList(var_name);
493+
if (_mainForm.pnlWatchVariables.IsHidden)
494+
return;
495+
_mainForm.pnlWatchVariables.Show();
496+
}
497+
490498
public void ShowWatchVariablesPanel(bool ifEnabled)
491499
{
492500
if (ifEnabled && _mainForm.pnlWatchVariables.IsHidden)

Editor/AGS.Editor/GUI/WatchVariablesPanel.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,14 @@ private void listView1_MouseUp(object sender, MouseEventArgs e)
385385
}
386386
}
387387

388+
public void AddVariableToWatchList(string var_name)
389+
{
390+
ListViewItem item = listView1.Items.Add(CreateItem(var_name));
391+
lock (_updateItemLock)
392+
_itemsToUpdate.Add(item);
393+
_updateItemTimer.Start();
394+
}
395+
388396
private void addToolStripMenuItem_Click(object sender, EventArgs e)
389397
{
390398
ListViewItem item;

Editor/AGS.Editor/Panes/ScriptEditorBase.cs

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public class ScriptEditorBase : EditorContentPanel
3434
private const string GO_TO_DEFINITION_COMMAND = "ScriptGoToDefiniton";
3535
private const string FIND_ALL_USAGES_COMMAND = "ScriptFindAllUsages";
3636
private const string GO_TO_SPRITE_COMMAND = "ScriptGoToSprite";
37+
private const string ADD_TO_WATCH_PANE_COMMAND = "ScriptAddToWatch";
3738

3839
protected AGSEditor _agsEditor;
3940
// Loaded script reference, is assigned by the child class.
@@ -54,6 +55,7 @@ public class ScriptEditorBase : EditorContentPanel
5455
_menuCmdCopy,
5556
_menuCmdPaste,
5657
_menuCmdGoToDefinition,
58+
_menuCmdAddToWatchPane,
5759
_menuCmdFindAllUsages,
5860
_menuCmdGoToSprite;
5961

@@ -163,13 +165,16 @@ private void InitEditorMenus()
163165

164166
_menuCmdGoToDefinition = new MenuCommand(GO_TO_DEFINITION_COMMAND, "Go to Definition", Keys.F12);
165167
_menuCmdGoToDefinition.Enabled = false;
168+
_menuCmdAddToWatchPane = new MenuCommand(ADD_TO_WATCH_PANE_COMMAND, "Add to Watch", null);
169+
_menuCmdAddToWatchPane.Enabled = false;
166170
_menuCmdFindAllUsages = new MenuCommand(FIND_ALL_USAGES_COMMAND, "Find All Usages", Keys.Shift | Keys.F12);
167171
_menuCmdFindAllUsages.Enabled = false;
168172
_menuCmdGoToSprite = new MenuCommand(GO_TO_SPRITE_COMMAND, "Go to Sprite", Keys.Shift | Keys.F7);
169173
_menuCmdGoToSprite.Enabled = false;
170174

171175
_extraMenu.Commands.Add(MenuCommand.Separator);
172176
_extraMenu.Commands.Add(_menuCmdGoToDefinition);
177+
_extraMenu.Commands.Add(_menuCmdAddToWatchPane);
173178
_extraMenu.Commands.Add(_menuCmdFindAllUsages);
174179
_extraMenu.Commands.Add(_menuCmdGoToSprite);
175180

@@ -246,7 +251,11 @@ protected override void OnCommandClick(string command)
246251
}
247252
else if (IsContextCommand(command))
248253
{
249-
if (command == GO_TO_DEFINITION_COMMAND ||
254+
if (command == ADD_TO_WATCH_PANE_COMMAND)
255+
{
256+
Factory.GUIController.AddVariableToWatchPanel(_goToDefinition);
257+
}
258+
else if (command == GO_TO_DEFINITION_COMMAND ||
250259
command == FIND_ALL_USAGES_COMMAND)
251260
{
252261
string[] structAndMember = _goToDefinition.Split('.');
@@ -340,6 +349,7 @@ protected virtual void UpdateUICommands()
340349
(_menuCmdUndo.Enabled != canUndo) ||
341350
(_menuCmdRedo.Enabled != canRedo) ||
342351
(_menuCmdGoToDefinition.Enabled != canGoToDefinition) ||
352+
(_menuCmdAddToWatchPane.Enabled != canGoToDefinition) ||
343353
(_menuCmdFindAllUsages.Enabled != canGoToDefinition) ||
344354
(_menuCmdGoToSprite.Enabled != canGoToSprite);
345355

@@ -350,7 +360,9 @@ protected virtual void UpdateUICommands()
350360
_menuCmdPaste.Enabled = canPaste;
351361
_menuCmdUndo.Enabled = canUndo;
352362
_menuCmdRedo.Enabled = canRedo;
353-
_menuCmdGoToDefinition.Enabled = _menuCmdFindAllUsages.Enabled = canGoToDefinition;
363+
_menuCmdGoToDefinition.Enabled = canGoToDefinition;
364+
_menuCmdAddToWatchPane.Enabled = canGoToDefinition;
365+
_menuCmdFindAllUsages.Enabled = canGoToDefinition;
354366
_menuCmdGoToSprite.Enabled = canGoToSprite;
355367

356368
Factory.ToolBarManager.RefreshCurrentPane();
@@ -365,7 +377,10 @@ protected static bool IsStandardEditCommand(string c)
365377

366378
protected static bool IsContextCommand(string c)
367379
{
368-
return (c == GO_TO_DEFINITION_COMMAND) || (c == FIND_ALL_USAGES_COMMAND) || (c == GO_TO_SPRITE_COMMAND);
380+
return (c == GO_TO_DEFINITION_COMMAND) ||
381+
(c == FIND_ALL_USAGES_COMMAND) ||
382+
(c == GO_TO_SPRITE_COMMAND) ||
383+
(c == ADD_TO_WATCH_PANE_COMMAND);
369384
}
370385

371386
protected void UpdateScriptDocumentContext(int clickedPositionInDocument)
@@ -421,12 +436,18 @@ private void scintilla_ConstructContextMenu(ContextMenuStrip menuStrip, int clic
421436
UpdateScriptDocumentContext(clickedPositionInDocument);
422437

423438
string typeName = _goToDefinition != null ? (" of " + _goToDefinition) : string.Empty;
439+
string varName = _goToDefinition != null ? (_goToDefinition + " to Watch Panel") : string.Empty;
424440

425441
menuItem = new ToolStripMenuItem(_menuCmdGoToDefinition.Name + typeName, null, onClick, GO_TO_DEFINITION_COMMAND);
426442
menuItem.ShortcutKeys = _menuCmdGoToDefinition.ShortcutKey;
427443
menuItem.Enabled = (_goToDefinition != null);
428444
menuStrip.Items.Add(menuItem);
429445

446+
menuItem = new ToolStripMenuItem("Add " + varName, null, onClick, ADD_TO_WATCH_PANE_COMMAND);
447+
menuItem.ShortcutKeys = _menuCmdAddToWatchPane.ShortcutKey;
448+
menuItem.Enabled = (_goToDefinition != null);
449+
menuStrip.Items.Add(menuItem);
450+
430451
menuItem = new ToolStripMenuItem(_menuCmdFindAllUsages.Name + typeName, null, onClick, FIND_ALL_USAGES_COMMAND);
431452
menuItem.ShortcutKeys = _menuCmdFindAllUsages.ShortcutKey;
432453
menuItem.Enabled = (_goToDefinition != null);

0 commit comments

Comments
 (0)