示例#1
0
void RimeWithWeaselHandler::Initialize()
{
	m_disabled = _IsDeployerRunning();
	if (m_disabled)
	{
		 return;
	}
	LOG(INFO) << "Initializing la rime.";
	RimeSetNotificationHandler(&RimeWithWeaselHandler::OnNotify, this);
	RimeTraits weasel_traits;
	weasel_traits.shared_data_dir = weasel_shared_data_dir();
	weasel_traits.user_data_dir = weasel_user_data_dir();
	const int len = 20;
	char utf8_str[len];
	memset(utf8_str, 0, sizeof(utf8_str));
	WideCharToMultiByte(CP_UTF8, 0, WEASEL_IME_NAME, -1, utf8_str, len - 1, NULL, NULL);
	weasel_traits.distribution_name = utf8_str;
	weasel_traits.distribution_code_name = WEASEL_CODE_NAME;
	weasel_traits.distribution_version = WEASEL_VERSION;
	RimeInitialize(&weasel_traits);
	Bool full_check = False;
	if (RimeStartMaintenance(full_check))
	{
		m_disabled = true;
	}

	RimeConfig config = { NULL };
	if (RimeConfigOpen("weasel", &config))
	{
		_UpdateUIStyle(&config, m_ui);
		_LoadAppOptions(&config, m_app_options);
		RimeConfigClose(&config);
	}
}
示例#2
0
void RimeWithWeaselHandler::Initialize()
{
	m_disabled = _IsDeployerRunning();
	if (m_disabled)
	{
		 return;
	}

	LOG(INFO) << "Initializing la rime.";
	RimeInitialize(NULL);
	if (RimeStartMaintenance(/*full_check = */False))
	{
		m_disabled = true;
	}

	RimeConfig config = { NULL };
	if (RimeConfigOpen("weasel", &config))
	{
		if (m_ui)
		{
			_UpdateUIStyle(&config, m_ui, true);
			m_base_style = m_ui->style();
		}
		_LoadAppOptions(&config, m_app_options);
		RimeConfigClose(&config);
	}
	m_last_schema_id.clear();
}
示例#3
0
static void start(JNIEnv *env, jobject thiz, jstring shared_data_dir, jstring user_data_dir) {
  RIME_STRUCT(RimeTraits, traits);
  
  const char* str1 = shared_data_dir == NULL ? NULL : env->GetStringUTFChars(shared_data_dir, NULL); 
  const char* str2 = user_data_dir == NULL ? NULL : env->GetStringUTFChars(user_data_dir, NULL); 
  if (str1 != NULL) traits.shared_data_dir = str1;
  if (str2 != NULL) traits.user_data_dir = str2;
  traits.app_name = "rime.jni";
  ALOGE("setup...\n");
  RimeInitialize(&traits);
  env->ReleaseStringUTFChars(shared_data_dir, str1);
  env->ReleaseStringUTFChars(user_data_dir, str2);
}
示例#4
0
void ibus_rime_start(gboolean full_check) {
    char user_data_dir[512] = {0};
    char old_user_data_dir[512] = {0};
    get_ibus_rime_user_data_dir(user_data_dir);
    if (!g_file_test(user_data_dir, G_FILE_TEST_IS_DIR)) {
        get_ibus_rime_old_user_data_dir(old_user_data_dir);
        if (g_file_test(old_user_data_dir, G_FILE_TEST_IS_DIR)) {
            g_rename(old_user_data_dir, user_data_dir);
        }
        else {
            g_mkdir_with_parents(user_data_dir, 0700);
        }
    }
    RimeSetNotificationHandler(notification_handler, NULL);
    RimeTraits ibus_rime_traits;
    ibus_rime_traits.shared_data_dir = IBUS_RIME_SHARED_DATA_DIR;
    ibus_rime_traits.user_data_dir = user_data_dir;
    ibus_rime_traits.distribution_name = DISTRIBUTION_NAME;
    ibus_rime_traits.distribution_code_name = DISTRIBUTION_CODE_NAME;
    ibus_rime_traits.distribution_version = DISTRIBUTION_VERSION;
    RimeInitialize(&ibus_rime_traits);
    RimeStartMaintenance((Bool)full_check);
}