|
@@ -61,8 +61,8 @@ void loadFont(struct printerEnv *env, XFontStruct **font, char* fontname)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-struct printerEnv printerOpenWindow(int margin_bottom, char *font, char *font_i,
|
|
|
- char *font_b, char *font_bi)
|
|
|
+struct printerEnv printerOpenWindow(char *font, char *font_i, char *font_b,
|
|
|
+ char *font_bi)
|
|
|
{
|
|
|
struct printerEnv env;
|
|
|
|
|
@@ -80,6 +80,8 @@ struct printerEnv printerOpenWindow(int margin_bottom, char *font, char *font_i,
|
|
|
// size of the screen
|
|
|
XWindowAttributes RootAttr;
|
|
|
XGetWindowAttributes(env.d, RootWindow(env.d, env.s), &RootAttr);
|
|
|
+ env.root_width = RootAttr.width;
|
|
|
+ env.root_height = RootAttr.height;
|
|
|
|
|
|
// set window attributes
|
|
|
XSetWindowAttributes attr;
|
|
@@ -99,9 +101,6 @@ struct printerEnv printerOpenWindow(int margin_bottom, char *font, char *font_i,
|
|
|
//env.color_background = a*256*256*256 + r*256*256 + g*256 + b;
|
|
|
|
|
|
// create the window
|
|
|
- env.margin_bottom = margin_bottom;
|
|
|
- env.root_width = RootAttr.width;
|
|
|
- env.root_height = RootAttr.height;
|
|
|
env.width = 1;
|
|
|
env.height = 1;
|
|
|
env.w = XCreateWindow(env.d, RootWindow(env.d, env.s), 0, 0, env.width,
|
|
@@ -272,8 +271,8 @@ int drawText(struct printerEnv env, char *text, int size,
|
|
|
}
|
|
|
|
|
|
// return a the max width
|
|
|
-int printLines(struct printerEnv env, char *text, int gap, int y,
|
|
|
- enum t_type flags, int draw)
|
|
|
+int printLines(struct printerEnv env, char *text, int y, enum t_type flags,
|
|
|
+ int draw)
|
|
|
{
|
|
|
char *next;
|
|
|
int size;
|
|
@@ -305,8 +304,8 @@ int printLines(struct printerEnv env, char *text, int gap, int y,
|
|
|
|
|
|
// print next lines
|
|
|
if(*next != '\0')
|
|
|
- width = printLines(env, next, gap, y + env.maxascent + env.maxdescent + gap,
|
|
|
- flags, draw);
|
|
|
+ width = printLines(env, next, y + env.maxascent + env.maxdescent
|
|
|
+ + env.gap, flags, draw);
|
|
|
|
|
|
if(tmp > width)
|
|
|
return tmp;
|
|
@@ -315,7 +314,6 @@ int printLines(struct printerEnv env, char *text, int gap, int y,
|
|
|
|
|
|
void printerShow(struct printerEnv *env, char* text, enum t_type font)
|
|
|
{
|
|
|
- int gap = 5, padding = 5;
|
|
|
int nlines = 1;
|
|
|
char *p = text;
|
|
|
while((p = strchr(p, '\n')) != NULL)
|
|
@@ -326,9 +324,9 @@ void printerShow(struct printerEnv *env, char* text, enum t_type font)
|
|
|
nlines++;
|
|
|
}
|
|
|
// width and height
|
|
|
- env->width = printLines(*env, text, gap, 0, font, 0) + 2*padding;
|
|
|
- env->height = nlines * (env->maxascent + env->maxdescent + gap) - gap +
|
|
|
- 2*padding;
|
|
|
+ env->width = printLines(*env, text, 0, font, 0) + 2 * env->padding;
|
|
|
+ env->height = nlines * (env->maxascent + env->maxdescent + env->gap)
|
|
|
+ - env->gap + 2 * env->padding;
|
|
|
|
|
|
XClearWindow(env->d, env->w);
|
|
|
|
|
@@ -342,7 +340,7 @@ void printerShow(struct printerEnv *env, char* text, enum t_type font)
|
|
|
XSetForeground(env->d, env->gc, env->color_text);
|
|
|
|
|
|
// text
|
|
|
- printLines(*env, text, gap, padding + env->maxascent, font, 1);
|
|
|
+ printLines(*env, text, env->padding + env->maxascent, font, 1);
|
|
|
XFlush(env->d);
|
|
|
}
|
|
|
|