implemented drawing selected text in an input widget

This commit is contained in:
Anselm R. Garbe 2006-06-22 13:00:37 +02:00
parent 948f228c61
commit 7b54e864b6
2 changed files with 11 additions and 4 deletions

View File

@ -144,6 +144,9 @@ draw_frame(Frame *f)
Frame *p;
unsigned int fidx, size, w;
char buf[256];
char *test = "tag1 tag2 tag3 tag4 | xterm";
char *testselstart = test+5;
char *testselend = test+9;
for(fidx=0, p=f->area->frame; p && p != f; p=p->anext, fidx++);
for(size=fidx; p; p=p->anext, size++);
@ -168,7 +171,8 @@ draw_frame(Frame *f)
f->tagbar.rect = f->posbar.rect;
f->tagbar.rect.x = 0;
f->tagbar.rect.width =
f->tagbar.rect.height + blitz_textwidth(&def.font, f->client->tags);
/* f->tagbar.rect.height + blitz_textwidth(&def.font, f->client->tags);*/
f->tagbar.rect.height + blitz_textwidth(&def.font, test);
if(f->tagbar.rect.width > f->rect.width / 3)
f->tagbar.rect.width = f->rect.width / 3;
@ -178,7 +182,9 @@ draw_frame(Frame *f)
f->titlebar.rect.width = f->rect.width - (f->tagbar.rect.width + f->posbar.rect.width);
blitz_draw_tile(&f->tile);
f->tagbar.text = f->client->tags;
f->tagbar.text = test;/*f->client->tags;*/
f->tagbar.selstart = testselstart;
f->tagbar.selend = testselend;
blitz_draw_input(&f->tagbar);
blitz_draw_label(&f->titlebar, f->client->name);
blitz_draw_label(&f->posbar, buf);

View File

@ -3,6 +3,7 @@
* See LICENSE file for license details.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cext.h>
@ -120,10 +121,10 @@ xdrawtextpart(BlitzInput *i, BlitzColor *c, char *start, char *end,
for(p = start; p && *p && p != end; p++) {
*buf = *p;
if(i->font->set)
XmbDrawString(i->blitz->display, i->drawable, i->font->set, i->gc,
XmbDrawImageString(i->blitz->display, i->drawable, i->font->set, i->gc,
*xoff, yoff, buf, 1);
else
XDrawString(i->blitz->display, i->drawable, i->gc, *xoff, yoff,
XDrawImageString(i->blitz->display, i->drawable, i->gc, *xoff, yoff,
buf, 1);
*xoff += boxw;
}