Ktam3874/pitx software guide – Kontron KTAM3874-pITX User Manual
Page 122

KTD-S0057-I
Page 118 Linux® Programming Examples (DebianTM)
KTAM3874/pITX Software Guide
XSetForeground
(sys.disp, sys.gc, btn.linecol1);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x, btn.rc.y, btn.rc.x, btn.rc.y + btn.rc.height-1);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x, btn.rc.y, btn.rc.x + btn.rc.width-1, btn.rc.y);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x+1, btn.rc.y, btn.rc.x+1, btn.rc.y + btn.rc.height-1);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x, btn.rc.y+1, btn.rc.x + btn.rc.width-1, btn.rc.y+1);
XSetForeground
(sys.disp, sys.gc, btn.linecol2);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x+1, btn.rc.y + btn.rc.height-1, btn.rc.x + btn.rc.width-1,
btn.rc.y
+
btn.rc.height-1);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x + btn.rc.width-1, btn.rc.y+1, btn.rc.x + btn.rc.width-1,
btn.rc.y
+
btn.rc.height-1);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x+2, btn.rc.y + btn.rc.height-2, btn.rc.x + btn.rc.width-1,
btn.rc.y
+
btn.rc.height-2);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x + btn.rc.width-2, btn.rc.y+2, btn.rc.x + btn.rc.width-2,
btn.rc.y
+
btn.rc.height-1);
if (strlen (btn.text))
{
XSetFont
(sys.disp,
sys.gc, btn.font->fid);
XSetForeground
(sys.disp, sys.gc, btn.textcol);
XSetBackground
(sys.disp, sys.gc, btn.backcol);
XTextExtents (btn.font, btn.text, strlen (btn.text), &tmp, &tmp, &tmp, &tsize);
xp = (btn.rc.width / 2) - (tsize.width / 2) + btn.rc.x;
yp = (btn.rc.height / 2) + (tsize.ascent) - ((tsize.ascent + tsize.descent) / 2) + btn.rc.y;
XDrawImageString (sys.disp, sys.win, sys.gc, xp, yp, btn.text, strlen (btn.text));
}
}
/* Not the optimal solution ! */
static void reverse_button (XSystem sys, XButton btn)
{
XSetForeground (sys.disp, sys.gc, BlackPixel (sys.disp, sys.screen));
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x, btn.rc.y, btn.rc.x, btn.rc.y + btn.rc.height-1);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x, btn.rc.y, btn.rc.x + btn.rc.width-1, btn.rc.y);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x+1, btn.rc.y, btn.rc.x+1, btn.rc.y + btn.rc.height-1);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x, btn.rc.y+1, btn.rc.x + btn.rc.width-1, btn.rc.y+1);
XSetForeground (sys.disp, sys.gc, WhitePixel (sys.disp, sys.screen));
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x+1, btn.rc.y + btn.rc.height-1, btn.rc.x + btn.rc.width-1,
btn.rc.y
+
btn.rc.height-1);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x + btn.rc.width-1, btn.rc.y+1, btn.rc.x + btn.rc.width-1,
btn.rc.y
+
btn.rc.height-1);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x+2, btn.rc.y + btn.rc.height-2, btn.rc.x + btn.rc.width-1,
btn.rc.y
+
btn.rc.height-2);
XDrawLine (sys.disp, sys.win, sys.gc, btn.rc.x + btn.rc.width-2, btn.rc.y+2, btn.rc.x + btn.rc.width-2,
btn.rc.y
+
btn.rc.height-1);
}