struct element * el;
int i;
+ newtDrawCurrentWindow();
+
SLsmg_set_color(form->background);
newtClearBox(co->left, co->top, co->width, co->height);
for (i = 0, el = form->elements; i < form->numComps; i++, el++) {
case NEWT_KEY_END:
if(li->numItems <= 0) break;
- li->currItem = li->numItems - 1;
- li->startShowItem = li->numItems - co->height - 1;
- newtListboxRealSetCurrent(co);
newtListboxSetCurrent(co, li->numItems - 1);
er.result = ER_SWALLOWED;
break;
struct Window {
int height, width, top, left;
short * buffer;
+ char * title;
};
struct keymap {
currentWindow->top = top;
currentWindow->width = width;
currentWindow->height = height;
+ currentWindow->title = strdup(title);
currentWindow->buffer = malloc(sizeof(short) * (width + 3) * (height + 3));
n += currentWindow->width + 3;
}
+ newtDrawCurrentWindow();
+
+ return 0;
+}
+
+void newtDrawCurrentWindow(void)
+{
+ int i;
+ int top, left, height, width;
+
+ if(!currentWindow) return;
+
+ top = currentWindow->top;
+ left = currentWindow->left;
+ height = currentWindow->height;
+ width = currentWindow->width;
+
SLsmg_set_color(NEWT_COLORSET_BORDER);
SLsmg_draw_box(top - 1, left - 1, height + 2, width + 2);
- if (title) {
- i = strlen(title) + 4;
+ if (currentWindow->title) {
+ i = strlen(currentWindow->title) + 4;
i = ((width - i) / 2) + left;
SLsmg_gotorc(top - 1, i);
SLsmg_set_char_set(1);
SLsmg_set_char_set(0);
SLsmg_write_char(' ');
SLsmg_set_color(NEWT_COLORSET_TITLE);
- SLsmg_write_string(title);
+ SLsmg_write_string(currentWindow->title);
SLsmg_set_color(NEWT_COLORSET_BORDER);
SLsmg_write_char(' ');
SLsmg_set_char_set(1);
SLsmg_gotorc(i, left + width + 1);
SLsmg_write_string(" ");
}
-
- return 0;
}
void newtPopWindow(void) {
}
free(currentWindow->buffer);
+ free(currentWindow->title);
if (currentWindow == windowStack)
currentWindow = NULL;
void newtGetrc(int * row, int * col);
void newtDrawBox(int left, int top, int width, int height, int shadow);
void newtClearBox(int left, int top, int width, int height);
+void newtDrawCurrentWindow(void);
int newtGetKey(void);