wins_prop() suppressed

routines updated to handle new window_t type
This commit is contained in:
Frederic Culot 2007-10-21 13:39:49 +00:00
parent c823b5666b
commit 54db19e8b3

View File

@ -1,4 +1,4 @@
/* $Id: wins.c,v 1.7 2007/10/16 19:15:43 culot Exp $ */ /* $Id: wins.c,v 1.8 2007/10/21 13:39:49 culot Exp $ */
/* /*
* Calcurse - text-based organizer * Calcurse - text-based organizer
@ -33,8 +33,10 @@
#include "custom.h" #include "custom.h"
#include "wins.h" #include "wins.h"
/* Variables to handle calcurse windows. */
window_t win[NBWINS];
static window_e slctd_win; static window_e slctd_win;
static window_t win[NBWINS];
static int layout; static int layout;
/* Get the current layout. */ /* Get the current layout. */
@ -55,7 +57,7 @@ wins_set_layout(int nb)
void void
wins_slctd_init(void) wins_slctd_init(void)
{ {
wins_slctd_set(CALENDAR); wins_slctd_set(CAL);
} }
/* Returns an enum which corresponds to the window which is selected. */ /* Returns an enum which corresponds to the window which is selected. */
@ -76,39 +78,12 @@ wins_slctd_set(window_e window)
void void
wins_slctd_next(void) wins_slctd_next(void)
{ {
if (slctd_win == TODO) if (slctd_win == TOD)
slctd_win = CALENDAR; slctd_win = CAL;
else else
slctd_win++; slctd_win++;
} }
/* Return one property of the given window. */
int
wins_prop(window_e window, winprop_e property)
{
int prop = 0;
switch (property) {
case WIDTH:
prop = (int)win[window].w;
break;
case HEIGHT:
prop = (int)win[window].h;
break;
case XPOS:
prop = win[window].x;
break;
case YPOS:
prop = win[window].y;
break;
default:
ierror(_("FATAL ERROR in wins_prop: property unknown\n"));
/* NOTREACHED */
}
return (prop);
}
/* Create all the windows. */ /* Create all the windows. */
void void
wins_init(void) wins_init(void)
@ -119,26 +94,27 @@ wins_init(void)
* Create the three main windows plus the status bar and the pad used to * Create the three main windows plus the status bar and the pad used to
* display appointments and event. * display appointments and event.
*/ */
cwin = newwin(CALHEIGHT, CALWIDTH, win[CALENDAR].y, win[CALENDAR].x); win[CAL].p = newwin(CALHEIGHT, CALWIDTH, win[CAL].y, win[CAL].x);
snprintf(label, BUFSIZ, _("Calendar")); snprintf(label, BUFSIZ, _("Calendar"));
wins_show(cwin, label); wins_show(win[CAL].p, label);
awin = newwin(win[APPOINTMENT].h, win[APPOINTMENT].w,
win[APPOINTMENT].y, win[APPOINTMENT].x); win[APP].p = newwin(win[APP].h, win[APP].w, win[APP].y, win[APP].x);
snprintf(label, BUFSIZ, _("Appointments")); snprintf(label, BUFSIZ, _("Appointments"));
wins_show(awin, label); wins_show(win[APP].p, label);
apad->width = win[APPOINTMENT].w - 3; apad->width = win[APP].w - 3;
apad->ptrwin = newpad(apad->length, apad->width); apad->ptrwin = newpad(apad->length, apad->width);
twin = newwin(win[TODO].h, win[TODO].w, win[TODO].y, win[TODO].x);
win[TOD].p = newwin(win[TOD].h, win[TOD].w, win[TOD].y, win[TOD].x);
snprintf(label, BUFSIZ, _("ToDo")); snprintf(label, BUFSIZ, _("ToDo"));
wins_show(twin, label); wins_show(win[TOD].p, label);
swin = newwin(win[STATUS].h, win[STATUS].w, win[STATUS].y,
win[STATUS].x); win[STA].p = newwin(win[STA].h, win[STA].w, win[STA].y, win[STA].x);
/* Enable function keys (i.e. arrow keys) in those windows */ /* Enable function keys (i.e. arrow keys) in those windows */
keypad(swin, TRUE); keypad(win[CAL].p, TRUE);
keypad(twin, TRUE); keypad(win[APP].p, TRUE);
keypad(awin, TRUE); keypad(win[TOD].p, TRUE);
keypad(cwin, TRUE); keypad(win[STA].p, TRUE);
} }
/* /*
@ -148,16 +124,16 @@ wins_init(void)
void void
wins_reinit(void) wins_reinit(void)
{ {
delwin(swin); delwin(win[STA].p);
delwin(cwin); delwin(win[CAL].p);
delwin(awin); delwin(win[APP].p);
delwin(apad->ptrwin); delwin(apad->ptrwin);
delwin(twin); delwin(win[TOD].p);
wins_get_config(); wins_get_config();
wins_init(); wins_init();
if (notify_bar()) if (notify_bar())
notify_reinit_bar(win[NOTIFY].h, win[NOTIFY].w, win[NOTIFY].y, notify_reinit_bar(win[NOT].h, win[NOT].w, win[NOT].y,
win[NOTIFY].x); win[NOT].x);
} }
/* Show the window with a border and a label. */ /* Show the window with a border and a label. */
@ -187,101 +163,100 @@ wins_get_config(void)
getmaxyx(stdscr, row, col); getmaxyx(stdscr, row, col);
/* fixed values for status, notification bars and calendar */ /* fixed values for status, notification bars and calendar */
win[STATUS].h = STATUSHEIGHT; win[STA].h = STATUSHEIGHT;
win[STATUS].w = col; win[STA].w = col;
win[STATUS].y = row - win[STATUS].h; win[STA].y = row - win[STA].h;
win[STATUS].x = 0; win[STA].x = 0;
if (notify_bar()) { if (notify_bar()) {
win[NOTIFY].h = 1; win[NOT].h = 1;
win[NOTIFY].w = col; win[NOT].w = col;
win[NOTIFY].y = win[STATUS].y - 1; win[NOT].y = win[STA].y - 1;
win[NOTIFY].x = 0; win[NOT].x = 0;
} else { } else {
win[NOTIFY].h = 0; win[NOT].h = 0;
win[NOTIFY].w = 0; win[NOT].w = 0;
win[NOTIFY].y = 0; win[NOT].y = 0;
win[NOTIFY].x = 0; win[NOT].x = 0;
} }
if (layout <= 4) { /* APPOINTMENT is the biggest panel */ if (layout <= 4) { /* APPOINTMENT is the biggest panel */
win[APPOINTMENT].w = col - CALWIDTH; win[APP].w = col - CALWIDTH;
win[APPOINTMENT].h = row - (win[STATUS].h + win[NOTIFY].h); win[APP].h = row - (win[STA].h + win[NOT].h);
win[TODO].w = CALWIDTH; win[TOD].w = CALWIDTH;
win[TODO].h = row - (CALHEIGHT + win[STATUS].h + win[NOTIFY].h); win[TOD].h = row - (CALHEIGHT + win[STA].h + win[NOT].h);
} else { /* TODO is the biggest panel */ } else { /* TODO is the biggest panel */
win[TODO].w = col - CALWIDTH; win[TOD].w = col - CALWIDTH;
win[TODO].h = row - (win[STATUS].h + win[NOTIFY].h); win[TOD].h = row - (win[STA].h + win[NOT].h);
win[APPOINTMENT].w = CALWIDTH; win[APP].w = CALWIDTH;
win[APPOINTMENT].h = row - (CALHEIGHT + win[STATUS].h + win[APP].h = row - (CALHEIGHT + win[STA].h + win[NOT].h);
win[NOTIFY].h);
} }
/* defining the layout */ /* defining the layout */
switch (layout) { switch (layout) {
case 1: case 1:
win[APPOINTMENT].y = 0; win[APP].y = 0;
win[APPOINTMENT].x = 0; win[APP].x = 0;
win[CALENDAR].y = 0; win[CAL].y = 0;
win[TODO].x = win[APPOINTMENT].w; win[TOD].x = win[APP].w;
win[TODO].y = CALHEIGHT; win[TOD].y = CALHEIGHT;
win[CALENDAR].x = win[APPOINTMENT].w; win[CAL].x = win[APP].w;
break; break;
case 2: case 2:
win[APPOINTMENT].y = 0; win[APP].y = 0;
win[APPOINTMENT].x = 0; win[APP].x = 0;
win[TODO].y = 0; win[TOD].y = 0;
win[TODO].x = win[APPOINTMENT].w; win[TOD].x = win[APP].w;
win[CALENDAR].x = win[APPOINTMENT].w; win[CAL].x = win[APP].w;
win[CALENDAR].y = win[TODO].h; win[CAL].y = win[TOD].h;
break; break;
case 3: case 3:
win[APPOINTMENT].y = 0; win[APP].y = 0;
win[TODO].x = 0; win[TOD].x = 0;
win[CALENDAR].x = 0; win[CAL].x = 0;
win[CALENDAR].y = 0; win[CAL].y = 0;
win[APPOINTMENT].x = CALWIDTH; win[APP].x = CALWIDTH;
win[TODO].y = CALHEIGHT; win[TOD].y = CALHEIGHT;
break; break;
case 4: case 4:
win[APPOINTMENT].y = 0; win[APP].y = 0;
win[TODO].x = 0; win[TOD].x = 0;
win[TODO].y = 0; win[TOD].y = 0;
win[CALENDAR].x = 0; win[CAL].x = 0;
win[APPOINTMENT].x = CALWIDTH; win[APP].x = CALWIDTH;
win[CALENDAR].y = win[TODO].h; win[CAL].y = win[TOD].h;
break; break;
case 5: case 5:
win[TODO].y = 0; win[TOD].y = 0;
win[TODO].x = 0; win[TOD].x = 0;
win[CALENDAR].y = 0; win[CAL].y = 0;
win[APPOINTMENT].y = CALHEIGHT; win[APP].y = CALHEIGHT;
win[APPOINTMENT].x = win[TODO].w; win[APP].x = win[TOD].w;
win[CALENDAR].x = win[TODO].w; win[CAL].x = win[TOD].w;
break; break;
case 6: case 6:
win[TODO].y = 0; win[TOD].y = 0;
win[TODO].x = 0; win[TOD].x = 0;
win[APPOINTMENT].y = 0; win[APP].y = 0;
win[APPOINTMENT].x = win[TODO].w; win[APP].x = win[TOD].w;
win[CALENDAR].x = win[TODO].w; win[CAL].x = win[TOD].w;
win[CALENDAR].y = win[APPOINTMENT].h; win[CAL].y = win[APP].h;
break; break;
case 7: case 7:
win[TODO].y = 0; win[TOD].y = 0;
win[APPOINTMENT].x = 0; win[APP].x = 0;
win[CALENDAR].x = 0; win[CAL].x = 0;
win[CALENDAR].y = 0; win[CAL].y = 0;
win[TODO].x = CALWIDTH; win[TOD].x = CALWIDTH;
win[APPOINTMENT].y = CALHEIGHT; win[APP].y = CALHEIGHT;
break; break;
case 8: case 8:
win[TODO].y = 0; win[TOD].y = 0;
win[APPOINTMENT].x = 0; win[APP].x = 0;
win[CALENDAR].x = 0; win[CAL].x = 0;
win[APPOINTMENT].y = 0; win[APP].y = 0;
win[TODO].x = CALWIDTH; win[TOD].x = CALWIDTH;
win[CALENDAR].y = win[APPOINTMENT].h; win[CAL].y = win[APP].h;
break; break;
} }
} }
@ -343,22 +318,22 @@ wins_update(void)
{ {
switch (slctd_win) { switch (slctd_win) {
case CALENDAR: case CAL:
border_color(cwin); border_color(win[CAL].p);
border_nocolor(awin); border_nocolor(win[APP].p);
border_nocolor(twin); border_nocolor(win[TOD].p);
break; break;
case APPOINTMENT: case APP:
border_color(awin); border_color(win[APP].p);
border_nocolor(cwin); border_nocolor(win[CAL].p);
border_nocolor(twin); border_nocolor(win[TOD].p);
break; break;
case TODO: case TOD:
border_color(twin); border_color(win[TOD].p);
border_nocolor(awin); border_nocolor(win[APP].p);
border_nocolor(cwin); border_nocolor(win[CAL].p);
break; break;
default: default:
@ -366,13 +341,13 @@ wins_update(void)
/* NOTREACHED */ /* NOTREACHED */
} }
apoint_update_panel(&win[APPOINTMENT], slctd_win); apoint_update_panel(&win[APP], slctd_win);
todo_update_panel(&win[TODO], slctd_win); todo_update_panel(&win[TOD], slctd_win);
calendar_update_panel(cwin); calendar_update_panel(win[CAL].p);
status_bar(); status_bar();
if (notify_bar()) if (notify_bar())
notify_update_bar(); notify_update_bar();
wmove(swin, 0, 0); wmove(win[STA].p, 0, 0);
doupdate(); doupdate();
} }