Ejemplo n.º 1
0
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));
}
Ejemplo n.º 2
0
//------------------------------------------------------------------------------
// 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);
}