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 :
- Para crear una ventana nueva, especifique:
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.WINDOW *my_window; my_window = newwin(5, 10, 20, 30); - Para crear una ventana que se desecha con el lado derecho del terminal, entre:
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.WINDOW *my_window; my_window = newwin(5, 0, 20, 30); - Para crear una ventana que llene todo el terminal, especifique:
my_windowes ahora una pantalla que es una ventana que llena toda la pantalla del terminal.WINDOW *my_window; my_window = newwin(0, 0, 0, 0);
Para la subrutina subwin :
- Para crear una subventana, utilice:WINDOW *my_window, *my_sub_window;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.
my_window = newwin (derwin, newwin, or subwin Subroutine)
(5, 10, 20, 30); - Para crear una subventana que se desecha con el lado derecho de su padre, utiliceWINDOW *my_window, *my_sub_window;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.
my_window =
newwin (derwin, newwin, or subwin Subroutine)(5, 10, 20, 30);
my_sub_window = subwin(my_window, 2, 0, 20, 30); - Para crear una subventana en la esquina inferior derecha de su padre, utilice:WINDOW *my_window, *my_sub_windowmy_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.
my_window = newwwin (derwin, newwin, or subwin Subroutine)
(5, 10, 20, 30);
my_sub_window = subwin(my_window, 0, 0, 22, 35);