# `curses.panel` — curses 용 패널 스택 확장

패널은 깊이 기능이 추가된 창이라서, 서로의 위에 쌓을 수 있으며, 각 창의 보이는 부분만 표시됩니다. 패널을 추가하고, 스택에서 위나 아래로 옮기고, 제거할 수 있습니다.

## 함수

`curses.panel` 모듈은 다음 함수를 정의합니다:

curses.panel.bottom_panel()

  패널 스택에서 최하단 패널을 반환합니다.

curses.panel.new_panel(win)

  주어진 창 win과 연관 지어진 패널 객체를 반환합니다. 반환된 패널 객체가 명시적으로 참조되도록 유지해야 합니다. 그렇지 않으면 패널 객체는 가비지 수집되어 패널 스택에서 제거됩니다.

curses.panel.top_panel()

  패널 스택의 최상단 패널을 반환합니다.

curses.panel.update_panels()

  패널 스택이 변경된 후 가상 화면을 갱신합니다. 이것은 `curses.doupdate()`를 호출하지 않아서, 여러분이 직접 해야 합니다.

## Panel 객체

위의 `new_panel()`에 의해 반환된 패널 객체는 쌓인 순서가 있는 창입니다. 패널과 연관된 창이 항상 있고, 창이 내용을 결정합니다. 패널 메서드는 패널 스택에서 창의 깊이를 담당합니다.

패널 객체에는 다음과 같은 메서드가 있습니다:

Panel.above()

  현재 패널 위의 패널을 반환합니다.

Panel.below()

  현재 패널 아래의 패널을 반환합니다.

Panel.bottom()

  패널을 스택 맨 아래로 밉니다.”

Panel.hidden()

  패널이 숨겨져 있으면 (보이지 않으면) `True`를, 그렇지 않으면 `False`를 반환합니다.

Panel.hide()

  패널을 숨깁니다. 이것은 객체를 삭제하지 않고, 화면의 창을 보이지 않게 합니다.

Panel.move(y, x)

  패널을 화면 좌표 `(y, x)`로 이동합니다.

Panel.replace(win)

  패널과 연관된 창을 창 win으로 변경합니다.

Panel.set_userptr(obj)

  패널의 사용자 포인터를 obj로 설정합니다. 이것은 임의의 데이터를 패널과 연관시키는 데 사용되며, 임의의 파이썬 객체가 될 수 있습니다.

Panel.show()

  (숨겼을 수도 있는) 패널을 표시합니다.

Panel.top()

  패널을 스택 맨 위로 밉니다.

Panel.userptr()

  패널의 사용자 포인터를 반환합니다. 이것은 임의의 파이썬 객체일 수 있습니다.

Panel.window()

  패널과 연관된 창 객체를 반환합니다.