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; }
void RhoNativeViewManager::unregisterViewType(const char* viewType) { RhoNativeViewHolder* holder = getHolderByViewTypeName(viewType); if (holder != NULL) { removeRhoNativeViewHolder(holder); } }
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); }