Subrutina derwin, newwin o subwin

Finalidad

Subrutinas de creación de ventanas.

Biblioteca

Biblioteca de curses (libcurses.a)

Sintaxis

#include <curses.h>

WINDOW *derwin(WINDOW *orig,
int nlines,
int ncols,
int begin_y,
int begin_x);

WINDOW *newwin(int nlines,
int ncols,
int begin_y,
 int begin_x);
 
WINDOW *subwin(WINDOW *orig,
int nlines,
int ncols,
int begin_y,
int begin_x);

Descripción

La subrutina derwin es la misma que la subrutina subwin excepto que begin_y y begin_x son relativos al origen de la ventana orig en lugar de posiciones de pantalla absolutas.

La subrutina newwin crea una nueva ventana con nlines líneas y ncols columnas, posicionadas de forma que el origen está en (begin_y, begin_x). Si nlines es cero, el valor predeterminado es LINES- begin_y; si ncols es cero, el valor predeterminado es COLS- begin_x.

La subrutina subwin crea una nueva ventana con nlines líneas y ncols columnas, posicionadas de modo que el origen esté en (begin_y, begin_x). (Esta posición es una posición de pantalla absoluta, no una posición relativa al orig de ventana.) Si alguna parte de la ventana nueva está fuera de orig, la subrutina falla y la ventana no se crea.

Parámetros

Elemento Descripción
ncols  
nlines  
principio_y  
principio_x  

Valores de retorno

Al finalizar correctamente, estas subrutinas devuelven un puntero a la nueva ventana. De lo contrario, devuelven un puntero nulo.

Ejemplos

Para las subrutinas derwin y newwin :

  1. Para crear una ventana nueva, especifique:
    WINDOW *my_window;
     
    my_window = newwin(5, 10, 20, 30);
    my_windowes ahora una ventana5líneas profundas,10columnas de ancho, empezando por las coordenadas y =20, x =30. Es decir, la esquina superior izquierda está en las coordenadas y =20, x =30y la esquina inferior derecha está en las coordenadas y =24, x =39.
  2. Para crear una ventana que se desecha con el lado derecho del terminal, entre:
    WINDOW *my_window;
     
    my_window = newwin(5, 0, 20, 30);
    my_windowes ahora una ventana5líneas profundas, que se extienden hasta el lado derecho de la terminal, empezando por las coordenadas y =20, x =30. La esquina superior izquierda está en las coordenadas y =20, x =30y la esquina inferior derecha está en las coordenadas y =24, x =lastcolumn.
  3. Para crear una ventana que llene todo el terminal, especifique:
    WINDOW *my_window;
     
    my_window = newwin(0, 0, 0, 0);
    my_windowes ahora una pantalla que es una ventana que llena toda la pantalla del terminal.

Para la subrutina subwin :

  1. Para crear una subventana, utilice:
    WINDOW *my_window, *my_sub_window;
    my_window = newwin (derwin, newwin, or subwin Subroutine)
                (5, 10, 20, 30);
    my_sub_windowes ahora una subventana2líneas profundas,5columnas de ancho, empezando en las mismas coordenadas de su ventana padremy_window. Es decir, la esquina superior izquierda de la subventana está en coordenadas y = 20, x =30y la esquina inferior derecha está en las coordenadas y =21, x =34.
  2. Para crear una subventana que se desecha con el lado derecho de su padre, utilice
    WINDOW *my_window, *my_sub_window;
    my_window =
    newwin (derwin, newwin, or subwin Subroutine)(5, 10, 20, 30);
    my_sub_window = subwin(my_window, 2, 0, 20, 30);
    my_sub_windowes ahora una subventana2líneas profundas, extendiéndose hasta el lado derecho de su ventana padremy_windowy empezando por las mismas coordenadas. Es decir, la esquina superior izquierda de la subventana está en las coordenadas y =20, x =30y la esquina inferior derecha está en las coordenadas y =21, x =39.
  3. Para crear una subventana en la esquina inferior derecha de su padre, utilice:
    WINDOW *my_window, *my_sub_window
    my_window = newwwin (derwin, newwin, or subwin Subroutine)
                (5, 10, 20, 30);
    my_sub_window = subwin(my_window, 0, 0, 22, 35);
    my_sub_windowes ahora una subventana que llena la esquina inferior derecha de su ventana padre,my_window, empezando por las coordenadas y =22, x =35. Es decir, la esquina superior izquierda de la subventana está en coordenadas y =22, x =35y la esquina inferior derecha está en las coordenadas y =24, x =39.