From f3f0b72ff2607397a1d3f6d9523ad85ae271b80c Mon Sep 17 00:00:00 2001 From: reinelt Date: Wed, 10 Sep 2003 14:01:53 +0000 Subject: [lcd4linux @ 2003-09-10 14:01:52 by reinelt] icons nearly finished\! git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@237 3ae390bd-cb1e-0410-b409-cd5a39f66f1f --- XWindow.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'XWindow.c') diff --git a/XWindow.c b/XWindow.c index 5ff05a3..ee0aa73 100644 --- a/XWindow.c +++ b/XWindow.c @@ -1,4 +1,4 @@ -/* $Id: XWindow.c,v 1.33 2003/09/09 06:54:43 reinelt Exp $ +/* $Id: XWindow.c,v 1.34 2003/09/10 14:01:53 reinelt Exp $ * * X11 Driver for LCD4Linux * @@ -20,6 +20,9 @@ * * * $Log: XWindow.c,v $ + * Revision 1.34 2003/09/10 14:01:53 reinelt + * icons nearly finished\! + * * Revision 1.33 2003/09/09 06:54:43 reinelt * new function 'cfg_number()' * @@ -165,6 +168,7 @@ #include "cfg.h" #include "display.h" #include "bar.h" +#include "icon.h" #include "pixmap.h" @@ -199,6 +203,7 @@ static int cgap=0; /*column gap between characters*/ static int border=0; /*window border*/ static int rows=-1,cols=-1; /*rows+cols without background*/ static int xres=-1,yres=-1; /*xres+yres (same as self->...)*/ +static int icons; /* number of user-defined icons */ static int dimx,dimy; /*total window dimension in pixel*/ static int boxw,boxh; /*box width, box height*/ static int async_update(); /*PROTO*/ @@ -428,6 +433,13 @@ int xlcdinit(LCD *Self) if (*rgbhg=='\\') rgbhg++; if (pix_init(rows,cols,xres,yres)==-1) return -1; + + if (cfg_number("Icons", 0, 0, 8, &icons) < 0) return -1; + if (icons>0) { + info ("allocating %d icons", icons); + icon_init(rows, cols, xres, yres, 8, icons, pix_icon); + } + if (init_x(rows,cols,xres,yres)==-1) return -1; init_signals(); if (init_shm(rows*cols*xres*yres,&LCDpixmap2)==-1) return -1; @@ -437,6 +449,7 @@ int xlcdinit(LCD *Self) Self->cols=cols; Self->xres=xres; Self->yres=yres; + Self->icons=icons; Lcd=*Self; pix_clear(); @@ -450,7 +463,7 @@ int xlcdclear(int full) } -int xlcdput(int row,int col,char *text) +int xlcdput(int row,int col, char *text) { return pix_put(row,col,text); } @@ -462,6 +475,12 @@ int xlcdbar(int type, int row, int col, int max, int len1, int len2) } +int xlcdicon (int num, int seq, int row, int col) +{ + return icon_draw (num, seq, row, col); +} + + int xlcdflush() { int dirty; int row,col; @@ -565,11 +584,13 @@ LCD XWindow[] = { xres: 0, yres: 0, bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2 | BAR_V2 | BAR_T, + icons: 0, gpos: 0, init: xlcdinit, clear: xlcdclear, put: xlcdput, bar: xlcdbar, + icon: xlcdicon, gpo: NULL, flush: xlcdflush, quit: xlcdquit -- cgit v1.2.3