void JucerDocument::setParentClasses (const String& classes) { if (classes != parentClasses) { StringArray parentClassLines (getCleanedStringArray (StringArray::fromTokens (classes, ",", StringRef()))); for (int i = parentClassLines.size(); --i >= 0;) { String s (parentClassLines[i]); String type; if (s.startsWith ("public ") || s.startsWith ("protected ") || s.startsWith ("private ")) { type = s.upToFirstOccurrenceOf (" ", true, false); s = s.fromFirstOccurrenceOf (" ", false, false); if (s.trim().isEmpty()) type = s = String::empty; } s = type + CodeHelpers::makeValidIdentifier (s.trim(), false, false, true); parentClassLines.set (i, s); } parentClasses = parentClassLines.joinIntoString (", "); changed(); } }
String GeneratedCode::getInitialiserList() const { StringArray inits (initialisers); if (parentClassInitialiser.isNotEmpty()) inits.insert (0, parentClassInitialiser); inits = getCleanedStringArray (inits); String s; if (inits.size() == 0) return s; s << " : "; for (int i = 0; i < inits.size(); ++i) { String init (inits[i]); while (init.endsWithChar (',')) init = init.dropLastCharacters (1); s << init; if (i < inits.size() - 1) s << ",\n "; else s << "\n"; } return s; }
static String getIncludeFileCode (StringArray files) { String s; files = getCleanedStringArray (files); for (int i = 0; i < files.size(); ++i) s << "#include \"" << files[i] << "\"\n"; return s; }
//============================================================================== String GeneratedCode::getClassDeclaration() const { StringArray parentClassLines; parentClassLines.addTokens (parentClasses, ",", StringRef()); parentClassLines.addArray (getExtraParentClasses()); parentClassLines = getCleanedStringArray (parentClassLines); if (parentClassLines.contains ("public Button", false)) parentClassLines.removeString ("public Component", false); String r ("class "); r << className << " : "; r += parentClassLines.joinIntoString (",\n" + String::repeatedString (" ", r.length())); return r; }
StringArray getCommaOrWhitespaceSeparatedItems (const String& sourceString) { StringArray s; s.addTokens (sourceString, ", \t\r\n", StringRef()); return getCleanedStringArray (s); }
StringArray getSearchPathsFromString (const String& searchPath) { StringArray s; s.addTokens (searchPath, ";\r\n", StringRef()); return getCleanedStringArray (s); }