shithub: repo

ref: b93a84fc520117ce3168f6a3ddf4c9de384d0ca1
dir: /title.c/

View raw version
#include <u.h>
#include <libc.h>
#include <draw.h>
#include <thread.h>
#include <cursor.h>
#include <mouse.h>
#include <keyboard.h>
#include <frame.h>
#include <fcall.h>
#include <plumb.h>
#include <complete.h>
#include "dat.h"
#include "fns.h"

void
draw_tits(void)
{
	int i;
	Point p, c;
	for(i = 0; i < nwindow; i++) {
		draw(window[i]->titlei, window[i]->titlei->r, col[Colhigh], nil, ZP);
		p.x = window[i]->titler.min.x + 5;
		p.y = window[i]->titler.min.y + 12;
		string(window[i]->titlei, p, (window[i] == input) ? col[Coltext] : col[Colpaletext], p, display->defaultfont, window[i]->label);
		c.x = window[i]->titler.max.x - 20;
		c.y = window[i]->titler.min.y + 18;
		if(window[i] != input)
			fillarc(window[i]->titlei, c, 6, 6, col[Colpaletext], ZP, 0, 360);
		else {
		window[i]->titler_button = Rect(window[i]->titler.max.x - 46, window[i]->titler.min.y + 13,
									   window[i]->titler.max.x - 13, window[i]->titler.max.y - 8);
		draw(window[i]->titlei, window[i]->titler_button, col[Coltext], nil, ZP);
		}

	}
}

void
wtitledraw(Window *w)
{	
	Point p, c;
	if(w->i == nil) return;

	#	define sr w->i->r
		w->titler = Rect(sr.min.x, sr.min.y - 32	, sr.max.x, sr.min.y);

	#	define tit w->titler
		w->titler_button = Rect(tit.max.x - 20, tit.min.y + 4, tit.max.x - 6, tit.max.y - 4);
	#	undef tit

		p.x = sr.min.x + 5;
		p.y = sr.min.y - 20;
	#	undef sr

	if(w->titlei == nil){
		w->titlei = allocwindow(wscreen, w->titler, Refnone, DNofill);
	} else {
		originwindow(w->titlei, w->titlei->r.min, w->titler.min);
	}
	
	draw(w->titlei, w->titlei->r, col[Colhigh], nil, ZP);
	string(w->titlei, p, col[Coltext], p, display->defaultfont, w->label);
	c.x = w->titler.max.x - 20;
	c.y = w->titler.min.y + 18;
	w->titler_button = Rect(w->titler.max.x - 46, w->titler.min.y + 13,
						    w->titler.max.x - 13, w->titler.max.y - 8);
	draw(w->titlei, w->titler_button, col[Coltext], nil, ZP);
}