示例#1
0
/* static */
void MessageBox::set_themed_icons(const char* msg, const char* alert, const char* ask, 
			const char* input, const char* password) 
{
	edelib_strlcpy(msg_icon, msg, BUF_LEN);
	edelib_strlcpy(alert_icon, alert, BUF_LEN);
	edelib_strlcpy(ask_icon, ask, BUF_LEN);
	edelib_strlcpy(input_icon, input, BUF_LEN);
	edelib_strlcpy(passwd_icon, password, BUF_LEN);
}
示例#2
0
bool Entity::get_prototype_as_scheme(char *buf, int bufsz) {
	E_RETURN_VAL_IF_FAIL(name != NULL, false);
	E_RETURN_VAL_IF_FAIL(tp != ENTITY_NONE, false);

	String ret;
	if(tp == ENTITY_SIGNAL) {
		ret.printf("(dbus-signal \"%s\" \"%s\" \"%s\"", get_path(), get_interface(), get_name());
		if(args.empty()) {
			ret += ")";
		} else {
			String scm_params;
			signature_to_scheme(args, scm_params);

			if(!scm_params.empty()) {
				ret += ' ';
				ret += scm_params;
			}

			ret += ')';
		}
	} else if(tp == ENTITY_METHOD) {
		ret.printf("(dbus-call \"%s\" \"%s\" \"%s\" \"%s\"", get_service(), get_path(), get_interface(), get_name());
		if(args.empty())
			ret += ")";
		else {
			String scm_params;
			signature_to_scheme(args, scm_params);

			if(!scm_params.empty()) {
				ret += ' ';
				ret += scm_params;
			}

			ret += ')';
		}
	} else {
		/* property */
		ret.printf("(dbus-property-get \"%s\" \"%s\" \"%s\" \"%s\")", get_service(), get_path(), get_interface(), get_name());
	}

	if(!ret.empty()) {
		edelib_strlcpy(buf, ret.c_str(), bufsz);
		return true;
	}

	return false;
}
示例#3
0
bool Entity::get_prototype(char *buf, int bufsz) {
	E_RETURN_VAL_IF_FAIL(name != NULL, false);
	E_RETURN_VAL_IF_FAIL(tp != ENTITY_NONE, false);

	String ret;
	if(args.empty()) {
		ret = "void ";
		ret += name;
		ret += " ()";
	} else {
		if(tp == ENTITY_PROPERTY) {
			/* we should only get single argument */
			if(args.size() != 1) {
				E_WARNING(E_STRLOC ": Property should have only one type, but got '%i'. Using first one only...\n", args.size());
			} else {

				ArgSignatureListIt it = args.begin();
				signature_to_readable((*it)->sig, ret);

				ret += ' ';
				ret += name;

				/* write kind of access */
				if((*it)->access) {
					ret += " access: ";
					ret += (*it)->access;
				}
			}
		} else {
			ArgSignatureListIt it = args.begin(), ite = args.end();

			/* default */
			ret = "void";

			/* return type */
			for(; it != ite; ++it) {
				if((*it)->direction == DIRECTION_OUT) {
					signature_to_readable((*it)->sig, ret);
					break;
				}
			}

			/* name */
			ret += ' ';
			ret += name;

			/* arguments */
			ret += "(";

			String tmp;
			bool   have_something = false;

			for(it = args.begin(); it != ite; ++it) {
				/* AFAIK only 'direction=out' is explicitly set */
				if((*it)->direction != DIRECTION_OUT) {
					/* so we can correctly watch adding commas */
					if(have_something) ret += ", ";

					signature_to_readable((*it)->sig, tmp);
					ret += tmp;
					ret += ' ';
					ret += (*it)->name;
					have_something = true;
				}
			}
			ret += ')';
		}
	}

	if(!ret.empty()) {
		/* append documentation if have */
		if(get_doc()) {
			ret += "\n";
			ret += get_doc();
		}

		edelib_strlcpy(buf, ret.c_str(), bufsz);
		return true;
	}

	return false;
}