FCITX_EXPORT_API void FcitxMenuAddMenuItem(FcitxUIMenu* menu, const char* string, FcitxMenuItemType type, FcitxUIMenu* subMenu) { FcitxMenuAddMenuItemWithData(menu, string, type, subMenu, NULL); }
static void UpdateMainMenu(FcitxUIMenu* menu) { FcitxClassicUI* classicui = (FcitxClassicUI*) menu->priv; FcitxInstance* instance = classicui->owner; FcitxMenuClear(menu); FcitxMenuAddMenuItem(menu, _("Online Help"), MENUTYPE_SIMPLE, NULL); FcitxMenuAddMenuItem(menu, NULL, MENUTYPE_DIVLINE, NULL); boolean flag = false; FcitxUIStatus* status; UT_array* uistats = FcitxInstanceGetUIStats(instance); for (status = (FcitxUIStatus*) utarray_front(uistats); status != NULL; status = (FcitxUIStatus*) utarray_next(uistats, status) ) { FcitxClassicUIStatus* privstat = GetPrivateStatus(status); if (privstat == NULL || !status->visible || privstat->avail ) continue; flag = true; FcitxMenuAddMenuItemWithData(menu, status->shortDescription, MENUTYPE_SIMPLE, NULL, strdup(status->name)); } FcitxUIComplexStatus* compstatus; UT_array* uicompstats = FcitxInstanceGetUIComplexStats(instance); for (compstatus = (FcitxUIComplexStatus*) utarray_front(uicompstats); compstatus != NULL; compstatus = (FcitxUIComplexStatus*) utarray_next(uicompstats, compstatus) ) { FcitxClassicUIStatus* privstat = GetPrivateStatus(compstatus); if (privstat == NULL || !compstatus->visible || privstat->avail) continue; if (FcitxUIGetMenuByStatusName(instance, compstatus->name)) continue; flag = true; FcitxMenuAddMenuItemWithData(menu, compstatus->shortDescription, MENUTYPE_SIMPLE, NULL, strdup(compstatus->name)); } if (flag) FcitxMenuAddMenuItem(menu, NULL, MENUTYPE_DIVLINE, NULL); FcitxUIMenu **menupp; UT_array* uimenus = FcitxInstanceGetUIMenus(instance); for (menupp = (FcitxUIMenu **) utarray_front(uimenus); menupp != NULL; menupp = (FcitxUIMenu **) utarray_next(uimenus, menupp) ) { FcitxUIMenu * menup = *menupp; if (menup->isSubMenu) continue; if (!menup->visible) continue; if (menup->candStatusBind) { FcitxUIComplexStatus* compStatus = FcitxUIGetComplexStatusByName(instance, menup->candStatusBind); if (compStatus) { if (!compStatus->visible) continue; if (GetPrivateStatus(compStatus)->avail) continue; } } FcitxMenuAddMenuItem(menu, menup->name, MENUTYPE_SUBMENU, menup); } FcitxMenuAddMenuItem(menu, NULL, MENUTYPE_DIVLINE, NULL); FcitxMenuAddMenuItem(menu, _("Configure Current Input Method"), MENUTYPE_SIMPLE, NULL); FcitxMenuAddMenuItem(menu, _("Configure"), MENUTYPE_SIMPLE, NULL); FcitxMenuAddMenuItem(menu, _("Restart"), MENUTYPE_SIMPLE, NULL); FcitxMenuAddMenuItem(menu, _("Exit"), MENUTYPE_SIMPLE, NULL); }