void menu_render(menu* pMenu) { Uint32 color; int numEntries = pMenu->m_aEntries->m_len; rect dst = {pMenu->m_iX, pMenu->m_iY, pMenu->m_iWidth, pMenu->m_iHeight}; screen_fill_rect(&dst, 0x003380ff); char **menuItem = (char**) pMenu->m_aEntries->m_data; char **menuValue = (char**) pMenu->m_aValues->m_data; for (int i = 0; i < numEntries; i++) { if (i == pMenu->m_iCursorPos) { dst.x = pMenu->m_iX; dst.y = pMenu->m_iY + i * (g_font.m_iGlyphHeight + MARGIN*2); dst.w = pMenu->m_iWidth; dst.h = g_font.m_iGlyphHeight+MARGIN * 2; screen_fill_rect(&dst, 0x5f8dd3ff); } table_get(pMenu->m_aColors, i, &color); image_setcolormod(g_font.m_image, color); font_print(g_font, pMenu->m_iX + MARGIN, pMenu->m_iY + i * (g_font.m_iGlyphHeight + MARGIN*2) + MARGIN, menuItem[i]); if (menuValue[i] == nullptr) { continue; } font_print(g_font, pMenu->m_iX + MARGIN + pMenu->m_iValueX, pMenu->m_iY + i * (g_font.m_iGlyphHeight + MARGIN*2) + MARGIN, menuValue[i]); } dst.x = pMenu->m_iX; dst.y = pMenu->m_iY; dst.w = pMenu->m_iWidth; dst.h = pMenu->m_iHeight; screen_draw_rect(&dst, COLOR_MENU_BORDER); }
static pj_bool_t topbar_update_time() { char txt[6]; static pj_uint8_t hours = 0xff; static pj_uint8_t minutes = 0xff; // if (hours == IPC->time.rtc.hours && minutes == IPC->time.rtc.minutes) // return PJ_FALSE; hours = IPC->time.rtc.hours; minutes = IPC->time.rtc.minutes; pj_ansi_snprintf(txt, 6, "%02d:%02d", hours, minutes); dispString2(screen_get_backbuffer(), 256, 163 /* xpos */, 6 /* ypos */, 0xffff /*currentskin.time_mask*/, txt, font_myriad_web_9, 256 /*screen_width + screen_xpos - 40*/, 16 /*screen_height + screen_ypos*/); screen_draw_rect(screen_get_backbuffer(), 256, 160, 3, 31, 15, 0xffff); return PJ_TRUE; }