Ncurses: Pads


<<< ncurses-Startseite ncurses << Inhaltsverzeichnis
< Mausunterstützung Was fehlt >


Ein Pad (Schreibblock) ist eine Variante des konventionellen ncurses-Fensters. In der Anwendung unterscheidet es sich deutlich von diesem. Pads können größer als der Screen selbst sein und der Programmierer entscheidet erst beim Refresh, welcher Teil des Pads wo sichtbar ist.

Ein Pad erstellenBearbeiten

WINDOW *newpad(int nlines, int ncols);

Bedeutung der Parameter:

  • nlines, ncols ... Anzahl der Pad-Zeilen und -Spalten

Ein Pad refreshenBearbeiten

int prefresh(WINDOW *pad, int pminrow, int pmincol,
             int sminrow, int smincol, int smaxrow, int smaxcol);
int pnoutrefresh(WINDOW *pad, int pminrow, int pmincol,
                 int sminrow, int smincol, int smaxrow, int smaxcol);

Die Pad-Refreshfunktionen haben prinzipiell die selben Aufgaben wie ihre Window-Pendants.

Bedeutung der Parameter:

 


  • pminrow, pmincol ... Ecke links-oben im Pad (p ... pad).
  • sminrow, smincol, smaxrow, smaxcol ... Ecke links-oben, Ecke rechts-unten. Diese Parameter bestimmen die Größe des auf dem Screen angezeigten Pad-Rechtecks, innerhalb dessen der Pad-Inhalt dargestellt wird (s ... screen).

BeispielBearbeiten

#include <curses.h>
#include <stdlib.h>

WINDOW *pad;

void quit(void)
{
  delwin(pad);
  endwin();
} 

int main(void)
{
  initscr();
  atexit(quit);
  clear();
  noecho();
  curs_set(0);
  cbreak();
  keypad(stdscr, 1);

  start_color();
  init_pair(1, COLOR_YELLOW, COLOR_BLUE);
  init_pair(2, COLOR_BLUE, COLOR_WHITE);

  pad = newpad(300, 100);
  
  bkgd(COLOR_PAIR(1));
  wbkgd(pad, COLOR_PAIR(2));
  
  waddstr(pad, "Zeile 1 \n");
  waddstr(pad, "Zeile 2\n");
  waddstr(pad, "Diese Zeichenkette befindet sich in Zeile 3\n"); 
  waddstr(pad, "und diese in Zeile 4");  

  refresh();
  prefresh(pad, 0, 0, 3, 3, 10, 30);
 
  getch();
  refresh();
  prefresh(pad, 2, 2, 12, 2, 20, 45);
   
  while(getch() != KEY_F(1))
  {
  } 

  return(0);
}
Nach dem Programmstart Nach dem ersten Tastendruck
   


<<< ncurses-Startseite ncurses << Inhaltsverzeichnis
< Mausunterstützung Was fehlt >