summaryrefslogtreecommitdiff
path: root/lib/libncurses/lib_slk.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libncurses/lib_slk.c')
-rw-r--r--lib/libncurses/lib_slk.c255
1 files changed, 0 insertions, 255 deletions
diff --git a/lib/libncurses/lib_slk.c b/lib/libncurses/lib_slk.c
deleted file mode 100644
index 8be6ac016924..000000000000
--- a/lib/libncurses/lib_slk.c
+++ /dev/null
@@ -1,255 +0,0 @@
-
-/*
- * lib_slk.c
- * Soft key routines.
- *
- * Copyright (C) Gerhard Fuernkranz 1993
- * Permisson is granted to redistribute this
- * code under the terms of the GNU Copyleft.
- */
-
-#include "terminfo.h"
-#include "curses.priv.h"
-#include <string.h>
-#include <stdlib.h>
-
-int _slk_format; /* format specified in slk_init() */
-
-#define MAXCOLUMNS 135
-#define MAXLINES 66
-#define UNINITIALISED ((struct try * ) -1)
-/*
- * Retrieve label text.
- */
-
-char *
-slk_label(int n)
-{
-SLK *slk = SP->_slk;
-
- T(("slk_label(%d)", n));
-
- if (slk == NULL || n < 1 || n > 8)
- return NULL;
- return slk->ent[n-1].text;
-}
-
-/*
- * Write the soft lables to the slk window.
- */
-
-static void
-slk_intern_refresh(SLK *slk)
-{
-int i;
- T(("slk_intern_refresh(%x)", slk));
-
- for (i = 0; i < 8; i++) {
- if (slk->dirty || slk->ent[i].dirty) {
- if (slk->ent[i].visible) {
- wmove(slk->win,0,slk->ent[i].x);
- wattrset(slk->win,A_REVERSE);
- waddstr(slk->win,slk->ent[i].form_text);
- wattrset(slk->win,A_NORMAL);
- }
- slk->ent[i].dirty = FALSE;
- }
- }
- slk->dirty = FALSE;
-}
-
-/*
- * Refresh the soft label window.
- */
-
-int
-slk_noutrefresh(void)
-{
-SLK *slk = SP->_slk;
-
- T(("slk_noutrefresh()"));
-
- if (slk == NULL)
- return ERR;
- if (slk->hidden)
- return OK;
- slk_intern_refresh(slk);
- return wnoutrefresh(slk->win);
-}
-
-/*
- * Refresh the soft label window.
- */
-
-int
-slk_refresh(void)
-{
-SLK *slk = SP->_slk;
-
- T(("slk_refresh()"));
-
- if (slk == NULL)
- return ERR;
- if (slk->hidden)
- return OK;
- slk_intern_refresh(slk);
- return wrefresh(slk->win);
-}
-
-/*
- * Restore the soft labels on the screen.
- */
-
-int
-slk_restore(void)
-{
-SLK *slk = SP->_slk;
-
- T(("slk_restore()"));
-
- if (slk == NULL)
- return ERR;
- slk->hidden = FALSE;
- slk->dirty = TRUE;
- return slk_refresh();
-}
-
-/*
- * Set soft label text.
- */
-
-int
-slk_set(int i, char *str, int format)
-{
-SLK *slk = SP->_slk;
-int len;
- T(("slk_set(%d, \"%s\", %d)", i, str, format));
-
- if (slk == NULL || i < 1 || i > 8 || format < 0 || format > 2)
- return ERR;
- if (str == NULL)
- str = "";
- i--;
- strncpy(slk->ent[i].text,str,8);
- memset(slk->ent[i].form_text,' ',8);
- slk->ent[i].text[8] = 0;
- slk->ent[i].form_text[8] = 0;
- len = strlen(slk->ent[i].text);
- switch(format) {
- case 0: /* left */
- memcpy(slk->ent[i].form_text,slk->ent[i].text,len);
- break;
- case 1: /* center */
- memcpy(slk->ent[i].form_text+(8-len)/2,slk->ent[i].text,len);
- break;
- case 2: /* right */
- memcpy(slk->ent[i].form_text+8-len,slk->ent[i].text,len);
- break;
- }
- slk->ent[i].dirty = TRUE;
- return OK;
-}
-
-/*
- * Pretend, that soft keys have been changed.
- */
-
-int
-slk_touch(void)
-{
-SLK *slk = SP->_slk;
- T(("slk_touch()"));
-
- if (slk == NULL)
- return ERR;
- slk->dirty = TRUE;
- return OK;
-}
-
-/*
- * Remove soft labels from the screen.
- */
-
-int
-slk_clear(void)
-{
-SLK *slk = SP->_slk;
-
- T(("slk_clear()"));
-
- if (slk == NULL)
- return ERR;
- slk->hidden = TRUE;
- /* For simulated SLK's it's looks much more natural to
- inherit those attributes from the standard screen */
- slk->win->_bkgd = stdscr->_bkgd;
- slk->win->_attrs = stdscr->_attrs;
- werase(slk->win);
- return wrefresh(slk->win);
-}
-
-/*
- * Initialize soft labels.
- * Called from newterm()
- */
-
-static int
-slk_initialize(WINDOW *stwin, int cols)
-{
-SLK *slk;
-int i, maxlab, x;
-
- T(("slk_initialize()"));
-
- if ((SP->_slk = slk = (SLK*) calloc(1,sizeof(SLK))) == NULL)
- return OK;
- maxlab = (cols+1)/9;
- for (i = 0; i < 8; i++) {
- memset(slk->ent[i].form_text,' ',8);
- slk->ent[i].visible = i < maxlab;
- }
- if (_slk_format == 1) { /* 4-4 */
- int gap = cols - 64 - 6;
- if (gap < 1)
- gap = 1;
- for (i = x = 0; i < 8; i++) {
- slk->ent[i].x = x;
- x += 8;
- x += (i == 3) ? gap : 1;
- }
- }
- else { /* 0 -> 3-2-3 */
- int gap = (cols - 64 - 5) / 2;
- if (gap < 1)
- gap = 1;
- for (i = x = 0; i < 8; i++) {
- slk->ent[i].x = x;
- x += 8;
- x += (i == 2 || i == 4) ? gap : 1;
- }
- }
- slk->dirty = TRUE;
- if ((slk->win = stwin) == NULL)
- {
- free(slk);
- return ERR;
- }
-
- return OK;
-}
-
-/*
- * Initialize soft labels.
- * Called by the user.
- */
-
-int
-slk_init(int format)
-{
- if (format < 0 || format > 1)
- return ERR;
- _slk_format = format;
- ripoffline(-1, slk_initialize);
- return OK;
-}
-