Ncurses: Pads

Aus Wikibooks

Wechseln zu: Navigation, Suche


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



Inhaltsverzeichnis


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.

[Bearbeiten] Ein Pad erstellen

WINDOW *newpad(int nlines, int ncols);

Bedeutung der Parameter:

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

[Bearbeiten] Ein Pad refreshen

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:

Ncurses pad1.png


  • 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).

[Bearbeiten] Beispiel

#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
Ncurses120.png Ncurses121.png


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


Persönliche Werkzeuge