extern "C" int rho_native_view_manager_create_native_view(const char* viewtype, int tab_index, VALUE params) {
	RhoNativeViewHolder* h = getHolderByViewTypeName(viewtype);
	if (h == NULL) {
		return -1;
	}
	NativeViewFactory* factory = h->factory;
	NativeView* nv = factory->getNativeView(viewtype);
	if (nv == NULL) {
		return -1;
	}
	//String vtype = new String(viewtype);
	
	RhoOpenedNativeView* opened_view = new RhoOpenedNativeView();
	opened_view->factory_holder = h;
	opened_view->n_view = nv;
	opened_view->tab_index = tab_index;

	addRhoNativeOpenedView(opened_view);

	RhoNativeViewRunnable_OpenViewCommand* open_command = new RhoNativeViewRunnable_OpenViewCommand(opened_view);

	RhoNativeViewUtil::executeInUIThread_WM(open_command);

	return opened_view->id;
}
NativeViewFactory* RhoNativeViewManagerWM::getFactoryByViewType(const char* viewtype) {
	RhoNativeViewHolder* h = getHolderByViewTypeName(viewtype);
	if (h != NULL) {
		return h->factory;
	}
	return NULL;
}
Beispiel #3
0
void RhoNativeViewManager::unregisterViewType(const char* viewType) {
	RhoNativeViewHolder* holder = getHolderByViewTypeName(viewType);
	if (holder != NULL) {
		removeRhoNativeViewHolder(holder);
	}
}
Beispiel #4
0
RHO_GLOBAL jlong JNICALL Java_com_rhomobile_rhodes_nativeview_RhoNativeViewManager_getFactoryHandleByViewType
(JNIEnv *env, jclass, jstring viewtype) {
	const char* s_viewtype = rho_cast<std::string>(viewtype).c_str();
	RhoNativeViewHolder* nvh = getHolderByViewTypeName(s_viewtype);
	return (jlong)((unsigned long int)nvh);
}