##
6.17.2 Panel Objects

Panel objects, as returned by `new_panel()` above, are windows with a stacking order. There's always a window associated with a panel which determines the content, while the panel methods are responsible for the window's depth in the panel stack.

Panel objects have the following methods:

`above`()
  Returns the panel above the current panel.

`below`()
  Returns the panel below the current panel.

`bottom`()
  Push the panel to the bottom of the stack.

`hidden`()
  Returns true if the panel is hidden (not visible), false otherwise.

`hide`()
  Hide the panel. This does not delete the object, it just makes the window on screen invisible.

`move`(y, x)
  Move the panel to the screen coordinates `(y, x)`.

`replace`(win)
  Change the window associated with the panel to the window win.

`set_userptr`(obj)
  Set the panel's user pointer to obj. This is used to associate an arbitrary piece of data with the panel, and can be any Python object.

`show`()
  Display the panel (which might have been hidden).

`top`()
  Push panel to the top of the stack.

`userptr`()
  Returns the user pointer for the panel. This might be any Python object.

`window`()
  Returns the window object associated with the panel.