示例#1
0
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);
}
示例#2
0
string combine(string basePath,string fileName) {
	if (basePath.length() > 0) {
		if (!isSeparator(basePath.lastChar())) {
			basePath += getDefaultSeparator();
		}
		return basePath + fileName;
	} else {
		//todo?
		return fileName;
	}
}
示例#3
0
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();
}