ProjectView projectView = ide.projectView;
if(projectView)
{
- ProjectNode node = projectView.GetNodeFromWindow(this, null, false);
+ ProjectNode node = projectView.GetNodeFromWindow(this, null, true, false);
if(node)
{
node.modified = modifiedDocument;
bool NotifyKeyDown(EditBox editBox, Key key, unichar ch)
{
- if(key == Key { space, ctrl = true })
+ if(key == ctrlSpace)
{
membersList.Destroy(0);
membersListShown = false;
{
if(ide.projectView)
{
- ProjectNode node = ide.projectView.GetNodeFromWindow(this, null, false);
+ ProjectNode node = ide.projectView.GetNodeFromWindow(this, null, true, false);
if(!node)
- node = ide.projectView.GetNodeFromWindow(this, null, true);
+ node = ide.projectView.GetNodeFromWindow(this, null, true, true);
if(!node)
{
char * s;
(key.ctrl && key.code != left && key.code != right &&
key.code != leftShift && key.code != rightShift && key.code != space))
{
+ bool result = true;
if(editor.paramsShown)
+ {
+ if(key == escape)
+ result = false;
editor.paramsList.Destroy(0);
+ editor.paramsShown = false;
+ }
if(editor.membersListShown)
+ {
+ if(key == escape)
+ result = false;
editor.membersList.Destroy(0);
+ editor.membersListShown = false;
+ }
- editor.paramsShown = false;
FreeType(editor.functionType);
- FreeType(editor.instanceType);
-
editor.functionType = null;
+
+ FreeType(editor.instanceType);
editor.instanceType = null;
+
editor.paramsID = -1;
- editor.membersListShown = false;
- return true;
+ return result;
}
else
return editor.editBox.OnKeyDown(key, ch);
return false;
}
- bool OnActivate(bool active, Window previous, bool * goOnWithActivation, bool direct)
+ /*bool OnActivate(bool active, Window previous, bool * goOnWithActivation, bool direct)
{
CodeEditor editor = (CodeEditor)master;
- if(!active)
+ Window rw = previous ? previous.rootWindow : null;
+ if(!active && rw != editor.paramsList)
{
Destroy(0);
editor.membersListShown = false;
}
return ListBox::OnActivate(active, previous, goOnWithActivation, direct);
- }
+ }*/
bool OnKeyHit(Key key, unichar ch)
{
OnKeyDown = membersList.OnKeyDown;
- bool OnActivate(bool active, Window previous, bool * goOnWithActivation, bool direct)
+ /*bool OnActivate(bool active, Window previous, bool * goOnWithActivation, bool direct)
{
CodeEditor editor = (CodeEditor)master;
- if(!active)
+ Window rw = previous ? previous.rootWindow : null;
+ if(!active && previous != editor.editBox && rw != editor.membersList)
{
Destroy(0);
- editor.membersListShown = false;
+ editor.paramsShown = false;
}
return Window::OnActivate(active, previous, goOnWithActivation, direct);
- }
+ }*/
bool OnKeyHit(Key key, unichar ch)
{
CompilerConfig compiler = ideSettings.GetCompilerConfig(ide.workspace.compiler);
ProjectConfig config = projectView.project.config;
int bitDepth = ide.workspace.bitDepth;
- ide.debugger.RunToCursor(compiler, config, bitDepth, fileName, line, false, false);
+ bool useValgrind = ide.workspace.useValgrind;
+ ide.debugger.RunToCursor(compiler, config, bitDepth, useValgrind, fileName, line, false, false);
delete compiler;
}
}
CompilerConfig compiler = ideSettings.GetCompilerConfig(ide.workspace.compiler);
ProjectConfig config = projectView.project.config;
int bitDepth = ide.workspace.bitDepth;
- ide.debugger.RunToCursor(compiler, config, bitDepth, fileName, line, true, false);
+ bool useValgrind = ide.workspace.useValgrind;
+ ide.debugger.RunToCursor(compiler, config, bitDepth, useValgrind, fileName, line, true, false);
delete compiler;
}
return true;
};
MenuItem debugSkipRunToCursorAtSameLevel
{
- debugMenu, $"Run To Cursor At Same Level Skipping Breakpoints", u, Key { f10, alt = true };
+ debugMenu, $"Run To Cursor At Same Level Skipping Breakpoints", l, altF10;
bool NotifySelect(MenuItem selection, Modifiers mods)
{
ProjectView projectView = ide.projectView;
CompilerConfig compiler = ideSettings.GetCompilerConfig(ide.workspace.compiler);
ProjectConfig config = projectView.project.config;
int bitDepth = ide.workspace.bitDepth;
- ide.debugger.RunToCursor(compiler, config, bitDepth, fileName, line, true, true);
+ bool useValgrind = ide.workspace.useValgrind;
+ ide.debugger.RunToCursor(compiler, config, bitDepth, useValgrind, fileName, line, true, true);
delete compiler;
}
return true;
if(projectView && fileName)
{
int line = editBox.lineNumber + 1;
- char name[MAX_LOCATION];
Project prj = null;
- // TOFIX: This only looks at the filename...
- GetLastDirectory(fileName, name);
if(ide && ide.workspace)
{
for(p : ide.workspace.projects)
{
- if(p.topNode.Find(name, false))
+ if(p.topNode.FindByFullPath(fileName, false))
{
prj = p;
break;
ProjectView projectView = ide.projectView;
if(projectView)
{
- ProjectNode node = projectView.GetNodeFromWindow(this, null, false);
+ ProjectNode node = projectView.GetNodeFromWindow(this, null, false, false);
if(node && node.modified)
{
node.modified = false;
ProcessCaretMove(editBox, line, charPos);
}
}
+ if(!active)
+ {
+ if(membersListShown)
+ {
+ membersList.Destroy(0);
+ membersListShown = false;
+ }
+ if(paramsShown)
+ {
+ paramsList.Destroy(0);
+ paramsShown = false;
+ FreeType(functionType);
+ FreeType(instanceType);
+
+ functionType = null;
+ instanceType = null;
+ paramsID = -1;
+ }
+ }
return true;
}
for(link = (BTNamedLink)nameSpace.classes.first; link; link = (BTNamedLink)((BTNode)link).next)
{
Class _class = link.data;
- if(_class.type != systemClass)
+ if(_class.type != systemClass && !_class.templateClass) // Omit templatized classes
{
DataRow row = membersList.AddString(_class.name);
row.icon = (_class.type == unitClass || _class.type == enumClass) ? icons[typeDataType] : icons[typeClass];
for(link = (BTNamedLink)nameSpace.classes.first; link; link = (BTNamedLink)((BTNode)link).next)
{
Class _class = link.data;
- if(_class.type == enumClass && (dest.kind != classType || !dest._class || dest._class.registered != _class))
+ if(_class.type == enumClass && (dest.kind != classType || ((!dest._class || !dest._class.registered || (dest._class.registered != _class && strcmp(dest._class.registered.dataTypeString, "char *"))) && !dest.classObjectType)) &&
+ dest.kind != pointerType && dest.kind != ellipsisType)
{
OldList conversions { };
Type type { };