Home | History | Annotate | Download | only in libcurses

Lines Matching refs:SCREEN

65 static int	 __slk_attroff(SCREEN *, const chtype);
66 static int __slk_attron(SCREEN *, const chtype);
67 static int __slk_attrset(SCREEN *, const chtype);
69 static int __slk_attr_off(SCREEN *, const attr_t, void *);
70 static int __slk_attr_on(SCREEN *, const attr_t, void *);
71 static int __slk_attr_set(SCREEN *, const attr_t, short, void *opt);
72 static int __slk_color(SCREEN *, short);
75 static int __slk_clear(SCREEN *);
76 static char *__slk_label(SCREEN *, int);
77 static int __slk_restore(SCREEN *);
78 static int __slk_set(SCREEN *, int, const char *, int);
79 static int __slk_touch(SCREEN *);
81 static int __slk_wset(SCREEN *, int, const wchar_t *, int);
86 static int __slk_set_finalise(SCREEN *, int);
87 static int __slk_draw(SCREEN *, int);
88 static int __slk_redraw(SCREEN *);
186 * Clear slk from the current screen.
245 * Retore slk to the screen after a slk_clear.
296 __slk_attron(SCREEN *screen, const chtype attr)
299 if (screen == NULL || screen->slk_window == NULL)
301 return wattron(screen->slk_window, attr);
310 __slk_attr_on(SCREEN *screen, const attr_t attr, void *opt)
313 if (screen == NULL || screen->slk_window == NULL)
315 return wattr_on(screen->slk_window, attr, opt);
324 __slk_attroff(SCREEN *screen, const chtype attr)
327 if (screen == NULL || screen->slk_window == NULL)
329 return wattroff(screen->slk_window, attr);
338 __slk_attr_off(SCREEN *screen, const attr_t attr, void *opt)
341 if (screen == NULL || screen->slk_window == NULL)
343 return wattr_off(screen->slk_window, attr, opt);
352 __slk_attrset(SCREEN *screen, const chtype attr)
355 if (screen == NULL || screen->slk_window == NULL)
357 return wattrset(screen->slk_window, attr);
366 __slk_attr_set(SCREEN *screen, const attr_t attr, short pair, void *opt)
369 if (screen == NULL || screen->slk_window == NULL)
371 return wattr_set(screen->slk_window, attr, pair, opt);
377 * Clear slk from the current screen.
380 __slk_clear(SCREEN *screen)
383 if (screen == NULL)
385 screen->slk_hidden = true;
386 if (screen->is_term_slk) {
387 if (t_label_off(screen->term) == NULL)
389 return ti_putp(screen->term,
390 ti_tiparm(screen->term, t_label_off(screen->term)));
392 if (screen->slk_window == NULL)
394 werase(screen->slk_window);
395 return wrefresh(screen->slk_window);
404 __slk_color(SCREEN *screen, short pair)
407 if (screen == NULL || screen->slk_window == NULL)
409 return wcolor_set(screen->slk_window, pair, NULL);
418 __slk_label(SCREEN *screen, int labnum)
421 if (screen == NULL || labnum < 1 || labnum > screen->slk_nlabels)
423 return screen->slk_labels[--labnum].text;
431 __slk_noutrefresh(SCREEN *screen)
434 if (screen == NULL || screen->slk_window == NULL)
436 return wnoutrefresh(screen->slk_window);
441 * Retore slk to the screen after a slk_clear.
444 __slk_restore(SCREEN *screen)
447 if (screen == NULL)
449 screen->slk_hidden = false;
450 if (screen->is_term_slk) {
451 if (t_label_on(screen->term) == NULL)
453 return ti_putp(screen->term,
454 ti_tiparm(screen->term, t_label_on(screen->term)));
456 if (screen->slk_window == NULL)
458 if (__slk_redraw(screen) == ERR)
460 return wrefresh(screen->slk_window);
469 __slk_set(SCREEN *screen, int labnum, const char *label, int justify)
481 if (screen == NULL || labnum < 1 || labnum > screen->slk_nlabels)
503 wc_len = mbrtowc(&wc, end, endlen, &screen->sp);
522 l = &screen->slk_labels[--labnum]; /* internal zero based index */
526 __slk_set_finalise(screen, labnum);
535 __slk_touch(SCREEN *screen)
538 if (screen == NULL || screen->slk_window == NULL)
540 return touchwin(screen->slk_window);
551 __slk_wset(SCREEN *screen, int labnum, const wchar_t *label, int justify)
558 if (screen == NULL)
562 if ((len = wcsrtombs(NULL, &olabel, 0, &screen->sp)) == -1) {
574 if (wcsrtombs(str, &olabel, len, &screen->sp) == -1)
576 result = __slk_set(screen, labnum, str, justify);
591 __slk_init(SCREEN *screen)
594 __slk_free(screen); /* safety */
596 screen->slk_format = slk_fmt;
601 switch(screen->slk_format) {
604 screen->slk_nlabels = 8;
610 screen->slk_labels = calloc(screen->slk_nlabels,
611 sizeof(*screen->slk_labels));
612 if (screen->slk_labels == NULL)
615 screen->is_term_slk =
616 t_plab_norm(screen->term) != NULL &&
617 t_num_labels(screen->term) > 0;
618 if (screen->is_term_slk) {
620 screen->slk_nlabels = t_num_labels(screen->term);
621 screen->slk_label_len = t_label_width(screen->term);
633 __slk_free(SCREEN *screen)
637 if (screen->slk_window != NULL)
638 delwin(screen->slk_window);
639 for (i = 0; i < screen->slk_nlabels; i++)
640 free(screen->slk_labels[i].text);
641 free(screen->slk_labels);
654 window->screen->slk_window = window;
656 (t_no_color_video(window->screen->term) & 1) == 0
658 __slk_resize(window->screen, cols);
667 __slk_resize(SCREEN *screen, int cols)
672 if (screen == NULL)
674 if (screen->is_term_slk || screen->slk_nlabels == 0)
677 screen->slk_label_len = (cols / screen->slk_nlabels) - 1;
678 if (screen->slk_label_len > SLK_SIZE)
679 screen->slk_label_len = SLK_SIZE;
681 l = screen->slk_labels;
683 switch(screen->slk_format) {
687 (l++)->x = (x += screen->slk_label_len + 1);
688 (l++)->x = (x += screen->slk_label_len + 1);
692 (l++)->x = x -(screen->slk_label_len + 1);
696 x = (cols - ((screen->slk_label_len + 1) * 3)) + 1;
698 (l++)->x = (x += screen->slk_label_len + 1);
699 (l++)->x = (x += screen->slk_label_len + 1);
706 half = screen->slk_nlabels / 2;
707 for (i = 0; i < screen->slk_nlabels; i++) {
709 x += screen->slk_label_len;
712 x = cols - (screen->slk_label_len * half) + 1;
719 for (x = 0; x < screen->slk_nlabels; x++)
720 __slk_set_finalise(screen, x);
722 return __slk_redraw(screen);
730 __slk_set_finalise(SCREEN *screen, int labnum)
736 l = &screen->slk_labels[labnum];
737 spc = screen->slk_label_len;
752 mblen = mbrtowc(&wc, p, plen, &screen->sp);
804 return __slk_draw(screen, labnum);
812 __slk_draw(SCREEN *screen, int labnum)
822 __CTRACE(__CTRACE_INPUT, "__slk_draw: screen %p, label %d\n", screen,
825 if (screen->slk_hidden)
830 l = &screen->slk_labels[labnum];
831 if (screen->is_term_slk)
832 return ti_putp(screen->term,
833 ti_tiparm(screen->term,
834 t_plab_norm(screen->term), labnum + 1, l->label));
835 else if (screen->slk_window != NULL) {
836 if ((labnum != screen->slk_nlabels - 1) ||
837 (screen->slk_window->flags & __SCROLLOK) ||
838 ((l->x + screen->slk_label_len) < screen->slk_window->maxx)) {
839 retval = mvwaddnstr(screen->slk_window, 0, l->x,
844 while (lcnt < screen->slk_label_len) {
856 screen->slk_label_len, wcwidth(l->label[lcnt]));
861 screen->slk_window->wattr, 0,
867 screen->slk_label_len) {
872 retval = mvwins_wch(screen->slk_window,
875 retval = mvwinsch(screen->slk_window,
880 retval = mvwadd_wch(screen->slk_window,
883 retval = mvwaddch(screen->slk_window,
902 __slk_redraw(SCREEN *screen)
906 for (i = 0; i < screen->slk_nlabels; i++) {
907 if (__slk_draw(screen, i) == ERR)