void PopupMenu::addSeparator(void) { SeparatorRefPtr TheSeparator; if(getDefaultSeparator() != NULL) { FieldContainerUnrecPtr TheSeperator(getDefaultSeparator()->shallowCopy()); TheSeparator = dynamic_pointer_cast<Separator>(TheSeperator); } else { TheSeparator = Separator::create(); } TheSeparator->setOrientation(Separator::HORIZONTAL_ORIENTATION); pushToChildren(TheSeparator); }
string combine(string basePath,string fileName) { if (basePath.length() > 0) { if (!isSeparator(basePath.lastChar())) { basePath += getDefaultSeparator(); } return basePath + fileName; } else { //todo? return fileName; } }
string replaceIllegalPathChars(string fn) { string illegal = getIllegalNameChars(); string separators = getSeparators(); string_formatter output; for(t_size walk = 0; walk < fn.length(); ++walk) { const char c = fn[walk]; if (separators.contains(c)) { output.add_byte(getDefaultSeparator()); } else if (string::isNonTextChar(c) || illegal.contains(c)) { string replacement = replaceIllegalChar(c); if (replacement.containsAnyChar(illegal)) /*per-OS weirdness security*/ replacement = "_"; output << replacement.ptr(); } else { output.add_byte(c); } } return output.toString(); }