Ejemplo n.º 1
0
static void
run(void)
{
	XEvent ev;

	while (!XNextEvent(dpy, &ev)) {
		if (XFilterEvent(&ev, win))
			continue;
		switch(ev.type) {
		case Expose:
			if (ev.xexpose.count == 0)
				drw_map(drw, win, 0, 0, mw, mh);
			break;
		case KeyPress:
			keypress(&ev.xkey);
			break;
		case SelectionNotify:
			if (ev.xselection.property == utf8)
				paste();
			break;
		case VisibilityNotify:
			if (ev.xvisibility.state != VisibilityUnobscured)
				XRaiseWindow(dpy, win);
			break;
		}
	}
}
Ejemplo n.º 2
0
static void
drawmenu(void)
{
	unsigned int curpos;
	struct item *item;
	int x = 0, y = 0, w;

	drw_setscheme(drw, scheme[SchemeNorm]);
	drw_rect(drw, 0, 0, mw, mh, 1, 1);

	if (prompt && *prompt) {
		drw_setscheme(drw, scheme[SchemeSel]);
		x = drw_text(drw, x, 0, promptw, bh, lrpad / 2, prompt, 0);
	}
	/* draw input field */
	w = (lines > 0 || !matches) ? mw - x : inputw;
	drw_setscheme(drw, scheme[SchemeNorm]);
	drw_text(drw, x, 0, w, bh, lrpad / 2, text, 0);

	drw_font_getexts(drw->fonts, text, cursor, &curpos, NULL);
	if ((curpos += lrpad / 2 - 1) < w) {
		drw_setscheme(drw, scheme[SchemeNorm]);
		drw_rect(drw, x + curpos, 2, 2, bh - 4, 1, 0);
	}

	if (lines > 0) {
		/* draw vertical list */
		for (item = curr; item != next; item = item->right)
			drawitem(item, x, y += bh, mw - x);
	} else if (matches) {
		/* draw horizontal list */
		x += inputw;
		w = TEXTW("<");
		if (curr->left) {
			drw_setscheme(drw, scheme[SchemeNorm]);
			drw_text(drw, x, 0, w, bh, lrpad / 2, "<", 0);
		}
		x += w;
		for (item = curr; item != next; item = item->right)
			x = drawitem(item, x, 0, MIN(TEXTW(item->text), mw - x - TEXTW(">")));
		if (next) {
			w = TEXTW(">");
			drw_setscheme(drw, scheme[SchemeNorm]);
			drw_text(drw, mw - w, 0, w, bh, lrpad / 2, ">", 0);
		}
	}
	drw_map(drw, win, 0, 0, mw, mh);
}
Ejemplo n.º 3
0
//컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴
//Procedure	drw_obj
//LastModified:	PD 26Feb96 -
//------------------------------------------------------------------------------
//Author		Paul.
//Date		Thu 24 Aug 1995
//Modified
//
//Description
//
//Inputs
//
//Returns
//
//Externals
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void btree::drw_obj(BaseObj3DPtr this_obj3d)					//PD 12Mar96
{
    switch (this_obj3d->objtype)								//PD 12Mar96
    {
    case COCKPIT_OBJECT:
        drw_cockpit(this_obj3d);
        break;

    case SHADOW_OBJECT:									//RJS 07May97
        drw_shadow(this_obj3d);								//RJS 07May97
        break;										//RJS 07May97

    case SMOKE_OBJECT:									//RJS 08Sep97
    case STATIC_OBJECT:									//RJS 08Sep97
        drw_static(this_obj3d);
        break;

    case SHADEOVERRIDE_OBJECT:
        drw_shadeoverride(this_obj3d);
        break;

    case MOBILE_OBJECT:
        drw_mobile(this_obj3d);
        break;

    case GROUND_TILE_OBJECT:
        drw_land(this_obj3d);
        break;

    case SPECIAL_TILE_OBJECT:
        drw_special_land(this_obj3d);
        break;

    case MAP_OBJECT:										//RJS 08Sep98
        drw_map(this_obj3d);								//RJS 08Sep98
        break;												//RJS 08Sep98
    }
}
Ejemplo n.º 4
0
static void
drawmenu(void)
{
	int curpos;
	struct item *item;
	int x = 0, y = 0, h = bh, w;

	drw_setscheme(drw, &scheme[SchemeNorm]);
	drw_rect(drw, 0, 0, mw, mh, 1, 1, 1);

	if (prompt && *prompt) {
		drw_setscheme(drw, &scheme[SchemeSel]);
		drw_text(drw, x, 0, promptw, bh, prompt, 0);
		x += promptw;
	}
	/* draw input field */
	w = (lines > 0 || !matches) ? mw - x : inputw;
	drw_setscheme(drw, &scheme[SchemeNorm]);
	drw_text(drw, x, 0, w, bh, text, 0);

	if ((curpos = TEXTNW(text, cursor) + bh / 2 - 2) < w) {
		drw_setscheme(drw, &scheme[SchemeNorm]);
		drw_rect(drw, x + curpos + 2, 2, 1, bh - 4, 1, 1, 0);
	}

	if (lines > 0) {
		/* draw vertical list */
		w = mw - x;
		for (item = curr; item != next; item = item->right) {
			y += h;
			if (item == sel)
				drw_setscheme(drw, &scheme[SchemeSel]);
			else if (item->out)
				drw_setscheme(drw, &scheme[SchemeOut]);
			else
				drw_setscheme(drw, &scheme[SchemeNorm]);

			drw_text(drw, x, y, w, bh, item->text, 0);
		}
	} else if (matches) {
		/* draw horizontal list */
		x += inputw;
		w = TEXTW("<");
		if (curr->left) {
			drw_setscheme(drw, &scheme[SchemeNorm]);
			drw_text(drw, x, 0, w, bh, "<", 0);
		}
		for (item = curr; item != next; item = item->right) {
			x += w;
			w = MIN(TEXTW(item->text), mw - x - TEXTW(">"));

			if (item == sel)
				drw_setscheme(drw, &scheme[SchemeSel]);
			else if (item->out)
				drw_setscheme(drw, &scheme[SchemeOut]);
			else
				drw_setscheme(drw, &scheme[SchemeNorm]);
			drw_text(drw, x, 0, w, bh, item->text, 0);
		}
		w = TEXTW(">");
		x = mw - w;
		if (next) {
			drw_setscheme(drw, &scheme[SchemeNorm]);
			drw_text(drw, x, 0, w, bh, ">", 0);
		}
	}
	drw_map(drw, win, 0, 0, mw, mh);
}