# Class Hierarchy

- planes.gui.Fonts - `A font manager.`
- planes.gui.lmr.LMRStyle - `This class encapsulates the left, mid and right images to be used as widget background, as well as the text color.`
- planes.gui.lmr.LMRWidget - `Base class for fixed-height, flexible-width widgets with an LMR background.`
  - planes.gui.lmr.LMRButton - `A planes.gui.Button with LMR background.`
  - planes.gui.lmr.LMROption - `A planes.gui.Option with LMR background.`
- planes.gui.tmb.TMBStyle - `This class encapsulates the top, mid and bottom images to be used as widget background.`
- planes.Plane - `A Plane is a surface in a hierarchy of surfaces. Concept-wise it bears some similarities to pygame.sprite.Sprite.`
  - planes.Display - `planes main screen class. A Display instance serves as the root Plane in planes.`
  - planes.gui.Container - `A Container for Planes. If a subplane is added via sub(), the container places it below any existing subplanes and resizes itself to fit the width and height of the subplanes.`
    - planes.gui.FadingContainer - `A Container that, once visible, will fade out and destroy itself.`
      - planes.gui.tmb.TMBFadingContainer - `A planes.gui.FadingContainer with fixed width and TMB background.`
    - planes.gui.GetStringDialog - `A combination of Container, Label, TextBox and Button that asks the user for a string.`
      - planes.gui.tmb.TMBGetStringDialog - `A combination of TMBContainer, Label, TextBox and Button that asks the user for a string.`
    - planes.gui.OkBox - `A box which displays a message and an OK button. It is destroyed when OK is clicked. The message will be wrapped at newline characters.`
      - planes.gui.tmb.TMBOkBox - `A box which displays a message and an LMR OK button over a TMB background. It is destroyed when OK is clicked. The message will be wrapped at newline characters.`
    - planes.gui.OptionList - `A list of options to select from.`
      - planes.gui.lmr.LMROptionList - `A planes.gui.OptionList with LMROption elements.`
    - planes.gui.OptionSelector - `An OptionSelector wraps an OptionList and an OK button, calling a callback when a selection is confirmed.`
      - planes.gui.tmb.TMBOptionSelector - `A TMBOptionSelector wraps an lmr.LMROptionList and an OK button over a TMB background, calling a callback when a selection is confirmed.`
    - planes.gui.tmb.TMBContainer - `A planes.gui.Container with fixed width and TMB background.`
      - planes.gui.tmb.TMBFadingContainer - `A planes.gui.FadingContainer with fixed width and TMB background.`
      - planes.gui.tmb.TMBGetStringDialog - `A combination of TMBContainer, Label, TextBox and Button that asks the user for a string.`
      - planes.gui.tmb.TMBOkBox - `A box which displays a message and an LMR OK button over a TMB background. It is destroyed when OK is clicked. The message will be wrapped at newline characters.`
      - planes.gui.tmb.TMBOptionSelector - `A TMBOptionSelector wraps an lmr.LMROptionList and an OK button over a TMB background, calling a callback when a selection is confirmed.`
  - planes.gui.Label - `A planes.Plane which displays a text.`
    - planes.gui.Button - `A planes plane which displays a text and reacts on mouse clicks.`
      - planes.gui.lmr.LMRButton - `A planes.gui.Button with LMR background.`
    - planes.gui.Option - `A subclass of Label which handles mouseclicks, to be used in an OptionList.`
      - planes.gui.lmr.LMROption - `A planes.gui.Option with LMR background.`
    - planes.gui.OutlinedText - `A Label with outlined text and a transparent background.`
    - planes.gui.TextBox - `A box where the user can type text.`
  - planes.gui.PlusMinusBox - `This class implements a TextBox with plus and minus buttons attached, to change a numerical value. The value is accessible as PlusMinusBox.textbox.text`
    - planes.gui.lmr.LMRPlusMinusBox - `A planes.gui.PlusMinusBox with LMRButtons. The value is accessible as PlusMinusBox.textbox.text`
  - planes.gui.ProgressBar - `A horizontal progress bar, filling from left to right. Additional attributes:`
  - planes.gui.ScrollingPlane - `This class implements a fixed-dimension plane with a scroll bar to scroll its content plane. Subplane structure:`
- planes.Stats - `A Stats instance stores and computes several runtime statistics.`