set_color (white);
}
-char *getwindow (int length, int xoffset, int yoffset)
+char *getwindow (char *msg, window_t *win, int length)
{
char *name = (char *) calloc (1, length + 1);
CHECKALLOC (name);
memset (name, ' ', length);
+ int xoffset = win->xoffset + (win->xsize - strlen (msg) - 1 - length) / 2;
+ if (xoffset < 1) {
+ xoffset = 1;
+ }
+ int yoffset = win->yoffset + (win->ysize - 1) / 2;
+
set_color (black);
- _dobound (length, 1, xoffset, yoffset);
+ _dobound (strlen (msg) + 1 + length, 1, xoffset, yoffset);
+ mvaddstr (yoffset, xoffset, msg);
set_color (white);
+ xoffset += strlen (msg) + 1;
int i = 0, j;
int stop = 0;
while (!stop) {
void elementwindow (window_t *win, char *status, int *index);
-char *getwindow (int length, int xoffset, int yoffset);
+char *getwindow (char *msg, window_t *win, int length);
void msgwindow (char *msg, int xoffset, int yoffset, int length);
/* depend: */
/* cflags: */
-/* linker: debug.o display.o function.o -lcurses -lregex */
+/* linker: debug.o display.o function.o -lcurses */
/* doslnk: debug.o display.o function.o -lpdc~1 -lreg~1 */
/* winlnk: debug.o display.o function.o -lpdcurses -lregex */
int stop = 0;
while (!stop) {
elem_t *current = NULL;
+ char *filter = NULL;
menuwindow (winmenu, menu, &index_menu);
case 'o':
index[pane]++;
break;
- case KEY_ESC:
- case 'q':
- if (askwindow (" Restart (Y/N) ", max (windir[pane]->xoffset + (windir[pane]->xsize - 15) / 2, 1), windir[pane]->yoffset + (windir[pane]->ysize - 1) / 2, "Yy", "Nn") == 1) {
- stop = 1;
- }
- break;
case 'u':
index[pane]--;
break;
- case ALT_C: /* copy */
- break;
- case ALT_D: /* delete */
- break;
- case ALT_E: /* edit */
- break;
- case ALT_F: /* filter */
- filterlist (list[pane], ".*\\.c");
- break;
- case ALT_H: /* help */
- helpwindow (help, (width - strmaxlen (help, '\n')) / 2, 3 * yoffset);
- while (getch () == ERR) {
- usleep (200 * 1000);
+ case KEY_ESC:
+ switch (getch ()) {
+ case 'c': /* copy */
+ break;
+ case 'd': /* delete */
+ break;
+ case 'e': /* edit */
+ break;
+ case 'f': /* filter */
+ filter = getwindow ("Set filter", windir[pane], 32);
+ filterlist (list[pane], filter);
+ free (filter);
+ break;
+ case 'h': /* help */
+ helpwindow (help, (width - strmaxlen (help, '\n')) / 2, 3 * yoffset);
+ while (getch () == ERR) {
+ usleep (200 * 1000);
+ }
+ break;
+ case 'm': /* move */
+ break;
+ case 'n': /* new dir */
+ break;
+ case 'q': /* quit */
+ if (askwindow (" Restart (Y/N) ", max (windir[pane]->xoffset + (windir[pane]->xsize - 15) / 2, 1), windir[pane]->yoffset + (windir[pane]->ysize - 1) / 2, "Yy", "Nn") == 1) {
+ stop = 1;
+ }
+ break;
+ case 'r': /* rename */
+ break;
+ case 's': /* select */
+ current = list[pane]->tab + windir[pane]->index;
+ current->selected = (current->selected) ? 0 : 1;
+ break;
+ case 'v': /* view */
+ break;
}
break;
- case ALT_M: /* move */
- break;
- case ALT_N: /* new dir */
- break;
- case ALT_Q: /* quit */
- break;
- case ALT_R: /* rename */
- break;
- case ALT_S: /* select */
- case ' ':
- current = list[pane]->tab + windir[pane]->index;
- current->selected = (current->selected) ? 0 : 1;
- break;
- case ALT_V: /* view */
- break;
}
}