ref: 239a257dac366476513d25fded85f358a564e030
dir: /title.c/
#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++) {
if(window[i]->i == nil)
break;
if(window[i]->titlei == nil)
continue;
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);
}
void
delete_tit(Window *w)
{
Image *i_t = w->titlei;
if(i_t == nil)
return;
w->titlei = nil;
originwindow(i_t, (Point){0, 0}, view->r.max);
replclipr(i_t, 0, ZR);
freeimage(i_t);
}