static void GrGetGCInfoWrapper(void *r) { nxGetGCInfoReq *req = r; GR_GC_INFO gcinfo; GrGetGCInfo(req->gcid, &gcinfo); GsWriteType(current_fd,GrNumGetGCInfo); GsWrite(current_fd, &gcinfo, sizeof(gcinfo)); }
//------------------------------------------------------------------------------ // Function Name : ui_draw_text_window() // Description : //------------------------------------------------------------------------------ void ui_draw_text_window(GR_WINDOW_ID wid, int x, int y, int w, int h, u32 size, u32 co, u32 align, char *str) { int align_x, align_y, len, width, height, base; GR_GC_INFO gc_info; GrGetGCInfo(g_gc, &gc_info); GrSetGCUseBackground(g_gc, FALSE); GrSetGCForeground(g_gc, co); GrSetFontSizeEx(g_font, size, size); len = strlen(str); align_x = x; align_y = y; if (align != TXT_ALIGN_NONE) { GrGetGCTextSize(g_gc, str, len, MWTF_DBCS_EUCKR, &width, &height, &base); // horizontal align if (align & TXT_HALIGN_CENTER) { if (width < w) align_x = x + ((w - width) / 2); } else if (align & TXT_HALIGN_RIGHT) { if (width < w) align_x = x + (w - width); } // vertical align if (align & TXT_VALIGN_MIDDLE) { if (height < h) align_y = y + ((h - height) / 2); } else if (align & TXT_VALIGN_BOTTOM) { if (height < h) align_y = y + (h - height); } } GrText(wid, g_gc, align_x, align_y, str, len, MWTF_DBCS_EUCKR|GR_TFTOP); //Recover GC Info GrSetGCUseBackground(g_gc, gc_info.usebackground); GrSetGCForeground(g_gc, gc_info.foreground); }