static void xui_set_list_text(int index, const wchar_t* leftText, const wchar_t* rightText) { LPCWSTR currText; float width, height; XUIRect pRect; D3DXVECTOR3 textPos, rightEdgePos; HXUIOBJ hVisual = NULL, hControl = NULL, hTextLeft = NULL, hTextRight = NULL, hRightEdge = NULL; hControl = XuiListGetItemControl(m_menulist, index); if (XuiHandleIsValid(hControl)) XuiControlGetVisual(hControl, &hVisual); if(!XuiHandleIsValid(hVisual)) return; XuiElementGetChildById(hVisual, L"LeftText", &hTextLeft); if (!XuiHandleIsValid(hTextLeft)) return; currText = XuiTextElementGetText(hTextLeft); XuiElementGetBounds(hTextLeft, &width, &height); if (!currText || wcscmp(currText, leftText) || width <= 5) { XuiTextElementMeasureText(hTextLeft, leftText, &pRect); XuiElementSetBounds(hTextLeft, pRect.GetWidth(), height); } XuiTextElementSetText(hTextLeft, leftText); XuiElementGetChildById(hVisual, L"RightText", &hTextRight); if(XuiHandleIsValid(hTextRight)) { currText = XuiTextElementGetText(hTextRight); XuiElementGetBounds(hTextRight, &width, &height); if (!currText || wcscmp(currText, rightText) || width <= 5) { XuiTextElementMeasureText(hTextRight, rightText, &pRect); XuiElementSetBounds(hTextRight, pRect.GetWidth(), height); XuiElementGetPosition(hTextLeft, &textPos); XuiElementGetChildById(hVisual, L"graphic_CapRight", &hRightEdge); XuiElementGetPosition(hRightEdge, &rightEdgePos); textPos.x = rightEdgePos.x - (pRect.GetWidth() + textPos.x); XuiElementSetPosition(hTextRight, &textPos); } XuiTextElementSetText(hTextRight, rightText); } }
static int rgui_iterate(void *data, unsigned action) { rgui_handle_t *rgui = (rgui_handle_t*)data; if (action == RGUI_ACTION_OK) { XuiSceneNavigateBack(current_menu, root_menu, XUSER_INDEX_ANY); current_menu = root_menu; XuiElementGetChildById(current_menu, L"XuiMenuList", &m_menulist); init_menulist(INGAME_MENU_MAIN_MODE); } return 0; }