Browse Source

Introjucer: made the project wizard create some default exporters.

tags/2021-05-28
jules 13 years ago
parent
commit
10815d9e4d
7 changed files with 29 additions and 26 deletions
  1. +9
    -16
      extras/Introjucer/Source/Application/jucer_OpenDocumentManager.cpp
  2. +1
    -0
      extras/Introjucer/Source/Application/jucer_OpenDocumentManager.h
  3. +12
    -6
      extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp
  4. +4
    -3
      extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h
  5. +0
    -1
      extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.cpp
  6. +2
    -0
      extras/Introjucer/Source/Project/jucer_NewProjectWizard.cpp
  7. +1
    -0
      extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h

+ 9
- 16
extras/Introjucer/Source/Application/jucer_OpenDocumentManager.cpp View File

@@ -33,8 +33,8 @@ class SourceCodeDocument : public OpenDocumentManager::Document
{
public:
//==============================================================================
SourceCodeDocument (const File& file_)
: modDetector (file_)
SourceCodeDocument (Project* project_, const File& file_)
: modDetector (file_), project (project_)
{
codeDoc = new CodeDocument();
reloadFromFile();
@@ -43,15 +43,16 @@ public:
//==============================================================================
struct Type : public OpenDocumentManager::DocumentType
{
bool canOpenFile (const File& file) { return SourceCodeEditor::isTextFile (file); }
Document* openFile (Project*, const File& file) { return new SourceCodeDocument (file); }
bool canOpenFile (const File& file) { return file.hasFileExtension ("cpp;h;hpp;mm;m;c;cc;cxx;txt;xml;plist;rtf;html;htm;php;py;rb;cs"); }
Document* openFile (Project* project, const File& file) { return new SourceCodeDocument (project, file); }
};
//==============================================================================
bool loadedOk() const { return true; }
bool isForFile (const File& file) const { return getFile() == file; }
bool isForNode (const ValueTree& node) const { return false; }
bool refersToProject (Project& project) const { return false; }
bool refersToProject (Project& p) const { return project == &p; }
Project* getProject() const { return project; }
bool canSaveAs() const { return true; }
String getName() const { return getFile().getFileName(); }
String getType() const { return getFile().getFileExtension() + " file"; }
@@ -92,22 +93,13 @@ public:
return false;
}
Component* createEditor()
{
CodeTokeniser* tokeniser = nullptr;
if (SourceCodeEditor::isCppFile (modDetector.getFile()))
tokeniser = &cppTokeniser;
return new SourceCodeEditor (this, *codeDoc, tokeniser);
}
Component* createEditor() { return SourceCodeEditor::createFor (this, *codeDoc); }
Component* createViewer() { return createEditor(); }
private:
FileModificationDetector modDetector;
ScopedPointer <CodeDocument> codeDoc;
CPlusPlusCodeTokeniser cppTokeniser;
Project* project;
};
//==============================================================================
@@ -132,6 +124,7 @@ public:
bool isForFile (const File& file_) const { return file == file_; }
bool isForNode (const ValueTree& node_) const { return false; }
bool refersToProject (Project& p) const { return project == &p; }
Project* getProject() const { return project; }
bool needsSaving() const { return false; }
bool save() { return true; }
bool canSaveAs() const { return false; }


+ 1
- 0
extras/Introjucer/Source/Application/jucer_OpenDocumentManager.h View File

@@ -52,6 +52,7 @@ public:
virtual bool isForFile (const File& file) const = 0;
virtual bool isForNode (const ValueTree& node) const = 0;
virtual bool refersToProject (Project& project) const = 0;
virtual Project* getProject() const = 0;
virtual String getName() const = 0;
virtual String getType() const = 0;
virtual File getFile() const = 0;


+ 12
- 6
extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp View File

@@ -44,6 +44,8 @@ SourceCodeEditor::SourceCodeEditor (OpenDocumentManager::Document* document_,
font.setTypefaceName (Font::getDefaultMonospacedFontName());
#endif
editor.setFont (font);
editor.setTabSize (4, true);
}
SourceCodeEditor::~SourceCodeEditor()
@@ -55,12 +57,16 @@ void SourceCodeEditor::resized()
editor.setBounds (getLocalBounds());
}
bool SourceCodeEditor::isTextFile (const File& file)
SourceCodeEditor* SourceCodeEditor::createFor (OpenDocumentManager::Document* document,
CodeDocument& codeDocument)
{
return file.hasFileExtension ("cpp;h;hpp;mm;m;c;cc;cxx;txt;xml;plist;rtf;html;htm;php;py;rb;cs");
}
CodeTokeniser* tokeniser = nullptr;
bool SourceCodeEditor::isCppFile (const File& file)
{
return file.hasFileExtension (sourceOrHeaderFileExtensions);
if (document->getFile().hasFileExtension (sourceOrHeaderFileExtensions))
{
static CPlusPlusCodeTokeniser cppTokeniser;
tokeniser = &cppTokeniser;
}
return new SourceCodeEditor (document, codeDocument, tokeniser);
}

+ 4
- 3
extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h View File

@@ -43,14 +43,15 @@ public:
~SourceCodeEditor();
static bool isTextFile (const File& file);
static bool isCppFile (const File& file);
static SourceCodeEditor* createFor (OpenDocumentManager::Document* document,
CodeDocument& codeDocument);
//==============================================================================
void resized();
private:
CodeEditorComponent editor;
private:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (SourceCodeEditor);
};


+ 0
- 1
extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.cpp View File

@@ -53,7 +53,6 @@ StringArray ProjectExporter::getDefaultExporters()
{
StringArray s;
s.add (XCodeProjectExporter::getNameMac());
s.add (MSVCProjectExporterVC2008::getName());
s.add (MSVCProjectExporterVC2010::getName());
s.add (MakefileProjectExporter::getNameLinux());
return s;


+ 2
- 0
extras/Introjucer/Source/Project/jucer_NewProjectWizard.cpp View File

@@ -159,6 +159,8 @@ public:
sourceGroup.addFile (mainCppFile, -1, true);
}
project.createDefaultExporters();
return true;
}


+ 1
- 0
extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h View File

@@ -51,6 +51,7 @@ public:
bool showDocument (OpenDocumentManager::Document* doc);
void hideDocument (OpenDocumentManager::Document* doc);
bool setEditorComponent (Component* editor, OpenDocumentManager::Document* doc);
Component* getEditorComponent() const { return contentView; }
OpenDocumentManager::Document* getCurrentDocument() const { return currentDocument; }
void updateMissingFileStatuses();


Loading…
Cancel
Save