1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-14 06:14:10 +02:00

Minor IDE modifications

This commit is contained in:
Brian Fiete 2019-09-29 07:44:23 -07:00
parent f8d4d0ded0
commit 908dbe1a6e
8 changed files with 97 additions and 31 deletions

View file

@ -1,4 +1,6 @@
using System; //abc
using System;
using System.Security.Cryptography;
using System.Text;
using System.Collections.Generic;
using System.Text;
using System.IO;
@ -10,7 +12,6 @@ using Beefy.widgets;
using Beefy.gfx;
using Beefy.theme;
using Beefy.theme.dark;
using IDE.ui;
using Beefy.sys;
using Beefy.events;
using Beefy.geom;
@ -20,8 +21,7 @@ using Beefy.utils;
using IDE.Debugger;
using IDE.Compiler;
using IDE.Util;
using System.Security.Cryptography;
using System.Text;
using IDE.ui;
using IDE.util;
[AttributeUsage(.Method, .ReflectAttribute | .AlwaysIncludeTarget, ReflectUser=.All)]
@ -3363,12 +3363,10 @@ namespace IDE
[IDECommand]
public void Cmd_ShowAutoComplete()
{
var activeTextPanel = GetActivePanel() as TextPanel;
if (activeTextPanel != null)
var sewc = GetActiveSourceEditWidgetContent();
if (sewc != null)
{
var sewc = activeTextPanel.EditWidget.mEditWidgetContent as SourceEditWidgetContent;
if (sewc != null)
sewc.ShowAutoComplete(true);
sewc.ShowAutoComplete(true);
}
}
@ -4885,7 +4883,7 @@ namespace IDE
IDETabbedView CreateTabbedView()
{
var tabbedView = new IDETabbedView();
tabbedView.mSharedData.mOpenNewWindowDelegate.Add(new (fromTabbedView, newWindow) => SetupNewWindow(newWindow));
tabbedView.mSharedData.mOpenNewWindowDelegate.Add(new (fromTabbedView, newWindow) => SetupNewWindow(newWindow, true));
tabbedView.mSharedData.mTabbedViewClosed.Add(new (tabbedView) =>
{
if (tabbedView == mActiveDocumentsTabbedView)
@ -4894,10 +4892,11 @@ namespace IDE
return tabbedView;
}
void SetupNewWindow(WidgetWindow window)
public void SetupNewWindow(WidgetWindow window, bool isMainWindow)
{
window.mOnWindowKeyDown.Add(new => SysKeyDown);
window.mOnWindowCloseQuery.Add(new => SecondaryAllowClose);
if (isMainWindow)
window.mOnWindowCloseQuery.Add(new => SecondaryAllowClose);
}
DarkTabbedView FindDocumentTabbedView()
@ -5045,6 +5044,28 @@ namespace IDE
return null;
}
public SourceEditWidgetContent GetActiveSourceEditWidgetContent()
{
let activeWindow = GetActiveWindow();
if (activeWindow.mFocusWidget != null)
{
if (let editWidget = activeWindow.mFocusWidget as EditWidget)
{
let sewc = editWidget.mEditWidgetContent as SourceEditWidgetContent;
if (sewc != null)
return sewc;
}
}
var activeTextPanel = GetActivePanel() as TextPanel;
if (activeTextPanel != null)
{
return activeTextPanel.EditWidget.mEditWidgetContent as SourceEditWidgetContent;
}
return null;
}
public WidgetWindow GetActiveWindow()
{
for (let window in mWindows)
@ -6345,7 +6366,7 @@ namespace IDE
}
else
mWorkspace.mDir = fullDir;
case "-path":
case "-file":
String.NewOrSet!(mDeferredOpenFileName, value);
if (mDeferredOpenFileName.EndsWith(".bfdbg", .OrdinalIgnoreCase))
mDeferredOpen = .DebugSession;
@ -6584,11 +6605,26 @@ namespace IDE
void SysKeyDown(KeyDownEvent evt)
{
if (evt.mHandled)
return;
var window = (WidgetWindow)evt.mSender;
IDECommand.ContextFlags useFlags = .None;
var activeWindow = GetActiveWindow();
bool isMainWindow = activeWindow.mRootWidget is MainFrame;
var activePanel = GetActivePanel() as Panel;
if (activePanel is SourceViewPanel)
useFlags |= .Editor;
else if (activePanel is DisassemblyPanel)
useFlags |= .Editor;
if (isMainWindow)
useFlags |= .MainWindow;
if (evt.mKeyCode == .Tab)
{
var activePanel = GetActivePanel() as Panel;
if (activePanel != null)
{
if (activePanel.HandleTab(window.IsKeyDown(.Shift) ? -1 : 1))
@ -6620,20 +6656,19 @@ namespace IDE
}
else if (var command = commandBase as IDECommand)
{
IDECommand.ContextFlags useFlags = .None;
var activePanel = GetActivePanel();
if (activePanel is SourceViewPanel)
useFlags |= .Editor;
else if (activePanel is DisassemblyPanel)
useFlags |= .Editor;
bool foundMatch = false;
if (useFlags != .None)
{
var checkCommand = command;
while (checkCommand != null)
{
if (checkCommand.mContextFlags.HasFlag(useFlags))
bool matches = checkCommand.mContextFlags == .None;
if (checkCommand.mContextFlags.HasFlag(.Editor))
matches |= useFlags.HasFlag(.Editor);
if (checkCommand.mContextFlags.HasFlag(.MainWindow))
matches |= useFlags.HasFlag(.MainWindow);
if (matches)
{
checkCommand.mAction();
foundMatch = true;