コード例 #1
0
void CtrlrLuaMethodEditor::saveSettings()
{
	String settings;
	StringArray openedMethod;
	for (int i=0; i<methodEditArea->getTabs()->getNumTabs(); i++)
	{
		CtrlrLuaMethodCodeEditor *ed = dynamic_cast<CtrlrLuaMethodCodeEditor*>(methodEditArea->getTabs()->getTabContentComponent(i));
		if (ed != nullptr)
		{
			if (ed->getMethod())
			{
				openedMethod.add (ed->getMethod()->getUuid().toString());
			}
		}
	}

	if (methodTree->getRootItem())
	{
		ScopedPointer <XmlElement> treeState(methodTree->getOpennessState(true));

		if (treeState)
		{
			settings << treeState->createDocument("");
			settings << ";";
		}
		settings << openedMethod.joinIntoString(":");
		componentTree.setProperty (Ids::luaMethodEditor, settings, nullptr);
	}
}
コード例 #2
0
void CtrlrLuaMethodCodeEditor::findInOpened(const String &search)
{
	if (owner.getTabs() == nullptr)
		return;

	StringArray names = owner.getTabs()->getTabNames();

	owner.getMethodEditArea()->insertOutput("\n\nSearching for: \""+search+"\" in all opened methods (double click line to jump)\n", Colours::darkblue);

	for (int i=0; i<owner.getTabs()->getNumTabs(); i++)
	{
		CtrlrLuaMethodCodeEditor *codeEditor = dynamic_cast<CtrlrLuaMethodCodeEditor*>(owner.getTabs()->getTabContentComponent(i));

		if (codeEditor != nullptr )
		{
			CodeDocument &doc	= codeEditor->getCodeDocument() ;

			Array<Range<int> > results = searchForMatchesInDocument (doc, search);

			for (int j=0; j<results.size(); j++)
			{
				reportFoundMatch (doc, names[i], results[j]);
			}
		}
	}

	owner.getMethodEditArea()->getLowerTabs()->setCurrentTabIndex(0,true);
}
コード例 #3
0
void CtrlrLuaMethodEditor::saveAndCompilAllMethods()
{
	for (int i=0; i<getTabs()->getNumTabs(); i++)
	{
		CtrlrLuaMethodCodeEditor *ed = dynamic_cast<CtrlrLuaMethodCodeEditor*> (getTabs()->getTabContentComponent (i));

		if (ed)
		{
			ed->saveAndCompileDocument();
		}
	}
}
コード例 #4
0
void CtrlrLuaMethodEditor::valueTreePropertyChanged (ValueTree &treeWhosePropertyHasChanged, const Identifier &property)
{
	if (property == Ids::luaMethodEditorFont || property == Ids::luaMethodEditorBgColour)
	{
		for (int i=0; i<methodEditArea->getTabs()->getNumTabs(); i++)
		{
			CtrlrLuaMethodCodeEditor *ed = dynamic_cast<CtrlrLuaMethodCodeEditor*>(methodEditArea->getTabs()->getTabContentComponent(i));
			if (ed != nullptr)
			{
				ed->setFontAndColour (owner.getOwner().getFontManager().getFontFromString (componentTree.getProperty(Ids::luaMethodEditorFont)), VAR2COLOUR(componentTree.getProperty(Ids::luaMethodEditorBgColour)));
			}
		}
	}
}
コード例 #5
0
void CtrlrLuaMethodEditor::createNewTab (CtrlrLuaMethod *method)
{
	if (method == nullptr)
	{
		jassertfalse; // don't do that
		return;
	}

	CtrlrLuaMethodCodeEditor *methodEditor = new CtrlrLuaMethodCodeEditor (*this, method);
	methodEditor->addKeyListener (this);
	methodEditArea->getTabs()->addTab (method->getName(), Colours::white, methodEditor, true, -1);
	methodEditArea->getTabs()->setCurrentTabIndex (methodEditArea->getTabs()->getNumTabs() - 1, true);
	saveSettings(); // save settings
}
コード例 #6
0
void CtrlrLuaMethodEditor::highlightCode (const String &methodName, const int lineNumber)
{
    CtrlrLuaMethod *method = setEditedMethod(methodName);

    if (method)
    {
        CtrlrLuaMethodCodeEditor *editor = getEditorForMethod (method);

        if (editor)
        {
            editor->gotoLine (lineNumber, true);
        }
    }
}
コード例 #7
0
CtrlrLuaMethodCodeEditor *CtrlrLuaMethodEditor::getEditorForMethod (CtrlrLuaMethod *method)
{
    for (int i=0; i<methodEditArea->getTabs()->getNumTabs(); i++)
    {
        if (methodEditArea->getTabs()->getTabContentComponent(i))
        {
            CtrlrLuaMethodCodeEditor *editor = dynamic_cast<CtrlrLuaMethodCodeEditor *>(methodEditArea->getTabs()->getTabContentComponent(i));
			if (editor)
			{
				if (editor->getMethod() == method)
                    return (editor);
			}
        }
    }
    return (nullptr);
}
コード例 #8
0
void CtrlrLuaMethodEditArea::closeTabWithMethod(const ValueTree &item)
{
	for (int i=0; i<upperTabs->getNumTabs(); i++)
	{
		CtrlrLuaMethodCodeEditor *ed = dynamic_cast<CtrlrLuaMethodCodeEditor*>(upperTabs->getTabContentComponent(i));
		if (ed != nullptr)
		{
			if (ed->getMethod()->getUuid() == item.getProperty(Ids::uuid).toString())
			{
				upperTabs->removeTab (i);
				upperTabs->setCurrentTabIndex(i == 0 ? i+1 : i-1 , true);
				break;
			}
		}
	}
}
コード例 #9
0
void CtrlrLuaMethodEditor::setCurrentTab (CtrlrLuaMethod *methodToSetAsCurrent)
{
	for (int i=0; i<methodEditArea->getTabs()->getNumTabs(); i++)
	{
		if (methodEditArea->getTabs()->getTabContentComponent(i))
		{
			CtrlrLuaMethodCodeEditor *editor = dynamic_cast<CtrlrLuaMethodCodeEditor *>(methodEditArea->getTabs()->getTabContentComponent(i));
			if (editor)
			{
				if (editor->getMethod() == methodToSetAsCurrent)
				{
					methodEditArea->getTabs()->setCurrentTabIndex (i);
					return;
				}
			}
		}
	}
}
コード例 #10
0
void CtrlrLuaMethodEditor::menuItemSelected(int menuItemID, int topLevelMenuIndex)
{
	if (menuItemID == 2 && topLevelMenuIndex == 0)
	{
		if (getCurrentEditor())
		{
			getCurrentEditor()->saveDocument();
		}
	}
	else if (menuItemID == 3 && topLevelMenuIndex == 0)
	{
		if (getCurrentEditor())
		{
			getCurrentEditor()->saveAndCompileDocument();
		}
	}
	else if (menuItemID == 4 && topLevelMenuIndex == 0)
	{
		for (int i=0; i<getTabs()->getNumTabs(); i++)
		{
			CtrlrLuaMethodCodeEditor *ed = dynamic_cast<CtrlrLuaMethodCodeEditor*> (getTabs()->getTabContentComponent (i));

			if (ed)
			{
				ed->saveAndCompileDocument();
			}
		}
	}
	else if (menuItemID == 4 && topLevelMenuIndex == 1)
	{
		methodEditArea->showFindDialog();
	}
	else if (menuItemID == 5 && topLevelMenuIndex == 1)
	{
		CtrlrLuaMethodCodeEditorSettings s(*this);
		CtrlrDialogWindow::showModalDialog ("Code editor settings", &s, false, this);

		componentTree.setProperty (Ids::luaMethodEditorFont, owner.getOwner().getFontManager().getStringFromFont (s.getFont()), nullptr);
		componentTree.setProperty (Ids::luaMethodEditorBgColour, COLOUR2STR (s.getColour()), nullptr);
	}
}
コード例 #11
0
void CtrlrLuaMethodEditor::updateTabs()
{
	for (int i=0; i<methodEditArea->getTabs()->getNumTabs(); i++)
	{
		CtrlrLuaMethodCodeEditor *ed = dynamic_cast<CtrlrLuaMethodCodeEditor*>(methodEditArea->getTabs()->getTabContentComponent(i));
		if (ed != nullptr)
		{
			if (ed->getMethod())
			{
				if (ed->getMethod()->isValid())
				{
					methodEditArea->getTabs()->setTabBackgroundColour(i, Colours::white);
				}
				else
				{
					methodEditArea->getTabs()->setTabBackgroundColour(i, Colours::red.brighter(0.6f));
				}
			}
		}
	}
}
コード例 #12
0
void CtrlrLuaMethodEditor::closeTab(const int tabIndex)
{
	CtrlrLuaMethodCodeEditor *ed = dynamic_cast<CtrlrLuaMethodCodeEditor*>(methodEditArea->getTabs()->getTabContentComponent(tabIndex));
	if (ed)
	{
		if (ed->getCodeDocument().hasChangedSinceSavePoint())
		{
			if (SURE("There might be some unsaved changes, are you sure?", this))
			{
				methodEditArea->getTabs()->removeTab (tabIndex);
			}
		}
		else
		{
			methodEditArea->getTabs()->removeTab (tabIndex);
		}

		methodEditArea->getTabs()->setCurrentTabIndex (tabIndex == 0 ? tabIndex+1 : tabIndex-1 , false);

		saveSettings();
	}
}