curs_window(3)

명칭
newwin, delwin, mvwin, subwin, derwin, mvderwin, dupwin, wsyncup, syncok, wcursyncup, wsyncdown - create ncurses windows

서식
#include <ncurses.h> WINDOW *newwin(int nlines, int ncols, int begin_y,
      intbegin_x) ; int delwin(WINDOW *win) ;
int mvwin(WINDOW *win, int y, int x) ;
WINDOW *subwin(WINDOW *orig, int nlines, int ncols,
      int begin_y, int begin_x) ; WINDOW *derwin(WINDOW *orig, int nlines, int ncols,
      int begin_y, int begin_x) ; int mvderwin(WINDOW *win, int par_y, int par_x) ;
WINDOW *dupwin(WINDOW *win) ;
void wsyncup(WINDOW *win) ;
int syncok(WINDOW *win, bool bf) ;
void wcursyncup(WINDOW *win) ;
void wsyncdown(WINDOW *win) ;

해설
newwin routine는, 지정수의 행으로 열이 있는 새로운 윈도우를 가리키는 포인터를 작성해 돌려줍니다. 윈도우의 좌상 코너가 행 begin_y , 열 begin_x 입니다. nlines 또는 ncols 의 어느 쪽인지가 제로의 경우, 디폴트로 LINES - begin_y 및 COLS - begin_x (이)가 됩니다. 새로운 풀 스크린 윈도우는 newwin(0,0,0,0) (을)를 호출하는 것으로 작성됩니다. delwin routine는, 이름 첨부 윈도우를 삭제해, 거기에 대응하는 모든 메모리 (을)를 해방합니다 ( 실제로는 윈도우의 화면 이미지를 소거하지 않습니다 ) 서브 윈도우를 삭제하고 나서, 메인 윈도우를 삭제합니다. mvwin routine는, 좌상 코너가 위치 (x, y) 에 있도록(듯이) 윈도우를 이동합니다. 이동에 의해 윈도우가 화면으로부터 초과해 버리는 경우는, 그것은 에러가 되어 윈도우는 이동되지 않습니다. 서브 윈도우를 이동할 수도 있습니다만, 이것은 피해 주세요. subwin routine는, 지정수의 행 nlines (와)과 열 ncols (이)가 있는 새로운 윈도우를 가리키는 포인터를 작성해 돌려줍니다. 윈도우는 화면상의 위치 (begin_y, begin_x) 에 있습니다 ( 이 정도치는 화면에 상대적이며, 윈도우의 orig 에 상대적으로가 아닙니다 ) orig 의 중앙에 작성되므로, 1 개의 윈도우에 대해 행해진 변경은 양쪽 모두의 윈도우에 영향을 미칩니다. 서브 윈도우는 윈도우 orig (와)과 메모리를 공유합니다. 이 routine를 사용할 때는, 서브 윈도우로 wrefresh (을)를 호출하기 전에, orig 위에 touchwin 또는 touchline (을)를 호출할 필요가 있습니다. derwin routine는 subwin (와)과 같습니다만, begin_y (와)과 begin_x 하지만, 화면은 아니고 윈도우 orig 의 원점에 상대적이며 점은 다릅니다. 서브 윈도우와 도출된 윈도우의 사이에 차이는 없습니다. mvderwin routine는, 친윈도우의 내부의 도출된 윈도우 ( 또는 서브 윈도우 ) (을)를 이동합니다. 윈도우의 화면에 상대적인 파라미터는 변경되지 않습니다. 이 routine를 사용해, 화면상의 같은 물리적 위치에 부모 윈도우의 다양한 부분을 표시할 수 있습니다. dupwin routine는, 윈도우 win 의 정확한 복제를 작성합니다. ncurses 의 각 윈도우는, 캐릭터 이미지 구조와 스테이터스 구조라고 한다 2 개의 데이터 구조를 보관 유지합니다. 캐릭터 이미지 구조는, 윈도우 계층내의 모든 윈도우의 사이에 공유됩니다 ( 즉, 모든 서브 윈도우가 있는 윈도우입니다 ) 정보가 들어가 있는 스테이터스 구조는 서로의 윈도우에 대해서 프라이빗 입니다. routine wrefresh (은)는, 화면 갱신을 실행할 경우에 스테이터스 데이터 구조를 사용합니다. 스테이터스 구조는 공유는 아니기 때문에, 계층내의 1 개의 윈도우에 대해 행해진 변경은 화면상에 적절히 반영되지 않을 가능성이 있습니다. routine wsyncup (은)는, 윈도우의 스테이터스 구조내의 변화가, 그 선조의 스테이터스 구조내에 반영되도록(듯이) 합니다. syncok 하지만 2 차례째의 인수 TRUE (을)를 지정해 불려 갔을 경우, 윈도우내로 변경이 있을 때마다, wsyncup 하지만 자동적으로 불려 갑니다. routine wcursyncup (은)는, 윈도우의 모든 선조의 현재의 커서 위치를 갱신해, 윈도우의 현재의 커서 위치를 반영하도록(듯이) 합니다. routine wsyncdown (은)는, 윈도우의 스테이터스 구조를 갱신해, 선조의 스테이터스 구조의 변화를 반영하도록(듯이) 합니다. 어플리케이션이 이 routine (을)를 호출하는 것은 거의 없습니다. wrefresh 에 의해 자동적으로 불려 가기 때문입니다.

반환값
routine가, 처리 실패하면(자) 정수 ERR (을)를 돌려주어 옵니다. 처리가 정상적으로 완료했을 경우는, ERR 이외의 정수치를 돌려줍니다. delwin (은)는 처리 실패하면(자) 정수 ERR (을)를 돌려주어, 처리가 정상적으로 완료하면(자) OK (을)를 돌려줍니다. 포인터를 돌려주는 routine는 에러가 있으면(자) NULL (을)를 돌려줍니다.

주석
윈도우에 다수의 작은 변경을 하는 경우, wsyncup 옵션에 의해 성능이 저하할 가능성이 있습니다. syncok (은)는 매크로일 가능성이 있는 것에 주의해 주세요.

버그
서브 윈도우 함수 (subwin , derwin 등 ) (은)는, 무르고, 실현이 불완전하고, 자주(잘) 시험되고 있지 않습니다. 특히, 스크롤과의 상호작용에 대해입니다.

관련 항목
ncurses(3), curs_refresh(3), curs_touch(3)