void DisplaySkin(FcitxClassicUI* classicui, char * skinname) { char *pivot = classicui->skinType; classicui->skinType = strdup(skinname); if (pivot) free(pivot); if (LoadSkinConfig(&classicui->skin, &classicui->skinType)) FcitxInstanceEnd(classicui->owner); #ifndef _ENABLE_PANGO GetValidFont(classicui->strUserLocale, &classicui->font); GetValidFont(classicui->strUserLocale, &classicui->menuFont); #endif LoadInputMessage(&classicui->skin, classicui->inputWindow, classicui->font); DrawMainWindow(classicui->mainWindow); DrawInputWindow(classicui->inputWindow); DrawTrayWindow(classicui->trayWindow); SaveClassicUIConfig(classicui); }
void DisplaySkin(FcitxClassicUI* classicui, char * skinname) { char *pivot = classicui->skinType; classicui->skinType = strdup(skinname); if (pivot) free(pivot); if (LoadSkinConfig(&classicui->skin, &classicui->skinType)) FcitxInstanceEnd(classicui->owner); #ifndef _ENABLE_PANGO GetValidFont(classicui->strUserLocale, &classicui->font); GetValidFont(classicui->strUserLocale, &classicui->menuFont); #endif FcitxXlibWindowPaint(&classicui->mainWindow->parent); FcitxXlibWindowPaint(&classicui->inputWindow->parent); TrayWindowDraw(classicui->trayWindow); SaveClassicUIConfig(classicui); classicui->epoch ++; }
boolean LoadClassicUIConfig(FcitxClassicUI* classicui) { FcitxConfigFileDesc* configDesc = GetClassicUIDesc(); if (configDesc == NULL) return false; FILE *fp; char *file; fp = FcitxXDGGetFileUserWithPrefix("conf", "fcitx-classic-ui.config", "rt", &file); FcitxLog(DEBUG, "Load Config File %s", file); free(file); if (!fp) { if (errno == ENOENT) SaveClassicUIConfig(classicui); } FcitxConfigFile *cfile = FcitxConfigParseConfigFileFp(fp, configDesc); FcitxClassicUIConfigBind(classicui, cfile, configDesc); FcitxConfigBindSync(&classicui->gconfig); if (fp) fclose(fp); return true; }